Quellcode durchsuchen

Add DeviceCenter API, including CreateDeviceDynamicGroup, DeleteDeviceDynamicGroup, QueryDynamicGroupDevices.

sdk-team vor 4 Jahren
Ursprung
Commit
c132dd86ae
75 geänderte Dateien mit 3757 neuen und 1 gelöschten Zeilen
  1. 5 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 40 0
      iot/CMakeLists.txt
  4. 80 0
      iot/include/alibabacloud/iot/IotClient.h
  5. 60 0
      iot/include/alibabacloud/iot/model/AddDataForApiSourceRequest.h
  6. 57 0
      iot/include/alibabacloud/iot/model/AddDataForApiSourceResult.h
  7. 60 0
      iot/include/alibabacloud/iot/model/BatchAddDataForApiSourceRequest.h
  8. 57 0
      iot/include/alibabacloud/iot/model/BatchAddDataForApiSourceResult.h
  9. 1 0
      iot/include/alibabacloud/iot/model/BatchGetEdgeDriverResult.h
  10. 57 0
      iot/include/alibabacloud/iot/model/CloseDeviceTunnelRequest.h
  11. 55 0
      iot/include/alibabacloud/iot/model/CloseDeviceTunnelResult.h
  12. 63 0
      iot/include/alibabacloud/iot/model/CreateDeviceDynamicGroupRequest.h
  13. 65 0
      iot/include/alibabacloud/iot/model/CreateDeviceDynamicGroupResult.h
  14. 69 0
      iot/include/alibabacloud/iot/model/CreateDeviceTunnelRequest.h
  15. 63 0
      iot/include/alibabacloud/iot/model/CreateDeviceTunnelResult.h
  16. 3 0
      iot/include/alibabacloud/iot/model/CreateEdgeDriverRequest.h
  17. 9 0
      iot/include/alibabacloud/iot/model/CreateOTADynamicUpgradeJobRequest.h
  18. 9 0
      iot/include/alibabacloud/iot/model/CreateOTAStaticUpgradeJobRequest.h
  19. 57 0
      iot/include/alibabacloud/iot/model/DeleteDeviceDynamicGroupRequest.h
  20. 55 0
      iot/include/alibabacloud/iot/model/DeleteDeviceDynamicGroupResult.h
  21. 57 0
      iot/include/alibabacloud/iot/model/DeleteDeviceTunnelRequest.h
  22. 55 0
      iot/include/alibabacloud/iot/model/DeleteDeviceTunnelResult.h
  23. 69 0
      iot/include/alibabacloud/iot/model/ListSourceReplicaRequest.h
  24. 88 0
      iot/include/alibabacloud/iot/model/ListSourceReplicaResult.h
  25. 1 0
      iot/include/alibabacloud/iot/model/QueryDeviceGroupByDeviceResult.h
  26. 3 0
      iot/include/alibabacloud/iot/model/QueryDeviceGroupInfoRequest.h
  27. 1 0
      iot/include/alibabacloud/iot/model/QueryDeviceGroupInfoResult.h
  28. 3 0
      iot/include/alibabacloud/iot/model/QueryDeviceGroupListRequest.h
  29. 1 0
      iot/include/alibabacloud/iot/model/QueryDeviceGroupListResult.h
  30. 3 0
      iot/include/alibabacloud/iot/model/QueryDeviceGroupTagListRequest.h
  31. 57 0
      iot/include/alibabacloud/iot/model/QueryDeviceTunnelRequest.h
  32. 72 0
      iot/include/alibabacloud/iot/model/QueryDeviceTunnelResult.h
  33. 78 0
      iot/include/alibabacloud/iot/model/QueryDynamicGroupDevicesRequest.h
  34. 82 0
      iot/include/alibabacloud/iot/model/QueryDynamicGroupDevicesResult.h
  35. 1 0
      iot/include/alibabacloud/iot/model/QueryEdgeDriverResult.h
  36. 3 0
      iot/include/alibabacloud/iot/model/QueryOTAJobResult.h
  37. 3 0
      iot/include/alibabacloud/iot/model/SetDeviceGroupTagsRequest.h
  38. 2 0
      iot/include/alibabacloud/iot/model/SubscribeTopicResult.h
  39. 3 0
      iot/include/alibabacloud/iot/model/UpdateDeviceGroupRequest.h
  40. 360 0
      iot/src/IotClient.cc
  41. 84 0
      iot/src/model/AddDataForApiSourceRequest.cc
  42. 72 0
      iot/src/model/AddDataForApiSourceResult.cc
  43. 84 0
      iot/src/model/BatchAddDataForApiSourceRequest.cc
  44. 72 0
      iot/src/model/BatchAddDataForApiSourceResult.cc
  45. 2 0
      iot/src/model/BatchGetEdgeDriverResult.cc
  46. 73 0
      iot/src/model/CloseDeviceTunnelRequest.cc
  47. 65 0
      iot/src/model/CloseDeviceTunnelResult.cc
  48. 95 0
      iot/src/model/CreateDeviceDynamicGroupRequest.cc
  49. 81 0
      iot/src/model/CreateDeviceDynamicGroupResult.cc
  50. 117 0
      iot/src/model/CreateDeviceTunnelRequest.cc
  51. 77 0
      iot/src/model/CreateDeviceTunnelResult.cc
  52. 11 0
      iot/src/model/CreateEdgeDriverRequest.cc
  53. 33 0
      iot/src/model/CreateOTADynamicUpgradeJobRequest.cc
  54. 33 0
      iot/src/model/CreateOTAStaticUpgradeJobRequest.cc
  55. 73 0
      iot/src/model/DeleteDeviceDynamicGroupRequest.cc
  56. 65 0
      iot/src/model/DeleteDeviceDynamicGroupResult.cc
  57. 73 0
      iot/src/model/DeleteDeviceTunnelRequest.cc
  58. 65 0
      iot/src/model/DeleteDeviceTunnelResult.cc
  59. 117 0
      iot/src/model/ListSourceReplicaRequest.cc
  60. 125 0
      iot/src/model/ListSourceReplicaResult.cc
  61. 2 0
      iot/src/model/QueryDeviceGroupByDeviceResult.cc
  62. 11 0
      iot/src/model/QueryDeviceGroupInfoRequest.cc
  63. 2 0
      iot/src/model/QueryDeviceGroupInfoResult.cc
  64. 13 0
      iot/src/model/QueryDeviceGroupListRequest.cc
  65. 2 0
      iot/src/model/QueryDeviceGroupListResult.cc
  66. 11 0
      iot/src/model/QueryDeviceGroupTagListRequest.cc
  67. 73 0
      iot/src/model/QueryDeviceTunnelRequest.cc
  68. 95 0
      iot/src/model/QueryDeviceTunnelResult.cc
  69. 150 0
      iot/src/model/QueryDynamicGroupDevicesRequest.cc
  70. 135 0
      iot/src/model/QueryDynamicGroupDevicesResult.cc
  71. 2 0
      iot/src/model/QueryEdgeDriverResult.cc
  72. 6 0
      iot/src/model/QueryOTAJobResult.cc
  73. 11 0
      iot/src/model/SetDeviceGroupTagsRequest.cc
  74. 8 0
      iot/src/model/SubscribeTopicResult.cc
  75. 11 0
      iot/src/model/UpdateDeviceGroupRequest.cc

+ 5 - 0
CHANGELOG

@@ -1,3 +1,8 @@
+2021-10-20 Version: 1.36.902
+- Add DeviceCenter API, including CreateDeviceDynamicGroup, DeleteDeviceDynamicGroup, QueryDynamicGroupDevices.
+- Update DeviceCenter API, including SetDeviceGroupTags, QueryDeviceGroupByFuzzyName, QueryDeviceGroupByDevice, QueryDeviceGroupTagList, UpdateDeviceGroup, QueryDeviceGroupList, QueryDeviceGroupInfo.
+- Update OTA API, including CreateOTADynamicUpgradeJob, CreateOTAStaticUpgradeJob, QueryOTAJob.
+
 2021-10-19 Version: 1.36.901
 - Supported ScaleApp totalPartitions.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.901
+1.36.902

+ 40 - 0
iot/CMakeLists.txt

@@ -21,6 +21,10 @@ set(iot_public_header
 	include/alibabacloud/iot/IotExport.h )
 
 set(iot_public_header_model 
+	include/alibabacloud/iot/model/AddDataForApiSourceRequest.h
+	include/alibabacloud/iot/model/AddDataForApiSourceResult.h
+	include/alibabacloud/iot/model/BatchAddDataForApiSourceRequest.h
+	include/alibabacloud/iot/model/BatchAddDataForApiSourceResult.h
 	include/alibabacloud/iot/model/BatchAddDeviceGroupRelationsRequest.h
 	include/alibabacloud/iot/model/BatchAddDeviceGroupRelationsResult.h
 	include/alibabacloud/iot/model/BatchAddThingTopoRequest.h
@@ -97,6 +101,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/CancelReleaseProductResult.h
 	include/alibabacloud/iot/model/ClearEdgeInstanceDriverConfigsRequest.h
 	include/alibabacloud/iot/model/ClearEdgeInstanceDriverConfigsResult.h
+	include/alibabacloud/iot/model/CloseDeviceTunnelRequest.h
+	include/alibabacloud/iot/model/CloseDeviceTunnelResult.h
 	include/alibabacloud/iot/model/CloseEdgeInstanceDeploymentRequest.h
 	include/alibabacloud/iot/model/CloseEdgeInstanceDeploymentResult.h
 	include/alibabacloud/iot/model/ConfirmOTATaskRequest.h
@@ -111,8 +117,12 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/CreateDataAPIServiceResult.h
 	include/alibabacloud/iot/model/CreateDeviceDistributeJobRequest.h
 	include/alibabacloud/iot/model/CreateDeviceDistributeJobResult.h
+	include/alibabacloud/iot/model/CreateDeviceDynamicGroupRequest.h
+	include/alibabacloud/iot/model/CreateDeviceDynamicGroupResult.h
 	include/alibabacloud/iot/model/CreateDeviceGroupRequest.h
 	include/alibabacloud/iot/model/CreateDeviceGroupResult.h
+	include/alibabacloud/iot/model/CreateDeviceTunnelRequest.h
+	include/alibabacloud/iot/model/CreateDeviceTunnelResult.h
 	include/alibabacloud/iot/model/CreateEdgeDriverRequest.h
 	include/alibabacloud/iot/model/CreateEdgeDriverResult.h
 	include/alibabacloud/iot/model/CreateEdgeDriverVersionRequest.h
@@ -179,6 +189,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/DeleteDeviceResult.h
 	include/alibabacloud/iot/model/DeleteDeviceDistributeJobRequest.h
 	include/alibabacloud/iot/model/DeleteDeviceDistributeJobResult.h
+	include/alibabacloud/iot/model/DeleteDeviceDynamicGroupRequest.h
+	include/alibabacloud/iot/model/DeleteDeviceDynamicGroupResult.h
 	include/alibabacloud/iot/model/DeleteDeviceFileRequest.h
 	include/alibabacloud/iot/model/DeleteDeviceFileResult.h
 	include/alibabacloud/iot/model/DeleteDeviceGroupRequest.h
@@ -187,6 +199,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/DeleteDevicePropResult.h
 	include/alibabacloud/iot/model/DeleteDeviceSpeechRequest.h
 	include/alibabacloud/iot/model/DeleteDeviceSpeechResult.h
+	include/alibabacloud/iot/model/DeleteDeviceTunnelRequest.h
+	include/alibabacloud/iot/model/DeleteDeviceTunnelResult.h
 	include/alibabacloud/iot/model/DeleteEdgeDriverRequest.h
 	include/alibabacloud/iot/model/DeleteEdgeDriverResult.h
 	include/alibabacloud/iot/model/DeleteEdgeDriverVersionRequest.h
@@ -331,6 +345,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/ListRuleResult.h
 	include/alibabacloud/iot/model/ListRuleActionsRequest.h
 	include/alibabacloud/iot/model/ListRuleActionsResult.h
+	include/alibabacloud/iot/model/ListSourceReplicaRequest.h
+	include/alibabacloud/iot/model/ListSourceReplicaResult.h
 	include/alibabacloud/iot/model/ListTaskRequest.h
 	include/alibabacloud/iot/model/ListTaskResult.h
 	include/alibabacloud/iot/model/ListTaskByPageRequest.h
@@ -431,6 +447,10 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/QueryDeviceSpeechResult.h
 	include/alibabacloud/iot/model/QueryDeviceStatisticsRequest.h
 	include/alibabacloud/iot/model/QueryDeviceStatisticsResult.h
+	include/alibabacloud/iot/model/QueryDeviceTunnelRequest.h
+	include/alibabacloud/iot/model/QueryDeviceTunnelResult.h
+	include/alibabacloud/iot/model/QueryDynamicGroupDevicesRequest.h
+	include/alibabacloud/iot/model/QueryDynamicGroupDevicesResult.h
 	include/alibabacloud/iot/model/QueryEdgeDriverRequest.h
 	include/alibabacloud/iot/model/QueryEdgeDriverResult.h
 	include/alibabacloud/iot/model/QueryEdgeDriverVersionRequest.h
@@ -628,6 +648,10 @@ set(iot_public_header_model
 
 set(iot_src 
 	src/IotClient.cc
+	src/model/AddDataForApiSourceRequest.cc
+	src/model/AddDataForApiSourceResult.cc
+	src/model/BatchAddDataForApiSourceRequest.cc
+	src/model/BatchAddDataForApiSourceResult.cc
 	src/model/BatchAddDeviceGroupRelationsRequest.cc
 	src/model/BatchAddDeviceGroupRelationsResult.cc
 	src/model/BatchAddThingTopoRequest.cc
@@ -704,6 +728,8 @@ set(iot_src
 	src/model/CancelReleaseProductResult.cc
 	src/model/ClearEdgeInstanceDriverConfigsRequest.cc
 	src/model/ClearEdgeInstanceDriverConfigsResult.cc
+	src/model/CloseDeviceTunnelRequest.cc
+	src/model/CloseDeviceTunnelResult.cc
 	src/model/CloseEdgeInstanceDeploymentRequest.cc
 	src/model/CloseEdgeInstanceDeploymentResult.cc
 	src/model/ConfirmOTATaskRequest.cc
@@ -718,8 +744,12 @@ set(iot_src
 	src/model/CreateDataAPIServiceResult.cc
 	src/model/CreateDeviceDistributeJobRequest.cc
 	src/model/CreateDeviceDistributeJobResult.cc
+	src/model/CreateDeviceDynamicGroupRequest.cc
+	src/model/CreateDeviceDynamicGroupResult.cc
 	src/model/CreateDeviceGroupRequest.cc
 	src/model/CreateDeviceGroupResult.cc
+	src/model/CreateDeviceTunnelRequest.cc
+	src/model/CreateDeviceTunnelResult.cc
 	src/model/CreateEdgeDriverRequest.cc
 	src/model/CreateEdgeDriverResult.cc
 	src/model/CreateEdgeDriverVersionRequest.cc
@@ -786,6 +816,8 @@ set(iot_src
 	src/model/DeleteDeviceResult.cc
 	src/model/DeleteDeviceDistributeJobRequest.cc
 	src/model/DeleteDeviceDistributeJobResult.cc
+	src/model/DeleteDeviceDynamicGroupRequest.cc
+	src/model/DeleteDeviceDynamicGroupResult.cc
 	src/model/DeleteDeviceFileRequest.cc
 	src/model/DeleteDeviceFileResult.cc
 	src/model/DeleteDeviceGroupRequest.cc
@@ -794,6 +826,8 @@ set(iot_src
 	src/model/DeleteDevicePropResult.cc
 	src/model/DeleteDeviceSpeechRequest.cc
 	src/model/DeleteDeviceSpeechResult.cc
+	src/model/DeleteDeviceTunnelRequest.cc
+	src/model/DeleteDeviceTunnelResult.cc
 	src/model/DeleteEdgeDriverRequest.cc
 	src/model/DeleteEdgeDriverResult.cc
 	src/model/DeleteEdgeDriverVersionRequest.cc
@@ -938,6 +972,8 @@ set(iot_src
 	src/model/ListRuleResult.cc
 	src/model/ListRuleActionsRequest.cc
 	src/model/ListRuleActionsResult.cc
+	src/model/ListSourceReplicaRequest.cc
+	src/model/ListSourceReplicaResult.cc
 	src/model/ListTaskRequest.cc
 	src/model/ListTaskResult.cc
 	src/model/ListTaskByPageRequest.cc
@@ -1038,6 +1074,10 @@ set(iot_src
 	src/model/QueryDeviceSpeechResult.cc
 	src/model/QueryDeviceStatisticsRequest.cc
 	src/model/QueryDeviceStatisticsResult.cc
+	src/model/QueryDeviceTunnelRequest.cc
+	src/model/QueryDeviceTunnelResult.cc
+	src/model/QueryDynamicGroupDevicesRequest.cc
+	src/model/QueryDynamicGroupDevicesResult.cc
 	src/model/QueryEdgeDriverRequest.cc
 	src/model/QueryEdgeDriverResult.cc
 	src/model/QueryEdgeDriverVersionRequest.cc

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

@@ -22,6 +22,10 @@
 #include <alibabacloud/core/EndpointProvider.h>
 #include <alibabacloud/core/RpcServiceClient.h>
 #include "IotExport.h"
+#include "model/AddDataForApiSourceRequest.h"
+#include "model/AddDataForApiSourceResult.h"
+#include "model/BatchAddDataForApiSourceRequest.h"
+#include "model/BatchAddDataForApiSourceResult.h"
 #include "model/BatchAddDeviceGroupRelationsRequest.h"
 #include "model/BatchAddDeviceGroupRelationsResult.h"
 #include "model/BatchAddThingTopoRequest.h"
@@ -98,6 +102,8 @@
 #include "model/CancelReleaseProductResult.h"
 #include "model/ClearEdgeInstanceDriverConfigsRequest.h"
 #include "model/ClearEdgeInstanceDriverConfigsResult.h"
+#include "model/CloseDeviceTunnelRequest.h"
+#include "model/CloseDeviceTunnelResult.h"
 #include "model/CloseEdgeInstanceDeploymentRequest.h"
 #include "model/CloseEdgeInstanceDeploymentResult.h"
 #include "model/ConfirmOTATaskRequest.h"
@@ -112,8 +118,12 @@
 #include "model/CreateDataAPIServiceResult.h"
 #include "model/CreateDeviceDistributeJobRequest.h"
 #include "model/CreateDeviceDistributeJobResult.h"
+#include "model/CreateDeviceDynamicGroupRequest.h"
+#include "model/CreateDeviceDynamicGroupResult.h"
 #include "model/CreateDeviceGroupRequest.h"
 #include "model/CreateDeviceGroupResult.h"
+#include "model/CreateDeviceTunnelRequest.h"
+#include "model/CreateDeviceTunnelResult.h"
 #include "model/CreateEdgeDriverRequest.h"
 #include "model/CreateEdgeDriverResult.h"
 #include "model/CreateEdgeDriverVersionRequest.h"
@@ -180,6 +190,8 @@
 #include "model/DeleteDeviceResult.h"
 #include "model/DeleteDeviceDistributeJobRequest.h"
 #include "model/DeleteDeviceDistributeJobResult.h"
+#include "model/DeleteDeviceDynamicGroupRequest.h"
+#include "model/DeleteDeviceDynamicGroupResult.h"
 #include "model/DeleteDeviceFileRequest.h"
 #include "model/DeleteDeviceFileResult.h"
 #include "model/DeleteDeviceGroupRequest.h"
@@ -188,6 +200,8 @@
 #include "model/DeleteDevicePropResult.h"
 #include "model/DeleteDeviceSpeechRequest.h"
 #include "model/DeleteDeviceSpeechResult.h"
+#include "model/DeleteDeviceTunnelRequest.h"
+#include "model/DeleteDeviceTunnelResult.h"
 #include "model/DeleteEdgeDriverRequest.h"
 #include "model/DeleteEdgeDriverResult.h"
 #include "model/DeleteEdgeDriverVersionRequest.h"
@@ -332,6 +346,8 @@
 #include "model/ListRuleResult.h"
 #include "model/ListRuleActionsRequest.h"
 #include "model/ListRuleActionsResult.h"
+#include "model/ListSourceReplicaRequest.h"
+#include "model/ListSourceReplicaResult.h"
 #include "model/ListTaskRequest.h"
 #include "model/ListTaskResult.h"
 #include "model/ListTaskByPageRequest.h"
@@ -432,6 +448,10 @@
 #include "model/QueryDeviceSpeechResult.h"
 #include "model/QueryDeviceStatisticsRequest.h"
 #include "model/QueryDeviceStatisticsResult.h"
+#include "model/QueryDeviceTunnelRequest.h"
+#include "model/QueryDeviceTunnelResult.h"
+#include "model/QueryDynamicGroupDevicesRequest.h"
+#include "model/QueryDynamicGroupDevicesResult.h"
 #include "model/QueryEdgeDriverRequest.h"
 #include "model/QueryEdgeDriverResult.h"
 #include "model/QueryEdgeDriverVersionRequest.h"
@@ -635,6 +655,12 @@ namespace AlibabaCloud
 		class ALIBABACLOUD_IOT_EXPORT IotClient : public RpcServiceClient
 		{
 		public:
+			typedef Outcome<Error, Model::AddDataForApiSourceResult> AddDataForApiSourceOutcome;
+			typedef std::future<AddDataForApiSourceOutcome> AddDataForApiSourceOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::AddDataForApiSourceRequest&, const AddDataForApiSourceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddDataForApiSourceAsyncHandler;
+			typedef Outcome<Error, Model::BatchAddDataForApiSourceResult> BatchAddDataForApiSourceOutcome;
+			typedef std::future<BatchAddDataForApiSourceOutcome> BatchAddDataForApiSourceOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::BatchAddDataForApiSourceRequest&, const BatchAddDataForApiSourceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchAddDataForApiSourceAsyncHandler;
 			typedef Outcome<Error, Model::BatchAddDeviceGroupRelationsResult> BatchAddDeviceGroupRelationsOutcome;
 			typedef std::future<BatchAddDeviceGroupRelationsOutcome> BatchAddDeviceGroupRelationsOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::BatchAddDeviceGroupRelationsRequest&, const BatchAddDeviceGroupRelationsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchAddDeviceGroupRelationsAsyncHandler;
@@ -749,6 +775,9 @@ namespace AlibabaCloud
 			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;
+			typedef Outcome<Error, Model::CloseDeviceTunnelResult> CloseDeviceTunnelOutcome;
+			typedef std::future<CloseDeviceTunnelOutcome> CloseDeviceTunnelOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::CloseDeviceTunnelRequest&, const CloseDeviceTunnelOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CloseDeviceTunnelAsyncHandler;
 			typedef Outcome<Error, Model::CloseEdgeInstanceDeploymentResult> CloseEdgeInstanceDeploymentOutcome;
 			typedef std::future<CloseEdgeInstanceDeploymentOutcome> CloseEdgeInstanceDeploymentOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CloseEdgeInstanceDeploymentRequest&, const CloseEdgeInstanceDeploymentOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CloseEdgeInstanceDeploymentAsyncHandler;
@@ -770,9 +799,15 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateDeviceDistributeJobResult> CreateDeviceDistributeJobOutcome;
 			typedef std::future<CreateDeviceDistributeJobOutcome> CreateDeviceDistributeJobOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CreateDeviceDistributeJobRequest&, const CreateDeviceDistributeJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateDeviceDistributeJobAsyncHandler;
+			typedef Outcome<Error, Model::CreateDeviceDynamicGroupResult> CreateDeviceDynamicGroupOutcome;
+			typedef std::future<CreateDeviceDynamicGroupOutcome> CreateDeviceDynamicGroupOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::CreateDeviceDynamicGroupRequest&, const CreateDeviceDynamicGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateDeviceDynamicGroupAsyncHandler;
 			typedef Outcome<Error, Model::CreateDeviceGroupResult> CreateDeviceGroupOutcome;
 			typedef std::future<CreateDeviceGroupOutcome> CreateDeviceGroupOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CreateDeviceGroupRequest&, const CreateDeviceGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateDeviceGroupAsyncHandler;
+			typedef Outcome<Error, Model::CreateDeviceTunnelResult> CreateDeviceTunnelOutcome;
+			typedef std::future<CreateDeviceTunnelOutcome> CreateDeviceTunnelOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::CreateDeviceTunnelRequest&, const CreateDeviceTunnelOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateDeviceTunnelAsyncHandler;
 			typedef Outcome<Error, Model::CreateEdgeDriverResult> CreateEdgeDriverOutcome;
 			typedef std::future<CreateEdgeDriverOutcome> CreateEdgeDriverOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CreateEdgeDriverRequest&, const CreateEdgeDriverOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateEdgeDriverAsyncHandler;
@@ -872,6 +907,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteDeviceDistributeJobResult> DeleteDeviceDistributeJobOutcome;
 			typedef std::future<DeleteDeviceDistributeJobOutcome> DeleteDeviceDistributeJobOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteDeviceDistributeJobRequest&, const DeleteDeviceDistributeJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDeviceDistributeJobAsyncHandler;
+			typedef Outcome<Error, Model::DeleteDeviceDynamicGroupResult> DeleteDeviceDynamicGroupOutcome;
+			typedef std::future<DeleteDeviceDynamicGroupOutcome> DeleteDeviceDynamicGroupOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::DeleteDeviceDynamicGroupRequest&, const DeleteDeviceDynamicGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDeviceDynamicGroupAsyncHandler;
 			typedef Outcome<Error, Model::DeleteDeviceFileResult> DeleteDeviceFileOutcome;
 			typedef std::future<DeleteDeviceFileOutcome> DeleteDeviceFileOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteDeviceFileRequest&, const DeleteDeviceFileOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDeviceFileAsyncHandler;
@@ -884,6 +922,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteDeviceSpeechResult> DeleteDeviceSpeechOutcome;
 			typedef std::future<DeleteDeviceSpeechOutcome> DeleteDeviceSpeechOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteDeviceSpeechRequest&, const DeleteDeviceSpeechOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDeviceSpeechAsyncHandler;
+			typedef Outcome<Error, Model::DeleteDeviceTunnelResult> DeleteDeviceTunnelOutcome;
+			typedef std::future<DeleteDeviceTunnelOutcome> DeleteDeviceTunnelOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::DeleteDeviceTunnelRequest&, const DeleteDeviceTunnelOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDeviceTunnelAsyncHandler;
 			typedef Outcome<Error, Model::DeleteEdgeDriverResult> DeleteEdgeDriverOutcome;
 			typedef std::future<DeleteEdgeDriverOutcome> DeleteEdgeDriverOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteEdgeDriverRequest&, const DeleteEdgeDriverOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteEdgeDriverAsyncHandler;
@@ -1100,6 +1141,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListRuleActionsResult> ListRuleActionsOutcome;
 			typedef std::future<ListRuleActionsOutcome> ListRuleActionsOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::ListRuleActionsRequest&, const ListRuleActionsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListRuleActionsAsyncHandler;
+			typedef Outcome<Error, Model::ListSourceReplicaResult> ListSourceReplicaOutcome;
+			typedef std::future<ListSourceReplicaOutcome> ListSourceReplicaOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::ListSourceReplicaRequest&, const ListSourceReplicaOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListSourceReplicaAsyncHandler;
 			typedef Outcome<Error, Model::ListTaskResult> ListTaskOutcome;
 			typedef std::future<ListTaskOutcome> ListTaskOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::ListTaskRequest&, const ListTaskOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTaskAsyncHandler;
@@ -1250,6 +1294,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::QueryDeviceStatisticsResult> QueryDeviceStatisticsOutcome;
 			typedef std::future<QueryDeviceStatisticsOutcome> QueryDeviceStatisticsOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryDeviceStatisticsRequest&, const QueryDeviceStatisticsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceStatisticsAsyncHandler;
+			typedef Outcome<Error, Model::QueryDeviceTunnelResult> QueryDeviceTunnelOutcome;
+			typedef std::future<QueryDeviceTunnelOutcome> QueryDeviceTunnelOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::QueryDeviceTunnelRequest&, const QueryDeviceTunnelOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceTunnelAsyncHandler;
+			typedef Outcome<Error, Model::QueryDynamicGroupDevicesResult> QueryDynamicGroupDevicesOutcome;
+			typedef std::future<QueryDynamicGroupDevicesOutcome> QueryDynamicGroupDevicesOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::QueryDynamicGroupDevicesRequest&, const QueryDynamicGroupDevicesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDynamicGroupDevicesAsyncHandler;
 			typedef Outcome<Error, Model::QueryEdgeDriverResult> QueryEdgeDriverOutcome;
 			typedef std::future<QueryEdgeDriverOutcome> QueryEdgeDriverOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryEdgeDriverRequest&, const QueryEdgeDriverOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryEdgeDriverAsyncHandler;
@@ -1546,6 +1596,12 @@ namespace AlibabaCloud
 			IotClient(const std::shared_ptr<CredentialsProvider> &credentialsProvider, const ClientConfiguration &configuration);
 			IotClient(const std::string &accessKeyId, const std::string &accessKeySecret, const ClientConfiguration &configuration);
 			~IotClient();
+			AddDataForApiSourceOutcome addDataForApiSource(const Model::AddDataForApiSourceRequest &request)const;
+			void addDataForApiSourceAsync(const Model::AddDataForApiSourceRequest& request, const AddDataForApiSourceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			AddDataForApiSourceOutcomeCallable addDataForApiSourceCallable(const Model::AddDataForApiSourceRequest& request) const;
+			BatchAddDataForApiSourceOutcome batchAddDataForApiSource(const Model::BatchAddDataForApiSourceRequest &request)const;
+			void batchAddDataForApiSourceAsync(const Model::BatchAddDataForApiSourceRequest& request, const BatchAddDataForApiSourceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			BatchAddDataForApiSourceOutcomeCallable batchAddDataForApiSourceCallable(const Model::BatchAddDataForApiSourceRequest& request) const;
 			BatchAddDeviceGroupRelationsOutcome batchAddDeviceGroupRelations(const Model::BatchAddDeviceGroupRelationsRequest &request)const;
 			void batchAddDeviceGroupRelationsAsync(const Model::BatchAddDeviceGroupRelationsRequest& request, const BatchAddDeviceGroupRelationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			BatchAddDeviceGroupRelationsOutcomeCallable batchAddDeviceGroupRelationsCallable(const Model::BatchAddDeviceGroupRelationsRequest& request) const;
@@ -1660,6 +1716,9 @@ namespace AlibabaCloud
 			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;
+			CloseDeviceTunnelOutcome closeDeviceTunnel(const Model::CloseDeviceTunnelRequest &request)const;
+			void closeDeviceTunnelAsync(const Model::CloseDeviceTunnelRequest& request, const CloseDeviceTunnelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CloseDeviceTunnelOutcomeCallable closeDeviceTunnelCallable(const Model::CloseDeviceTunnelRequest& request) const;
 			CloseEdgeInstanceDeploymentOutcome closeEdgeInstanceDeployment(const Model::CloseEdgeInstanceDeploymentRequest &request)const;
 			void closeEdgeInstanceDeploymentAsync(const Model::CloseEdgeInstanceDeploymentRequest& request, const CloseEdgeInstanceDeploymentAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CloseEdgeInstanceDeploymentOutcomeCallable closeEdgeInstanceDeploymentCallable(const Model::CloseEdgeInstanceDeploymentRequest& request) const;
@@ -1681,9 +1740,15 @@ namespace AlibabaCloud
 			CreateDeviceDistributeJobOutcome createDeviceDistributeJob(const Model::CreateDeviceDistributeJobRequest &request)const;
 			void createDeviceDistributeJobAsync(const Model::CreateDeviceDistributeJobRequest& request, const CreateDeviceDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateDeviceDistributeJobOutcomeCallable createDeviceDistributeJobCallable(const Model::CreateDeviceDistributeJobRequest& request) const;
+			CreateDeviceDynamicGroupOutcome createDeviceDynamicGroup(const Model::CreateDeviceDynamicGroupRequest &request)const;
+			void createDeviceDynamicGroupAsync(const Model::CreateDeviceDynamicGroupRequest& request, const CreateDeviceDynamicGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateDeviceDynamicGroupOutcomeCallable createDeviceDynamicGroupCallable(const Model::CreateDeviceDynamicGroupRequest& request) const;
 			CreateDeviceGroupOutcome createDeviceGroup(const Model::CreateDeviceGroupRequest &request)const;
 			void createDeviceGroupAsync(const Model::CreateDeviceGroupRequest& request, const CreateDeviceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateDeviceGroupOutcomeCallable createDeviceGroupCallable(const Model::CreateDeviceGroupRequest& request) const;
+			CreateDeviceTunnelOutcome createDeviceTunnel(const Model::CreateDeviceTunnelRequest &request)const;
+			void createDeviceTunnelAsync(const Model::CreateDeviceTunnelRequest& request, const CreateDeviceTunnelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateDeviceTunnelOutcomeCallable createDeviceTunnelCallable(const Model::CreateDeviceTunnelRequest& request) const;
 			CreateEdgeDriverOutcome createEdgeDriver(const Model::CreateEdgeDriverRequest &request)const;
 			void createEdgeDriverAsync(const Model::CreateEdgeDriverRequest& request, const CreateEdgeDriverAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateEdgeDriverOutcomeCallable createEdgeDriverCallable(const Model::CreateEdgeDriverRequest& request) const;
@@ -1783,6 +1848,9 @@ namespace AlibabaCloud
 			DeleteDeviceDistributeJobOutcome deleteDeviceDistributeJob(const Model::DeleteDeviceDistributeJobRequest &request)const;
 			void deleteDeviceDistributeJobAsync(const Model::DeleteDeviceDistributeJobRequest& request, const DeleteDeviceDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteDeviceDistributeJobOutcomeCallable deleteDeviceDistributeJobCallable(const Model::DeleteDeviceDistributeJobRequest& request) const;
+			DeleteDeviceDynamicGroupOutcome deleteDeviceDynamicGroup(const Model::DeleteDeviceDynamicGroupRequest &request)const;
+			void deleteDeviceDynamicGroupAsync(const Model::DeleteDeviceDynamicGroupRequest& request, const DeleteDeviceDynamicGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteDeviceDynamicGroupOutcomeCallable deleteDeviceDynamicGroupCallable(const Model::DeleteDeviceDynamicGroupRequest& request) const;
 			DeleteDeviceFileOutcome deleteDeviceFile(const Model::DeleteDeviceFileRequest &request)const;
 			void deleteDeviceFileAsync(const Model::DeleteDeviceFileRequest& request, const DeleteDeviceFileAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteDeviceFileOutcomeCallable deleteDeviceFileCallable(const Model::DeleteDeviceFileRequest& request) const;
@@ -1795,6 +1863,9 @@ namespace AlibabaCloud
 			DeleteDeviceSpeechOutcome deleteDeviceSpeech(const Model::DeleteDeviceSpeechRequest &request)const;
 			void deleteDeviceSpeechAsync(const Model::DeleteDeviceSpeechRequest& request, const DeleteDeviceSpeechAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteDeviceSpeechOutcomeCallable deleteDeviceSpeechCallable(const Model::DeleteDeviceSpeechRequest& request) const;
+			DeleteDeviceTunnelOutcome deleteDeviceTunnel(const Model::DeleteDeviceTunnelRequest &request)const;
+			void deleteDeviceTunnelAsync(const Model::DeleteDeviceTunnelRequest& request, const DeleteDeviceTunnelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteDeviceTunnelOutcomeCallable deleteDeviceTunnelCallable(const Model::DeleteDeviceTunnelRequest& request) const;
 			DeleteEdgeDriverOutcome deleteEdgeDriver(const Model::DeleteEdgeDriverRequest &request)const;
 			void deleteEdgeDriverAsync(const Model::DeleteEdgeDriverRequest& request, const DeleteEdgeDriverAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteEdgeDriverOutcomeCallable deleteEdgeDriverCallable(const Model::DeleteEdgeDriverRequest& request) const;
@@ -2011,6 +2082,9 @@ namespace AlibabaCloud
 			ListRuleActionsOutcome listRuleActions(const Model::ListRuleActionsRequest &request)const;
 			void listRuleActionsAsync(const Model::ListRuleActionsRequest& request, const ListRuleActionsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListRuleActionsOutcomeCallable listRuleActionsCallable(const Model::ListRuleActionsRequest& request) const;
+			ListSourceReplicaOutcome listSourceReplica(const Model::ListSourceReplicaRequest &request)const;
+			void listSourceReplicaAsync(const Model::ListSourceReplicaRequest& request, const ListSourceReplicaAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListSourceReplicaOutcomeCallable listSourceReplicaCallable(const Model::ListSourceReplicaRequest& request) const;
 			ListTaskOutcome listTask(const Model::ListTaskRequest &request)const;
 			void listTaskAsync(const Model::ListTaskRequest& request, const ListTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListTaskOutcomeCallable listTaskCallable(const Model::ListTaskRequest& request) const;
@@ -2161,6 +2235,12 @@ namespace AlibabaCloud
 			QueryDeviceStatisticsOutcome queryDeviceStatistics(const Model::QueryDeviceStatisticsRequest &request)const;
 			void queryDeviceStatisticsAsync(const Model::QueryDeviceStatisticsRequest& request, const QueryDeviceStatisticsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryDeviceStatisticsOutcomeCallable queryDeviceStatisticsCallable(const Model::QueryDeviceStatisticsRequest& request) const;
+			QueryDeviceTunnelOutcome queryDeviceTunnel(const Model::QueryDeviceTunnelRequest &request)const;
+			void queryDeviceTunnelAsync(const Model::QueryDeviceTunnelRequest& request, const QueryDeviceTunnelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryDeviceTunnelOutcomeCallable queryDeviceTunnelCallable(const Model::QueryDeviceTunnelRequest& request) const;
+			QueryDynamicGroupDevicesOutcome queryDynamicGroupDevices(const Model::QueryDynamicGroupDevicesRequest &request)const;
+			void queryDynamicGroupDevicesAsync(const Model::QueryDynamicGroupDevicesRequest& request, const QueryDynamicGroupDevicesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryDynamicGroupDevicesOutcomeCallable queryDynamicGroupDevicesCallable(const Model::QueryDynamicGroupDevicesRequest& request) const;
 			QueryEdgeDriverOutcome queryEdgeDriver(const Model::QueryEdgeDriverRequest &request)const;
 			void queryEdgeDriverAsync(const Model::QueryEdgeDriverRequest& request, const QueryEdgeDriverAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryEdgeDriverOutcomeCallable queryEdgeDriverCallable(const Model::QueryEdgeDriverRequest& request) const;

+ 60 - 0
iot/include/alibabacloud/iot/model/AddDataForApiSourceRequest.h

@@ -0,0 +1,60 @@
+/*
+ * 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_ADDDATAFORAPISOURCEREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_ADDDATAFORAPISOURCEREQUEST_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 AddDataForApiSourceRequest : public RpcServiceRequest
+			{
+
+			public:
+				AddDataForApiSourceRequest();
+				~AddDataForApiSourceRequest();
+
+				std::string getContent()const;
+				void setContent(const std::string& content);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getApiId()const;
+				void setApiId(const std::string& apiId);
+
+            private:
+				std::string content_;
+				std::string iotInstanceId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string apiId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_ADDDATAFORAPISOURCEREQUEST_H_

+ 57 - 0
iot/include/alibabacloud/iot/model/AddDataForApiSourceResult.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_ADDDATAFORAPISOURCERESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_ADDDATAFORAPISOURCERESULT_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 AddDataForApiSourceResult : public ServiceResult
+			{
+			public:
+
+
+				AddDataForApiSourceResult();
+				explicit AddDataForApiSourceResult(const std::string &payload);
+				~AddDataForApiSourceResult();
+				long getData()const;
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				long data_;
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_ADDDATAFORAPISOURCERESULT_H_

+ 60 - 0
iot/include/alibabacloud/iot/model/BatchAddDataForApiSourceRequest.h

@@ -0,0 +1,60 @@
+/*
+ * 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_BATCHADDDATAFORAPISOURCEREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_BATCHADDDATAFORAPISOURCEREQUEST_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 BatchAddDataForApiSourceRequest : public RpcServiceRequest
+			{
+
+			public:
+				BatchAddDataForApiSourceRequest();
+				~BatchAddDataForApiSourceRequest();
+
+				std::string getContentList()const;
+				void setContentList(const std::string& contentList);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getApiId()const;
+				void setApiId(const std::string& apiId);
+
+            private:
+				std::string contentList_;
+				std::string iotInstanceId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string apiId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_BATCHADDDATAFORAPISOURCEREQUEST_H_

+ 57 - 0
iot/include/alibabacloud/iot/model/BatchAddDataForApiSourceResult.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_BATCHADDDATAFORAPISOURCERESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_BATCHADDDATAFORAPISOURCERESULT_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 BatchAddDataForApiSourceResult : public ServiceResult
+			{
+			public:
+
+
+				BatchAddDataForApiSourceResult();
+				explicit BatchAddDataForApiSourceResult(const std::string &payload);
+				~BatchAddDataForApiSourceResult();
+				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_BATCHADDDATAFORAPISOURCERESULT_H_

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

@@ -41,6 +41,7 @@ namespace AlibabaCloud
 					long gmtCreateTimestamp;
 					std::string driverName;
 					long gmtModifiedTimestamp;
+					int useOfficialConfig;
 					std::string cpuArch;
 					bool isBuiltIn;
 				};

+ 57 - 0
iot/include/alibabacloud/iot/model/CloseDeviceTunnelRequest.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_CLOSEDEVICETUNNELREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_CLOSEDEVICETUNNELREQUEST_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 CloseDeviceTunnelRequest : public RpcServiceRequest
+			{
+
+			public:
+				CloseDeviceTunnelRequest();
+				~CloseDeviceTunnelRequest();
+
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getTunnelId()const;
+				void setTunnelId(const std::string& tunnelId);
+				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::string tunnelId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CLOSEDEVICETUNNELREQUEST_H_

+ 55 - 0
iot/include/alibabacloud/iot/model/CloseDeviceTunnelResult.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_CLOSEDEVICETUNNELRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_CLOSEDEVICETUNNELRESULT_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 CloseDeviceTunnelResult : public ServiceResult
+			{
+			public:
+
+
+				CloseDeviceTunnelResult();
+				explicit CloseDeviceTunnelResult(const std::string &payload);
+				~CloseDeviceTunnelResult();
+				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_CLOSEDEVICETUNNELRESULT_H_

+ 63 - 0
iot/include/alibabacloud/iot/model/CreateDeviceDynamicGroupRequest.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_CREATEDEVICEDYNAMICGROUPREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATEDEVICEDYNAMICGROUPREQUEST_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 CreateDeviceDynamicGroupRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateDeviceDynamicGroupRequest();
+				~CreateDeviceDynamicGroupRequest();
+
+				std::string getDynamicGroupExpression()const;
+				void setDynamicGroupExpression(const std::string& dynamicGroupExpression);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getGroupName()const;
+				void setGroupName(const std::string& groupName);
+				std::string getGroupDesc()const;
+				void setGroupDesc(const std::string& groupDesc);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+
+            private:
+				std::string dynamicGroupExpression_;
+				std::string iotInstanceId_;
+				std::string groupName_;
+				std::string groupDesc_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CREATEDEVICEDYNAMICGROUPREQUEST_H_

+ 65 - 0
iot/include/alibabacloud/iot/model/CreateDeviceDynamicGroupResult.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_CREATEDEVICEDYNAMICGROUPRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATEDEVICEDYNAMICGROUPRESULT_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 CreateDeviceDynamicGroupResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string groupName;
+					std::string utcCreate;
+					std::string groupDesc;
+					std::string groupId;
+					std::string dynamicGroupExpression;
+				};
+
+
+				CreateDeviceDynamicGroupResult();
+				explicit CreateDeviceDynamicGroupResult(const std::string &payload);
+				~CreateDeviceDynamicGroupResult();
+				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_CREATEDEVICEDYNAMICGROUPRESULT_H_

+ 69 - 0
iot/include/alibabacloud/iot/model/CreateDeviceTunnelRequest.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_CREATEDEVICETUNNELREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATEDEVICETUNNELREQUEST_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 CreateDeviceTunnelRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateDeviceTunnelRequest();
+				~CreateDeviceTunnelRequest();
+
+				std::string getDescription()const;
+				void setDescription(const std::string& description);
+				std::string getIotId()const;
+				void setIotId(const std::string& iotId);
+				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);
+				std::string getUdi()const;
+				void setUdi(const std::string& udi);
+
+            private:
+				std::string description_;
+				std::string iotId_;
+				std::string iotInstanceId_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string deviceName_;
+				std::string udi_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CREATEDEVICETUNNELREQUEST_H_

+ 63 - 0
iot/include/alibabacloud/iot/model/CreateDeviceTunnelResult.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_CREATEDEVICETUNNELRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATEDEVICETUNNELRESULT_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 CreateDeviceTunnelResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string sourceURI;
+					std::string sourceAccessToken;
+					std::string tunnelId;
+				};
+
+
+				CreateDeviceTunnelResult();
+				explicit CreateDeviceTunnelResult(const std::string &payload);
+				~CreateDeviceTunnelResult();
+				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_CREATEDEVICETUNNELRESULT_H_

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

@@ -47,6 +47,8 @@ namespace AlibabaCloud
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getRuntime()const;
 				void setRuntime(const std::string& runtime);
+				int getUseOfficialConfig()const;
+				void setUseOfficialConfig(int useOfficialConfig);
 				std::string getApiProduct()const;
 				void setApiProduct(const std::string& apiProduct);
 				std::string getCpuArch()const;
@@ -61,6 +63,7 @@ namespace AlibabaCloud
 				std::string accessKeyId_;
 				std::string iotInstanceId_;
 				std::string runtime_;
+				int useOfficialConfig_;
 				std::string apiProduct_;
 				std::string cpuArch_;
 				std::string apiRevision_;

+ 9 - 0
iot/include/alibabacloud/iot/model/CreateOTADynamicUpgradeJobRequest.h

@@ -51,12 +51,18 @@ namespace AlibabaCloud
 				void setNeedConfirm(bool needConfirm);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getGroupType()const;
+				void setGroupType(const std::string& groupType);
 				bool getNeedPush()const;
 				void setNeedPush(bool needPush);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getDownloadProtocol()const;
+				void setDownloadProtocol(const std::string& downloadProtocol);
 				std::vector<Tag> getTag()const;
 				void setTag(const std::vector<Tag>& tag);
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
 				std::string getFirmwareId()const;
 				void setFirmwareId(const std::string& firmwareId);
 				std::string getProductKey()const;
@@ -80,9 +86,12 @@ namespace AlibabaCloud
 				int timeoutInMinutes_;
 				bool needConfirm_;
 				std::string accessKeyId_;
+				std::string groupType_;
 				bool needPush_;
 				std::string iotInstanceId_;
+				std::string downloadProtocol_;
 				std::vector<Tag> tag_;
+				std::string groupId_;
 				std::string firmwareId_;
 				std::string productKey_;
 				int retryInterval_;

+ 9 - 0
iot/include/alibabacloud/iot/model/CreateOTAStaticUpgradeJobRequest.h

@@ -49,10 +49,14 @@ namespace AlibabaCloud
 				void setNeedConfirm(bool needConfirm);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getGroupType()const;
+				void setGroupType(const std::string& groupType);
 				bool getNeedPush()const;
 				void setNeedPush(bool needPush);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getDownloadProtocol()const;
+				void setDownloadProtocol(const std::string& downloadProtocol);
 				std::string getTargetSelection()const;
 				void setTargetSelection(const std::string& targetSelection);
 				long getScheduleFinishTime()const;
@@ -63,6 +67,8 @@ namespace AlibabaCloud
 				void setGrayPercent(const std::string& grayPercent);
 				std::string getDnListFileUrl()const;
 				void setDnListFileUrl(const std::string& dnListFileUrl);
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
 				std::string getFirmwareId()const;
 				void setFirmwareId(const std::string& firmwareId);
 				std::string getProductKey()const;
@@ -89,13 +95,16 @@ namespace AlibabaCloud
 				int timeoutInMinutes_;
 				bool needConfirm_;
 				std::string accessKeyId_;
+				std::string groupType_;
 				bool needPush_;
 				std::string iotInstanceId_;
+				std::string downloadProtocol_;
 				std::string targetSelection_;
 				long scheduleFinishTime_;
 				std::vector<Tag> tag_;
 				std::string grayPercent_;
 				std::string dnListFileUrl_;
+				std::string groupId_;
 				std::string firmwareId_;
 				std::string productKey_;
 				int retryInterval_;

+ 57 - 0
iot/include/alibabacloud/iot/model/DeleteDeviceDynamicGroupRequest.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_DELETEDEVICEDYNAMICGROUPREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_DELETEDEVICEDYNAMICGROUPREQUEST_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 DeleteDeviceDynamicGroupRequest : public RpcServiceRequest
+			{
+
+			public:
+				DeleteDeviceDynamicGroupRequest();
+				~DeleteDeviceDynamicGroupRequest();
+
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+				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::string groupId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DELETEDEVICEDYNAMICGROUPREQUEST_H_

+ 55 - 0
iot/include/alibabacloud/iot/model/DeleteDeviceDynamicGroupResult.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_DELETEDEVICEDYNAMICGROUPRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_DELETEDEVICEDYNAMICGROUPRESULT_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 DeleteDeviceDynamicGroupResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteDeviceDynamicGroupResult();
+				explicit DeleteDeviceDynamicGroupResult(const std::string &payload);
+				~DeleteDeviceDynamicGroupResult();
+				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_DELETEDEVICEDYNAMICGROUPRESULT_H_

+ 57 - 0
iot/include/alibabacloud/iot/model/DeleteDeviceTunnelRequest.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_DELETEDEVICETUNNELREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_DELETEDEVICETUNNELREQUEST_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 DeleteDeviceTunnelRequest : public RpcServiceRequest
+			{
+
+			public:
+				DeleteDeviceTunnelRequest();
+				~DeleteDeviceTunnelRequest();
+
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getTunnelId()const;
+				void setTunnelId(const std::string& tunnelId);
+				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::string tunnelId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DELETEDEVICETUNNELREQUEST_H_

+ 55 - 0
iot/include/alibabacloud/iot/model/DeleteDeviceTunnelResult.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_DELETEDEVICETUNNELRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_DELETEDEVICETUNNELRESULT_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 DeleteDeviceTunnelResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteDeviceTunnelResult();
+				explicit DeleteDeviceTunnelResult(const std::string &payload);
+				~DeleteDeviceTunnelResult();
+				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_DELETEDEVICETUNNELRESULT_H_

+ 69 - 0
iot/include/alibabacloud/iot/model/ListSourceReplicaRequest.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_LISTSOURCEREPLICAREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_LISTSOURCEREPLICAREQUEST_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 ListSourceReplicaRequest : public RpcServiceRequest
+			{
+
+			public:
+				ListSourceReplicaRequest();
+				~ListSourceReplicaRequest();
+
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getContext()const;
+				void setContext(const std::string& context);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				std::string getSourceType()const;
+				void setSourceType(const std::string& sourceType);
+				int getPageNo()const;
+				void setPageNo(int pageNo);
+				std::string getLpInstanceId()const;
+				void setLpInstanceId(const std::string& lpInstanceId);
+				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::string context_;
+				int pageSize_;
+				std::string sourceType_;
+				int pageNo_;
+				std::string lpInstanceId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_LISTSOURCEREPLICAREQUEST_H_

+ 88 - 0
iot/include/alibabacloud/iot/model/ListSourceReplicaResult.h

@@ -0,0 +1,88 @@
+/*
+ * 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_LISTSOURCEREPLICARESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_LISTSOURCEREPLICARESULT_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 ListSourceReplicaResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct DataListItem
+					{
+						int timeCycle;
+						int status;
+						std::string longJobUid;
+						std::string sourceUid;
+						std::string extraProperty;
+						std::string sourceType;
+						long storageSize;
+						long productCreateTime;
+						std::string code;
+						long beginLatest;
+						std::string replicaUid;
+						std::string name;
+						std::string desc;
+						long gmtCreate;
+						int nodeType;
+						std::string tableUid;
+						std::string timeUnit;
+						int region;
+						long endLatest;
+						bool needTips;
+					};
+					std::vector<DataListItem> dataList;
+					long totalPage;
+					int pageSize;
+					long total;
+					int pageNo;
+				};
+
+
+				ListSourceReplicaResult();
+				explicit ListSourceReplicaResult(const std::string &payload);
+				~ListSourceReplicaResult();
+				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_LISTSOURCEREPLICARESULT_H_

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

@@ -36,6 +36,7 @@ namespace AlibabaCloud
 				{
 					std::string groupName;
 					std::string utcCreate;
+					std::string groupType;
 					std::string groupDesc;
 					std::string groupId;
 				};

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

@@ -41,6 +41,8 @@ namespace AlibabaCloud
 				void setAccessKeyId(const std::string& accessKeyId);
 				std::string getRealTripartiteKey()const;
 				void setRealTripartiteKey(const std::string& realTripartiteKey);
+				std::string getGroupType()const;
+				void setGroupType(const std::string& groupType);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getGroupId()const;
@@ -54,6 +56,7 @@ namespace AlibabaCloud
 				std::string realTenantId_;
 				std::string accessKeyId_;
 				std::string realTripartiteKey_;
+				std::string groupType_;
 				std::string iotInstanceId_;
 				std::string groupId_;
 				std::string apiProduct_;

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

@@ -41,6 +41,7 @@ namespace AlibabaCloud
 					int deviceActive;
 					std::string groupId;
 					int deviceCount;
+					std::string dynamicGroupExpression;
 				};
 
 

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

@@ -35,6 +35,8 @@ namespace AlibabaCloud
 				QueryDeviceGroupListRequest();
 				~QueryDeviceGroupListRequest();
 
+				std::vector<std::string> getGroupTypes()const;
+				void setGroupTypes(const std::vector<std::string>& groupTypes);
 				std::string getSuperGroupId()const;
 				void setSuperGroupId(const std::string& superGroupId);
 				std::string getAccessKeyId()const;
@@ -53,6 +55,7 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 
             private:
+				std::vector<std::string> groupTypes_;
 				std::string superGroupId_;
 				std::string accessKeyId_;
 				std::string iotInstanceId_;

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

@@ -36,6 +36,7 @@ namespace AlibabaCloud
 				{
 					std::string groupName;
 					std::string utcCreate;
+					std::string groupType;
 					std::string groupDesc;
 					std::string groupId;
 				};

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

@@ -37,6 +37,8 @@ namespace AlibabaCloud
 
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getGroupType()const;
+				void setGroupType(const std::string& groupType);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getGroupId()const;
@@ -48,6 +50,7 @@ namespace AlibabaCloud
 
             private:
 				std::string accessKeyId_;
+				std::string groupType_;
 				std::string iotInstanceId_;
 				std::string groupId_;
 				std::string apiProduct_;

+ 57 - 0
iot/include/alibabacloud/iot/model/QueryDeviceTunnelRequest.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_QUERYDEVICETUNNELREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDEVICETUNNELREQUEST_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 QueryDeviceTunnelRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryDeviceTunnelRequest();
+				~QueryDeviceTunnelRequest();
+
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getTunnelId()const;
+				void setTunnelId(const std::string& tunnelId);
+				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::string tunnelId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYDEVICETUNNELREQUEST_H_

+ 72 - 0
iot/include/alibabacloud/iot/model/QueryDeviceTunnelResult.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_QUERYDEVICETUNNELRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDEVICETUNNELRESULT_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 QueryDeviceTunnelResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string iotId;
+					std::string description;
+					std::string deviceConnState;
+					std::string utcCreated;
+					std::string utcClosed;
+					std::string productName;
+					std::string tunnelState;
+					std::string sourceConnState;
+					std::string udi;
+					std::string tunnelId;
+					std::string productKey;
+					std::string deviceName;
+				};
+
+
+				QueryDeviceTunnelResult();
+				explicit QueryDeviceTunnelResult(const std::string &payload);
+				~QueryDeviceTunnelResult();
+				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_QUERYDEVICETUNNELRESULT_H_

+ 78 - 0
iot/include/alibabacloud/iot/model/QueryDynamicGroupDevicesRequest.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_QUERYDYNAMICGROUPDEVICESREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDYNAMICGROUPDEVICESREQUEST_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 QueryDynamicGroupDevicesRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryDynamicGroupDevicesRequest();
+				~QueryDynamicGroupDevicesRequest();
+
+				std::string getNextToken()const;
+				void setNextToken(const std::string& nextToken);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				bool getFuzzyName()const;
+				void setFuzzyName(bool fuzzyName);
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+				int getCurrentPage()const;
+				void setCurrentPage(int currentPage);
+				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);
+				std::string getStatus()const;
+				void setStatus(const std::string& status);
+
+            private:
+				std::string nextToken_;
+				std::string iotInstanceId_;
+				int pageSize_;
+				bool fuzzyName_;
+				std::string groupId_;
+				int currentPage_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string deviceName_;
+				std::string status_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYDYNAMICGROUPDEVICESREQUEST_H_

+ 82 - 0
iot/include/alibabacloud/iot/model/QueryDynamicGroupDevicesResult.h

@@ -0,0 +1,82 @@
+/*
+ * 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_QUERYDYNAMICGROUPDEVICESRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDYNAMICGROUPDEVICESRESULT_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 QueryDynamicGroupDevicesResult : public ServiceResult
+			{
+			public:
+				struct SimpleDeviceInfo
+				{
+					std::string status;
+					std::string utcActiveTime;
+					std::string lastOnlineTime;
+					std::string iotId;
+					std::string categoryKey;
+					std::string productName;
+					std::string activeTime;
+					std::string utcLastOnlineTime;
+					int nodeType;
+					std::string productKey;
+					std::string deviceName;
+					std::string nickname;
+				};
+
+
+				QueryDynamicGroupDevicesResult();
+				explicit QueryDynamicGroupDevicesResult(const std::string &payload);
+				~QueryDynamicGroupDevicesResult();
+				int getPageSize()const;
+				int getPageCount()const;
+				std::string getNextToken()const;
+				int getTotal()const;
+				std::vector<SimpleDeviceInfo> getData()const;
+				int getPage()const;
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int pageSize_;
+				int pageCount_;
+				std::string nextToken_;
+				int total_;
+				std::vector<SimpleDeviceInfo> data_;
+				int page_;
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYDYNAMICGROUPDEVICESRESULT_H_

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

@@ -44,6 +44,7 @@ namespace AlibabaCloud
 						std::string driverName;
 						bool isApply;
 						long gmtModifiedTimestamp;
+						int useOfficialConfig;
 						std::string cpuArch;
 						bool isBuiltIn;
 					};

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

@@ -39,6 +39,7 @@ namespace AlibabaCloud
 						std::string value;
 						std::string key;
 					};
+					std::string groupName;
 					std::string utcEndTime;
 					bool needPush;
 					int overwriteMode;
@@ -57,10 +58,12 @@ namespace AlibabaCloud
 					std::string utcScheduleFinishTime;
 					std::vector<std::string> srcVersions;
 					bool needConfirm;
+					std::string groupId;
 					std::string jobDesc;
 					std::string jobType;
 					std::string utcCreate;
 					int maximumPerMinute;
+					std::string downloadProtocol;
 					std::string utcModified;
 					int retryInterval;
 					std::string utcScheduleTime;

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

@@ -37,6 +37,8 @@ namespace AlibabaCloud
 
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getGroupType()const;
+				void setGroupType(const std::string& groupType);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getTagString()const;
@@ -50,6 +52,7 @@ namespace AlibabaCloud
 
             private:
 				std::string accessKeyId_;
+				std::string groupType_;
 				std::string iotInstanceId_;
 				std::string tagString_;
 				std::string groupId_;

+ 2 - 0
iot/include/alibabacloud/iot/model/SubscribeTopicResult.h

@@ -37,6 +37,7 @@ namespace AlibabaCloud
 				SubscribeTopicResult();
 				explicit SubscribeTopicResult(const std::string &payload);
 				~SubscribeTopicResult();
+				std::vector<std::string> getFailureTopics()const;
 				std::string getErrorMessage()const;
 				std::string getCode()const;
 				bool getSuccess()const;
@@ -44,6 +45,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::vector<std::string> failureTopics_;
 				std::string errorMessage_;
 				std::string code_;
 				bool success_;

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

@@ -37,6 +37,8 @@ namespace AlibabaCloud
 
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getGroupType()const;
+				void setGroupType(const std::string& groupType);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getGroupId()const;
@@ -50,6 +52,7 @@ namespace AlibabaCloud
 
             private:
 				std::string accessKeyId_;
+				std::string groupType_;
 				std::string iotInstanceId_;
 				std::string groupId_;
 				std::string groupDesc_;

+ 360 - 0
iot/src/IotClient.cc

@@ -51,6 +51,78 @@ IotClient::IotClient(const std::string & accessKeyId, const std::string & access
 IotClient::~IotClient()
 {}
 
+IotClient::AddDataForApiSourceOutcome IotClient::addDataForApiSource(const AddDataForApiSourceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return AddDataForApiSourceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return AddDataForApiSourceOutcome(AddDataForApiSourceResult(outcome.result()));
+	else
+		return AddDataForApiSourceOutcome(outcome.error());
+}
+
+void IotClient::addDataForApiSourceAsync(const AddDataForApiSourceRequest& request, const AddDataForApiSourceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, addDataForApiSource(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::AddDataForApiSourceOutcomeCallable IotClient::addDataForApiSourceCallable(const AddDataForApiSourceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<AddDataForApiSourceOutcome()>>(
+			[this, request]()
+			{
+			return this->addDataForApiSource(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+IotClient::BatchAddDataForApiSourceOutcome IotClient::batchAddDataForApiSource(const BatchAddDataForApiSourceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return BatchAddDataForApiSourceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return BatchAddDataForApiSourceOutcome(BatchAddDataForApiSourceResult(outcome.result()));
+	else
+		return BatchAddDataForApiSourceOutcome(outcome.error());
+}
+
+void IotClient::batchAddDataForApiSourceAsync(const BatchAddDataForApiSourceRequest& request, const BatchAddDataForApiSourceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, batchAddDataForApiSource(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::BatchAddDataForApiSourceOutcomeCallable IotClient::batchAddDataForApiSourceCallable(const BatchAddDataForApiSourceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<BatchAddDataForApiSourceOutcome()>>(
+			[this, request]()
+			{
+			return this->batchAddDataForApiSource(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::BatchAddDeviceGroupRelationsOutcome IotClient::batchAddDeviceGroupRelations(const BatchAddDeviceGroupRelationsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1419,6 +1491,42 @@ IotClient::ClearEdgeInstanceDriverConfigsOutcomeCallable IotClient::clearEdgeIns
 	return task->get_future();
 }
 
+IotClient::CloseDeviceTunnelOutcome IotClient::closeDeviceTunnel(const CloseDeviceTunnelRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CloseDeviceTunnelOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CloseDeviceTunnelOutcome(CloseDeviceTunnelResult(outcome.result()));
+	else
+		return CloseDeviceTunnelOutcome(outcome.error());
+}
+
+void IotClient::closeDeviceTunnelAsync(const CloseDeviceTunnelRequest& request, const CloseDeviceTunnelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, closeDeviceTunnel(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::CloseDeviceTunnelOutcomeCallable IotClient::closeDeviceTunnelCallable(const CloseDeviceTunnelRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CloseDeviceTunnelOutcome()>>(
+			[this, request]()
+			{
+			return this->closeDeviceTunnel(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::CloseEdgeInstanceDeploymentOutcome IotClient::closeEdgeInstanceDeployment(const CloseEdgeInstanceDeploymentRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1671,6 +1779,42 @@ IotClient::CreateDeviceDistributeJobOutcomeCallable IotClient::createDeviceDistr
 	return task->get_future();
 }
 
+IotClient::CreateDeviceDynamicGroupOutcome IotClient::createDeviceDynamicGroup(const CreateDeviceDynamicGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateDeviceDynamicGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateDeviceDynamicGroupOutcome(CreateDeviceDynamicGroupResult(outcome.result()));
+	else
+		return CreateDeviceDynamicGroupOutcome(outcome.error());
+}
+
+void IotClient::createDeviceDynamicGroupAsync(const CreateDeviceDynamicGroupRequest& request, const CreateDeviceDynamicGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createDeviceDynamicGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::CreateDeviceDynamicGroupOutcomeCallable IotClient::createDeviceDynamicGroupCallable(const CreateDeviceDynamicGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateDeviceDynamicGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->createDeviceDynamicGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::CreateDeviceGroupOutcome IotClient::createDeviceGroup(const CreateDeviceGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1707,6 +1851,42 @@ IotClient::CreateDeviceGroupOutcomeCallable IotClient::createDeviceGroupCallable
 	return task->get_future();
 }
 
+IotClient::CreateDeviceTunnelOutcome IotClient::createDeviceTunnel(const CreateDeviceTunnelRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateDeviceTunnelOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateDeviceTunnelOutcome(CreateDeviceTunnelResult(outcome.result()));
+	else
+		return CreateDeviceTunnelOutcome(outcome.error());
+}
+
+void IotClient::createDeviceTunnelAsync(const CreateDeviceTunnelRequest& request, const CreateDeviceTunnelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createDeviceTunnel(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::CreateDeviceTunnelOutcomeCallable IotClient::createDeviceTunnelCallable(const CreateDeviceTunnelRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateDeviceTunnelOutcome()>>(
+			[this, request]()
+			{
+			return this->createDeviceTunnel(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::CreateEdgeDriverOutcome IotClient::createEdgeDriver(const CreateEdgeDriverRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2895,6 +3075,42 @@ IotClient::DeleteDeviceDistributeJobOutcomeCallable IotClient::deleteDeviceDistr
 	return task->get_future();
 }
 
+IotClient::DeleteDeviceDynamicGroupOutcome IotClient::deleteDeviceDynamicGroup(const DeleteDeviceDynamicGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteDeviceDynamicGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteDeviceDynamicGroupOutcome(DeleteDeviceDynamicGroupResult(outcome.result()));
+	else
+		return DeleteDeviceDynamicGroupOutcome(outcome.error());
+}
+
+void IotClient::deleteDeviceDynamicGroupAsync(const DeleteDeviceDynamicGroupRequest& request, const DeleteDeviceDynamicGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteDeviceDynamicGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::DeleteDeviceDynamicGroupOutcomeCallable IotClient::deleteDeviceDynamicGroupCallable(const DeleteDeviceDynamicGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteDeviceDynamicGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteDeviceDynamicGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::DeleteDeviceFileOutcome IotClient::deleteDeviceFile(const DeleteDeviceFileRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -3039,6 +3255,42 @@ IotClient::DeleteDeviceSpeechOutcomeCallable IotClient::deleteDeviceSpeechCallab
 	return task->get_future();
 }
 
+IotClient::DeleteDeviceTunnelOutcome IotClient::deleteDeviceTunnel(const DeleteDeviceTunnelRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteDeviceTunnelOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteDeviceTunnelOutcome(DeleteDeviceTunnelResult(outcome.result()));
+	else
+		return DeleteDeviceTunnelOutcome(outcome.error());
+}
+
+void IotClient::deleteDeviceTunnelAsync(const DeleteDeviceTunnelRequest& request, const DeleteDeviceTunnelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteDeviceTunnel(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::DeleteDeviceTunnelOutcomeCallable IotClient::deleteDeviceTunnelCallable(const DeleteDeviceTunnelRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteDeviceTunnelOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteDeviceTunnel(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::DeleteEdgeDriverOutcome IotClient::deleteEdgeDriver(const DeleteEdgeDriverRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -5631,6 +5883,42 @@ IotClient::ListRuleActionsOutcomeCallable IotClient::listRuleActionsCallable(con
 	return task->get_future();
 }
 
+IotClient::ListSourceReplicaOutcome IotClient::listSourceReplica(const ListSourceReplicaRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListSourceReplicaOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListSourceReplicaOutcome(ListSourceReplicaResult(outcome.result()));
+	else
+		return ListSourceReplicaOutcome(outcome.error());
+}
+
+void IotClient::listSourceReplicaAsync(const ListSourceReplicaRequest& request, const ListSourceReplicaAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listSourceReplica(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::ListSourceReplicaOutcomeCallable IotClient::listSourceReplicaCallable(const ListSourceReplicaRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListSourceReplicaOutcome()>>(
+			[this, request]()
+			{
+			return this->listSourceReplica(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::ListTaskOutcome IotClient::listTask(const ListTaskRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -7431,6 +7719,78 @@ IotClient::QueryDeviceStatisticsOutcomeCallable IotClient::queryDeviceStatistics
 	return task->get_future();
 }
 
+IotClient::QueryDeviceTunnelOutcome IotClient::queryDeviceTunnel(const QueryDeviceTunnelRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryDeviceTunnelOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryDeviceTunnelOutcome(QueryDeviceTunnelResult(outcome.result()));
+	else
+		return QueryDeviceTunnelOutcome(outcome.error());
+}
+
+void IotClient::queryDeviceTunnelAsync(const QueryDeviceTunnelRequest& request, const QueryDeviceTunnelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryDeviceTunnel(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::QueryDeviceTunnelOutcomeCallable IotClient::queryDeviceTunnelCallable(const QueryDeviceTunnelRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryDeviceTunnelOutcome()>>(
+			[this, request]()
+			{
+			return this->queryDeviceTunnel(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+IotClient::QueryDynamicGroupDevicesOutcome IotClient::queryDynamicGroupDevices(const QueryDynamicGroupDevicesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryDynamicGroupDevicesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryDynamicGroupDevicesOutcome(QueryDynamicGroupDevicesResult(outcome.result()));
+	else
+		return QueryDynamicGroupDevicesOutcome(outcome.error());
+}
+
+void IotClient::queryDynamicGroupDevicesAsync(const QueryDynamicGroupDevicesRequest& request, const QueryDynamicGroupDevicesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryDynamicGroupDevices(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::QueryDynamicGroupDevicesOutcomeCallable IotClient::queryDynamicGroupDevicesCallable(const QueryDynamicGroupDevicesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryDynamicGroupDevicesOutcome()>>(
+			[this, request]()
+			{
+			return this->queryDynamicGroupDevices(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::QueryEdgeDriverOutcome IotClient::queryEdgeDriver(const QueryEdgeDriverRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 84 - 0
iot/src/model/AddDataForApiSourceRequest.cc

@@ -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.
+ */
+
+#include <alibabacloud/iot/model/AddDataForApiSourceRequest.h>
+
+using AlibabaCloud::Iot::Model::AddDataForApiSourceRequest;
+
+AddDataForApiSourceRequest::AddDataForApiSourceRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "AddDataForApiSource")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+AddDataForApiSourceRequest::~AddDataForApiSourceRequest()
+{}
+
+std::string AddDataForApiSourceRequest::getContent()const
+{
+	return content_;
+}
+
+void AddDataForApiSourceRequest::setContent(const std::string& content)
+{
+	content_ = content;
+	setParameter("Content", content);
+}
+
+std::string AddDataForApiSourceRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void AddDataForApiSourceRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string AddDataForApiSourceRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void AddDataForApiSourceRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string AddDataForApiSourceRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void AddDataForApiSourceRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string AddDataForApiSourceRequest::getApiId()const
+{
+	return apiId_;
+}
+
+void AddDataForApiSourceRequest::setApiId(const std::string& apiId)
+{
+	apiId_ = apiId;
+	setParameter("ApiId", apiId);
+}
+

+ 72 - 0
iot/src/model/AddDataForApiSourceResult.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/AddDataForApiSourceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+AddDataForApiSourceResult::AddDataForApiSourceResult() :
+	ServiceResult()
+{}
+
+AddDataForApiSourceResult::AddDataForApiSourceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+AddDataForApiSourceResult::~AddDataForApiSourceResult()
+{}
+
+void AddDataForApiSourceResult::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["Data"].isNull())
+		data_ = std::stol(value["Data"].asString());
+
+}
+
+long AddDataForApiSourceResult::getData()const
+{
+	return data_;
+}
+
+std::string AddDataForApiSourceResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string AddDataForApiSourceResult::getCode()const
+{
+	return code_;
+}
+
+bool AddDataForApiSourceResult::getSuccess()const
+{
+	return success_;
+}
+

+ 84 - 0
iot/src/model/BatchAddDataForApiSourceRequest.cc

@@ -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.
+ */
+
+#include <alibabacloud/iot/model/BatchAddDataForApiSourceRequest.h>
+
+using AlibabaCloud::Iot::Model::BatchAddDataForApiSourceRequest;
+
+BatchAddDataForApiSourceRequest::BatchAddDataForApiSourceRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "BatchAddDataForApiSource")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+BatchAddDataForApiSourceRequest::~BatchAddDataForApiSourceRequest()
+{}
+
+std::string BatchAddDataForApiSourceRequest::getContentList()const
+{
+	return contentList_;
+}
+
+void BatchAddDataForApiSourceRequest::setContentList(const std::string& contentList)
+{
+	contentList_ = contentList;
+	setParameter("ContentList", contentList);
+}
+
+std::string BatchAddDataForApiSourceRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void BatchAddDataForApiSourceRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string BatchAddDataForApiSourceRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void BatchAddDataForApiSourceRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string BatchAddDataForApiSourceRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void BatchAddDataForApiSourceRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string BatchAddDataForApiSourceRequest::getApiId()const
+{
+	return apiId_;
+}
+
+void BatchAddDataForApiSourceRequest::setApiId(const std::string& apiId)
+{
+	apiId_ = apiId;
+	setParameter("ApiId", apiId);
+}
+

+ 72 - 0
iot/src/model/BatchAddDataForApiSourceResult.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/BatchAddDataForApiSourceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+BatchAddDataForApiSourceResult::BatchAddDataForApiSourceResult() :
+	ServiceResult()
+{}
+
+BatchAddDataForApiSourceResult::BatchAddDataForApiSourceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+BatchAddDataForApiSourceResult::~BatchAddDataForApiSourceResult()
+{}
+
+void BatchAddDataForApiSourceResult::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["Data"].isNull())
+		data_ = value["Data"].asString();
+
+}
+
+std::string BatchAddDataForApiSourceResult::getData()const
+{
+	return data_;
+}
+
+std::string BatchAddDataForApiSourceResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string BatchAddDataForApiSourceResult::getCode()const
+{
+	return code_;
+}
+
+bool BatchAddDataForApiSourceResult::getSuccess()const
+{
+	return success_;
+}
+

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

@@ -61,6 +61,8 @@ void BatchGetEdgeDriverResult::parse(const std::string &payload)
 			driverListObject.gmtCreateTimestamp = std::stol(valueDriverListDriver["GmtCreateTimestamp"].asString());
 		if(!valueDriverListDriver["GmtModifiedTimestamp"].isNull())
 			driverListObject.gmtModifiedTimestamp = std::stol(valueDriverListDriver["GmtModifiedTimestamp"].asString());
+		if(!valueDriverListDriver["UseOfficialConfig"].isNull())
+			driverListObject.useOfficialConfig = std::stoi(valueDriverListDriver["UseOfficialConfig"].asString());
 		driverList_.push_back(driverListObject);
 	}
 	if(!value["Success"].isNull())

+ 73 - 0
iot/src/model/CloseDeviceTunnelRequest.cc

@@ -0,0 +1,73 @@
+/*
+ * 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/CloseDeviceTunnelRequest.h>
+
+using AlibabaCloud::Iot::Model::CloseDeviceTunnelRequest;
+
+CloseDeviceTunnelRequest::CloseDeviceTunnelRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "CloseDeviceTunnel")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CloseDeviceTunnelRequest::~CloseDeviceTunnelRequest()
+{}
+
+std::string CloseDeviceTunnelRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void CloseDeviceTunnelRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string CloseDeviceTunnelRequest::getTunnelId()const
+{
+	return tunnelId_;
+}
+
+void CloseDeviceTunnelRequest::setTunnelId(const std::string& tunnelId)
+{
+	tunnelId_ = tunnelId;
+	setParameter("TunnelId", tunnelId);
+}
+
+std::string CloseDeviceTunnelRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void CloseDeviceTunnelRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string CloseDeviceTunnelRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void CloseDeviceTunnelRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

+ 65 - 0
iot/src/model/CloseDeviceTunnelResult.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/CloseDeviceTunnelResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+CloseDeviceTunnelResult::CloseDeviceTunnelResult() :
+	ServiceResult()
+{}
+
+CloseDeviceTunnelResult::CloseDeviceTunnelResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CloseDeviceTunnelResult::~CloseDeviceTunnelResult()
+{}
+
+void CloseDeviceTunnelResult::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 CloseDeviceTunnelResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string CloseDeviceTunnelResult::getCode()const
+{
+	return code_;
+}
+
+bool CloseDeviceTunnelResult::getSuccess()const
+{
+	return success_;
+}
+

+ 95 - 0
iot/src/model/CreateDeviceDynamicGroupRequest.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/CreateDeviceDynamicGroupRequest.h>
+
+using AlibabaCloud::Iot::Model::CreateDeviceDynamicGroupRequest;
+
+CreateDeviceDynamicGroupRequest::CreateDeviceDynamicGroupRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "CreateDeviceDynamicGroup")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CreateDeviceDynamicGroupRequest::~CreateDeviceDynamicGroupRequest()
+{}
+
+std::string CreateDeviceDynamicGroupRequest::getDynamicGroupExpression()const
+{
+	return dynamicGroupExpression_;
+}
+
+void CreateDeviceDynamicGroupRequest::setDynamicGroupExpression(const std::string& dynamicGroupExpression)
+{
+	dynamicGroupExpression_ = dynamicGroupExpression;
+	setParameter("DynamicGroupExpression", dynamicGroupExpression);
+}
+
+std::string CreateDeviceDynamicGroupRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void CreateDeviceDynamicGroupRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string CreateDeviceDynamicGroupRequest::getGroupName()const
+{
+	return groupName_;
+}
+
+void CreateDeviceDynamicGroupRequest::setGroupName(const std::string& groupName)
+{
+	groupName_ = groupName;
+	setParameter("GroupName", groupName);
+}
+
+std::string CreateDeviceDynamicGroupRequest::getGroupDesc()const
+{
+	return groupDesc_;
+}
+
+void CreateDeviceDynamicGroupRequest::setGroupDesc(const std::string& groupDesc)
+{
+	groupDesc_ = groupDesc;
+	setParameter("GroupDesc", groupDesc);
+}
+
+std::string CreateDeviceDynamicGroupRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void CreateDeviceDynamicGroupRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string CreateDeviceDynamicGroupRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void CreateDeviceDynamicGroupRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

+ 81 - 0
iot/src/model/CreateDeviceDynamicGroupResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/iot/model/CreateDeviceDynamicGroupResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+CreateDeviceDynamicGroupResult::CreateDeviceDynamicGroupResult() :
+	ServiceResult()
+{}
+
+CreateDeviceDynamicGroupResult::CreateDeviceDynamicGroupResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateDeviceDynamicGroupResult::~CreateDeviceDynamicGroupResult()
+{}
+
+void CreateDeviceDynamicGroupResult::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["GroupId"].isNull())
+		data_.groupId = dataNode["GroupId"].asString();
+	if(!dataNode["UtcCreate"].isNull())
+		data_.utcCreate = dataNode["UtcCreate"].asString();
+	if(!dataNode["GroupName"].isNull())
+		data_.groupName = dataNode["GroupName"].asString();
+	if(!dataNode["GroupDesc"].isNull())
+		data_.groupDesc = dataNode["GroupDesc"].asString();
+	if(!dataNode["DynamicGroupExpression"].isNull())
+		data_.dynamicGroupExpression = dataNode["DynamicGroupExpression"].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();
+
+}
+
+CreateDeviceDynamicGroupResult::Data CreateDeviceDynamicGroupResult::getData()const
+{
+	return data_;
+}
+
+std::string CreateDeviceDynamicGroupResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string CreateDeviceDynamicGroupResult::getCode()const
+{
+	return code_;
+}
+
+bool CreateDeviceDynamicGroupResult::getSuccess()const
+{
+	return success_;
+}
+

+ 117 - 0
iot/src/model/CreateDeviceTunnelRequest.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/CreateDeviceTunnelRequest.h>
+
+using AlibabaCloud::Iot::Model::CreateDeviceTunnelRequest;
+
+CreateDeviceTunnelRequest::CreateDeviceTunnelRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "CreateDeviceTunnel")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CreateDeviceTunnelRequest::~CreateDeviceTunnelRequest()
+{}
+
+std::string CreateDeviceTunnelRequest::getDescription()const
+{
+	return description_;
+}
+
+void CreateDeviceTunnelRequest::setDescription(const std::string& description)
+{
+	description_ = description;
+	setParameter("Description", description);
+}
+
+std::string CreateDeviceTunnelRequest::getIotId()const
+{
+	return iotId_;
+}
+
+void CreateDeviceTunnelRequest::setIotId(const std::string& iotId)
+{
+	iotId_ = iotId;
+	setParameter("IotId", iotId);
+}
+
+std::string CreateDeviceTunnelRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void CreateDeviceTunnelRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string CreateDeviceTunnelRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void CreateDeviceTunnelRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string CreateDeviceTunnelRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void CreateDeviceTunnelRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string CreateDeviceTunnelRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void CreateDeviceTunnelRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string CreateDeviceTunnelRequest::getDeviceName()const
+{
+	return deviceName_;
+}
+
+void CreateDeviceTunnelRequest::setDeviceName(const std::string& deviceName)
+{
+	deviceName_ = deviceName;
+	setParameter("DeviceName", deviceName);
+}
+
+std::string CreateDeviceTunnelRequest::getUdi()const
+{
+	return udi_;
+}
+
+void CreateDeviceTunnelRequest::setUdi(const std::string& udi)
+{
+	udi_ = udi;
+	setParameter("Udi", udi);
+}
+

+ 77 - 0
iot/src/model/CreateDeviceTunnelResult.cc

@@ -0,0 +1,77 @@
+/*
+ * 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/CreateDeviceTunnelResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+CreateDeviceTunnelResult::CreateDeviceTunnelResult() :
+	ServiceResult()
+{}
+
+CreateDeviceTunnelResult::CreateDeviceTunnelResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateDeviceTunnelResult::~CreateDeviceTunnelResult()
+{}
+
+void CreateDeviceTunnelResult::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["TunnelId"].isNull())
+		data_.tunnelId = dataNode["TunnelId"].asString();
+	if(!dataNode["SourceAccessToken"].isNull())
+		data_.sourceAccessToken = dataNode["SourceAccessToken"].asString();
+	if(!dataNode["SourceURI"].isNull())
+		data_.sourceURI = dataNode["SourceURI"].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();
+
+}
+
+CreateDeviceTunnelResult::Data CreateDeviceTunnelResult::getData()const
+{
+	return data_;
+}
+
+std::string CreateDeviceTunnelResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string CreateDeviceTunnelResult::getCode()const
+{
+	return code_;
+}
+
+bool CreateDeviceTunnelResult::getSuccess()const
+{
+	return success_;
+}
+

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

@@ -93,6 +93,17 @@ void CreateEdgeDriverRequest::setRuntime(const std::string& runtime)
 	setParameter("Runtime", runtime);
 }
 
+int CreateEdgeDriverRequest::getUseOfficialConfig()const
+{
+	return useOfficialConfig_;
+}
+
+void CreateEdgeDriverRequest::setUseOfficialConfig(int useOfficialConfig)
+{
+	useOfficialConfig_ = useOfficialConfig;
+	setParameter("UseOfficialConfig", std::to_string(useOfficialConfig));
+}
+
 std::string CreateEdgeDriverRequest::getApiProduct()const
 {
 	return apiProduct_;

+ 33 - 0
iot/src/model/CreateOTADynamicUpgradeJobRequest.cc

@@ -82,6 +82,17 @@ void CreateOTADynamicUpgradeJobRequest::setAccessKeyId(const std::string& access
 	setParameter("AccessKeyId", accessKeyId);
 }
 
+std::string CreateOTADynamicUpgradeJobRequest::getGroupType()const
+{
+	return groupType_;
+}
+
+void CreateOTADynamicUpgradeJobRequest::setGroupType(const std::string& groupType)
+{
+	groupType_ = groupType;
+	setParameter("GroupType", groupType);
+}
+
 bool CreateOTADynamicUpgradeJobRequest::getNeedPush()const
 {
 	return needPush_;
@@ -104,6 +115,17 @@ void CreateOTADynamicUpgradeJobRequest::setIotInstanceId(const std::string& iotI
 	setParameter("IotInstanceId", iotInstanceId);
 }
 
+std::string CreateOTADynamicUpgradeJobRequest::getDownloadProtocol()const
+{
+	return downloadProtocol_;
+}
+
+void CreateOTADynamicUpgradeJobRequest::setDownloadProtocol(const std::string& downloadProtocol)
+{
+	downloadProtocol_ = downloadProtocol;
+	setParameter("DownloadProtocol", downloadProtocol);
+}
+
 std::vector<CreateOTADynamicUpgradeJobRequest::Tag> CreateOTADynamicUpgradeJobRequest::getTag()const
 {
 	return tag_;
@@ -120,6 +142,17 @@ void CreateOTADynamicUpgradeJobRequest::setTag(const std::vector<Tag>& tag)
 	}
 }
 
+std::string CreateOTADynamicUpgradeJobRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void CreateOTADynamicUpgradeJobRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
 std::string CreateOTADynamicUpgradeJobRequest::getFirmwareId()const
 {
 	return firmwareId_;

+ 33 - 0
iot/src/model/CreateOTAStaticUpgradeJobRequest.cc

@@ -71,6 +71,17 @@ void CreateOTAStaticUpgradeJobRequest::setAccessKeyId(const std::string& accessK
 	setParameter("AccessKeyId", accessKeyId);
 }
 
+std::string CreateOTAStaticUpgradeJobRequest::getGroupType()const
+{
+	return groupType_;
+}
+
+void CreateOTAStaticUpgradeJobRequest::setGroupType(const std::string& groupType)
+{
+	groupType_ = groupType;
+	setParameter("GroupType", groupType);
+}
+
 bool CreateOTAStaticUpgradeJobRequest::getNeedPush()const
 {
 	return needPush_;
@@ -93,6 +104,17 @@ void CreateOTAStaticUpgradeJobRequest::setIotInstanceId(const std::string& iotIn
 	setParameter("IotInstanceId", iotInstanceId);
 }
 
+std::string CreateOTAStaticUpgradeJobRequest::getDownloadProtocol()const
+{
+	return downloadProtocol_;
+}
+
+void CreateOTAStaticUpgradeJobRequest::setDownloadProtocol(const std::string& downloadProtocol)
+{
+	downloadProtocol_ = downloadProtocol;
+	setParameter("DownloadProtocol", downloadProtocol);
+}
+
 std::string CreateOTAStaticUpgradeJobRequest::getTargetSelection()const
 {
 	return targetSelection_;
@@ -153,6 +175,17 @@ void CreateOTAStaticUpgradeJobRequest::setDnListFileUrl(const std::string& dnLis
 	setParameter("DnListFileUrl", dnListFileUrl);
 }
 
+std::string CreateOTAStaticUpgradeJobRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void CreateOTAStaticUpgradeJobRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
 std::string CreateOTAStaticUpgradeJobRequest::getFirmwareId()const
 {
 	return firmwareId_;

+ 73 - 0
iot/src/model/DeleteDeviceDynamicGroupRequest.cc

@@ -0,0 +1,73 @@
+/*
+ * 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/DeleteDeviceDynamicGroupRequest.h>
+
+using AlibabaCloud::Iot::Model::DeleteDeviceDynamicGroupRequest;
+
+DeleteDeviceDynamicGroupRequest::DeleteDeviceDynamicGroupRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "DeleteDeviceDynamicGroup")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DeleteDeviceDynamicGroupRequest::~DeleteDeviceDynamicGroupRequest()
+{}
+
+std::string DeleteDeviceDynamicGroupRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void DeleteDeviceDynamicGroupRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string DeleteDeviceDynamicGroupRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void DeleteDeviceDynamicGroupRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+std::string DeleteDeviceDynamicGroupRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void DeleteDeviceDynamicGroupRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string DeleteDeviceDynamicGroupRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void DeleteDeviceDynamicGroupRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

+ 65 - 0
iot/src/model/DeleteDeviceDynamicGroupResult.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/DeleteDeviceDynamicGroupResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+DeleteDeviceDynamicGroupResult::DeleteDeviceDynamicGroupResult() :
+	ServiceResult()
+{}
+
+DeleteDeviceDynamicGroupResult::DeleteDeviceDynamicGroupResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteDeviceDynamicGroupResult::~DeleteDeviceDynamicGroupResult()
+{}
+
+void DeleteDeviceDynamicGroupResult::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 DeleteDeviceDynamicGroupResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string DeleteDeviceDynamicGroupResult::getCode()const
+{
+	return code_;
+}
+
+bool DeleteDeviceDynamicGroupResult::getSuccess()const
+{
+	return success_;
+}
+

+ 73 - 0
iot/src/model/DeleteDeviceTunnelRequest.cc

@@ -0,0 +1,73 @@
+/*
+ * 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/DeleteDeviceTunnelRequest.h>
+
+using AlibabaCloud::Iot::Model::DeleteDeviceTunnelRequest;
+
+DeleteDeviceTunnelRequest::DeleteDeviceTunnelRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "DeleteDeviceTunnel")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DeleteDeviceTunnelRequest::~DeleteDeviceTunnelRequest()
+{}
+
+std::string DeleteDeviceTunnelRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void DeleteDeviceTunnelRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string DeleteDeviceTunnelRequest::getTunnelId()const
+{
+	return tunnelId_;
+}
+
+void DeleteDeviceTunnelRequest::setTunnelId(const std::string& tunnelId)
+{
+	tunnelId_ = tunnelId;
+	setParameter("TunnelId", tunnelId);
+}
+
+std::string DeleteDeviceTunnelRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void DeleteDeviceTunnelRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string DeleteDeviceTunnelRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void DeleteDeviceTunnelRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

+ 65 - 0
iot/src/model/DeleteDeviceTunnelResult.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/DeleteDeviceTunnelResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+DeleteDeviceTunnelResult::DeleteDeviceTunnelResult() :
+	ServiceResult()
+{}
+
+DeleteDeviceTunnelResult::DeleteDeviceTunnelResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteDeviceTunnelResult::~DeleteDeviceTunnelResult()
+{}
+
+void DeleteDeviceTunnelResult::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 DeleteDeviceTunnelResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string DeleteDeviceTunnelResult::getCode()const
+{
+	return code_;
+}
+
+bool DeleteDeviceTunnelResult::getSuccess()const
+{
+	return success_;
+}
+

+ 117 - 0
iot/src/model/ListSourceReplicaRequest.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/ListSourceReplicaRequest.h>
+
+using AlibabaCloud::Iot::Model::ListSourceReplicaRequest;
+
+ListSourceReplicaRequest::ListSourceReplicaRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "ListSourceReplica")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+ListSourceReplicaRequest::~ListSourceReplicaRequest()
+{}
+
+std::string ListSourceReplicaRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void ListSourceReplicaRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setBodyParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string ListSourceReplicaRequest::getContext()const
+{
+	return context_;
+}
+
+void ListSourceReplicaRequest::setContext(const std::string& context)
+{
+	context_ = context;
+	setBodyParameter("Context", context);
+}
+
+int ListSourceReplicaRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void ListSourceReplicaRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+std::string ListSourceReplicaRequest::getSourceType()const
+{
+	return sourceType_;
+}
+
+void ListSourceReplicaRequest::setSourceType(const std::string& sourceType)
+{
+	sourceType_ = sourceType;
+	setParameter("SourceType", sourceType);
+}
+
+int ListSourceReplicaRequest::getPageNo()const
+{
+	return pageNo_;
+}
+
+void ListSourceReplicaRequest::setPageNo(int pageNo)
+{
+	pageNo_ = pageNo;
+	setParameter("PageNo", std::to_string(pageNo));
+}
+
+std::string ListSourceReplicaRequest::getLpInstanceId()const
+{
+	return lpInstanceId_;
+}
+
+void ListSourceReplicaRequest::setLpInstanceId(const std::string& lpInstanceId)
+{
+	lpInstanceId_ = lpInstanceId;
+	setParameter("LpInstanceId", lpInstanceId);
+}
+
+std::string ListSourceReplicaRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void ListSourceReplicaRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string ListSourceReplicaRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void ListSourceReplicaRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

+ 125 - 0
iot/src/model/ListSourceReplicaResult.cc

@@ -0,0 +1,125 @@
+/*
+ * 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/ListSourceReplicaResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+ListSourceReplicaResult::ListSourceReplicaResult() :
+	ServiceResult()
+{}
+
+ListSourceReplicaResult::ListSourceReplicaResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListSourceReplicaResult::~ListSourceReplicaResult()
+{}
+
+void ListSourceReplicaResult::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::stol(dataNode["Total"].asString());
+	if(!dataNode["TotalPage"].isNull())
+		data_.totalPage = std::stol(dataNode["TotalPage"].asString());
+	if(!dataNode["PageSize"].isNull())
+		data_.pageSize = std::stoi(dataNode["PageSize"].asString());
+	if(!dataNode["PageNo"].isNull())
+		data_.pageNo = std::stoi(dataNode["PageNo"].asString());
+	auto allDataListNode = dataNode["DataList"]["DataListItem"];
+	for (auto dataNodeDataListDataListItem : allDataListNode)
+	{
+		Data::DataListItem dataListItemObject;
+		if(!dataNodeDataListDataListItem["ReplicaUid"].isNull())
+			dataListItemObject.replicaUid = dataNodeDataListDataListItem["ReplicaUid"].asString();
+		if(!dataNodeDataListDataListItem["Name"].isNull())
+			dataListItemObject.name = dataNodeDataListDataListItem["Name"].asString();
+		if(!dataNodeDataListDataListItem["Code"].isNull())
+			dataListItemObject.code = dataNodeDataListDataListItem["Code"].asString();
+		if(!dataNodeDataListDataListItem["SourceUid"].isNull())
+			dataListItemObject.sourceUid = dataNodeDataListDataListItem["SourceUid"].asString();
+		if(!dataNodeDataListDataListItem["TableUid"].isNull())
+			dataListItemObject.tableUid = dataNodeDataListDataListItem["TableUid"].asString();
+		if(!dataNodeDataListDataListItem["SourceType"].isNull())
+			dataListItemObject.sourceType = dataNodeDataListDataListItem["SourceType"].asString();
+		if(!dataNodeDataListDataListItem["TimeCycle"].isNull())
+			dataListItemObject.timeCycle = std::stoi(dataNodeDataListDataListItem["TimeCycle"].asString());
+		if(!dataNodeDataListDataListItem["TimeUnit"].isNull())
+			dataListItemObject.timeUnit = dataNodeDataListDataListItem["TimeUnit"].asString();
+		if(!dataNodeDataListDataListItem["Region"].isNull())
+			dataListItemObject.region = std::stoi(dataNodeDataListDataListItem["Region"].asString());
+		if(!dataNodeDataListDataListItem["BeginLatest"].isNull())
+			dataListItemObject.beginLatest = std::stol(dataNodeDataListDataListItem["BeginLatest"].asString());
+		if(!dataNodeDataListDataListItem["EndLatest"].isNull())
+			dataListItemObject.endLatest = std::stol(dataNodeDataListDataListItem["EndLatest"].asString());
+		if(!dataNodeDataListDataListItem["ExtraProperty"].isNull())
+			dataListItemObject.extraProperty = dataNodeDataListDataListItem["ExtraProperty"].asString();
+		if(!dataNodeDataListDataListItem["Status"].isNull())
+			dataListItemObject.status = std::stoi(dataNodeDataListDataListItem["Status"].asString());
+		if(!dataNodeDataListDataListItem["StorageSize"].isNull())
+			dataListItemObject.storageSize = std::stol(dataNodeDataListDataListItem["StorageSize"].asString());
+		if(!dataNodeDataListDataListItem["ProductCreateTime"].isNull())
+			dataListItemObject.productCreateTime = std::stol(dataNodeDataListDataListItem["ProductCreateTime"].asString());
+		if(!dataNodeDataListDataListItem["NodeType"].isNull())
+			dataListItemObject.nodeType = std::stoi(dataNodeDataListDataListItem["NodeType"].asString());
+		if(!dataNodeDataListDataListItem["NeedTips"].isNull())
+			dataListItemObject.needTips = dataNodeDataListDataListItem["NeedTips"].asString() == "true";
+		if(!dataNodeDataListDataListItem["LongJobUid"].isNull())
+			dataListItemObject.longJobUid = dataNodeDataListDataListItem["LongJobUid"].asString();
+		if(!dataNodeDataListDataListItem["Desc"].isNull())
+			dataListItemObject.desc = dataNodeDataListDataListItem["Desc"].asString();
+		if(!dataNodeDataListDataListItem["GmtCreate"].isNull())
+			dataListItemObject.gmtCreate = std::stol(dataNodeDataListDataListItem["GmtCreate"].asString());
+		data_.dataList.push_back(dataListItemObject);
+	}
+	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();
+
+}
+
+ListSourceReplicaResult::Data ListSourceReplicaResult::getData()const
+{
+	return data_;
+}
+
+std::string ListSourceReplicaResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string ListSourceReplicaResult::getCode()const
+{
+	return code_;
+}
+
+bool ListSourceReplicaResult::getSuccess()const
+{
+	return success_;
+}
+

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

@@ -51,6 +51,8 @@ void QueryDeviceGroupByDeviceResult::parse(const std::string &payload)
 			groupInfosObject.utcCreate = valueGroupInfosGroupInfo["UtcCreate"].asString();
 		if(!valueGroupInfosGroupInfo["GroupDesc"].isNull())
 			groupInfosObject.groupDesc = valueGroupInfosGroupInfo["GroupDesc"].asString();
+		if(!valueGroupInfosGroupInfo["GroupType"].isNull())
+			groupInfosObject.groupType = valueGroupInfosGroupInfo["GroupType"].asString();
 		groupInfos_.push_back(groupInfosObject);
 	}
 	if(!value["Success"].isNull())

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

@@ -60,6 +60,17 @@ void QueryDeviceGroupInfoRequest::setRealTripartiteKey(const std::string& realTr
 	setParameter("RealTripartiteKey", realTripartiteKey);
 }
 
+std::string QueryDeviceGroupInfoRequest::getGroupType()const
+{
+	return groupType_;
+}
+
+void QueryDeviceGroupInfoRequest::setGroupType(const std::string& groupType)
+{
+	groupType_ = groupType;
+	setParameter("GroupType", groupType);
+}
+
 std::string QueryDeviceGroupInfoRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;

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

@@ -54,6 +54,8 @@ void QueryDeviceGroupInfoResult::parse(const std::string &payload)
 		data_.deviceActive = std::stoi(dataNode["DeviceActive"].asString());
 	if(!dataNode["DeviceOnline"].isNull())
 		data_.deviceOnline = std::stoi(dataNode["DeviceOnline"].asString());
+	if(!dataNode["DynamicGroupExpression"].isNull())
+		data_.dynamicGroupExpression = dataNode["DynamicGroupExpression"].asString();
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())

+ 13 - 0
iot/src/model/QueryDeviceGroupListRequest.cc

@@ -27,6 +27,19 @@ QueryDeviceGroupListRequest::QueryDeviceGroupListRequest() :
 QueryDeviceGroupListRequest::~QueryDeviceGroupListRequest()
 {}
 
+std::vector<std::string> QueryDeviceGroupListRequest::getGroupTypes()const
+{
+	return groupTypes_;
+}
+
+void QueryDeviceGroupListRequest::setGroupTypes(const std::vector<std::string>& groupTypes)
+{
+	groupTypes_ = groupTypes;
+	for(int dep1 = 0; dep1!= groupTypes.size(); dep1++) {
+		setParameter("GroupTypes."+ std::to_string(dep1), groupTypes.at(dep1));
+	}
+}
+
 std::string QueryDeviceGroupListRequest::getSuperGroupId()const
 {
 	return superGroupId_;

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

@@ -51,6 +51,8 @@ void QueryDeviceGroupListResult::parse(const std::string &payload)
 			dataObject.groupName = valueDataGroupInfo["GroupName"].asString();
 		if(!valueDataGroupInfo["GroupDesc"].isNull())
 			dataObject.groupDesc = valueDataGroupInfo["GroupDesc"].asString();
+		if(!valueDataGroupInfo["GroupType"].isNull())
+			dataObject.groupType = valueDataGroupInfo["GroupType"].asString();
 		data_.push_back(dataObject);
 	}
 	if(!value["Success"].isNull())

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

@@ -38,6 +38,17 @@ void QueryDeviceGroupTagListRequest::setAccessKeyId(const std::string& accessKey
 	setParameter("AccessKeyId", accessKeyId);
 }
 
+std::string QueryDeviceGroupTagListRequest::getGroupType()const
+{
+	return groupType_;
+}
+
+void QueryDeviceGroupTagListRequest::setGroupType(const std::string& groupType)
+{
+	groupType_ = groupType;
+	setParameter("GroupType", groupType);
+}
+
 std::string QueryDeviceGroupTagListRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;

+ 73 - 0
iot/src/model/QueryDeviceTunnelRequest.cc

@@ -0,0 +1,73 @@
+/*
+ * 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/QueryDeviceTunnelRequest.h>
+
+using AlibabaCloud::Iot::Model::QueryDeviceTunnelRequest;
+
+QueryDeviceTunnelRequest::QueryDeviceTunnelRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "QueryDeviceTunnel")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+QueryDeviceTunnelRequest::~QueryDeviceTunnelRequest()
+{}
+
+std::string QueryDeviceTunnelRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void QueryDeviceTunnelRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string QueryDeviceTunnelRequest::getTunnelId()const
+{
+	return tunnelId_;
+}
+
+void QueryDeviceTunnelRequest::setTunnelId(const std::string& tunnelId)
+{
+	tunnelId_ = tunnelId;
+	setParameter("TunnelId", tunnelId);
+}
+
+std::string QueryDeviceTunnelRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void QueryDeviceTunnelRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string QueryDeviceTunnelRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void QueryDeviceTunnelRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

+ 95 - 0
iot/src/model/QueryDeviceTunnelResult.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/QueryDeviceTunnelResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+QueryDeviceTunnelResult::QueryDeviceTunnelResult() :
+	ServiceResult()
+{}
+
+QueryDeviceTunnelResult::QueryDeviceTunnelResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryDeviceTunnelResult::~QueryDeviceTunnelResult()
+{}
+
+void QueryDeviceTunnelResult::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["TunnelId"].isNull())
+		data_.tunnelId = dataNode["TunnelId"].asString();
+	if(!dataNode["TunnelState"].isNull())
+		data_.tunnelState = dataNode["TunnelState"].asString();
+	if(!dataNode["ProductKey"].isNull())
+		data_.productKey = dataNode["ProductKey"].asString();
+	if(!dataNode["DeviceName"].isNull())
+		data_.deviceName = dataNode["DeviceName"].asString();
+	if(!dataNode["IotId"].isNull())
+		data_.iotId = dataNode["IotId"].asString();
+	if(!dataNode["DeviceConnState"].isNull())
+		data_.deviceConnState = dataNode["DeviceConnState"].asString();
+	if(!dataNode["SourceConnState"].isNull())
+		data_.sourceConnState = dataNode["SourceConnState"].asString();
+	if(!dataNode["Udi"].isNull())
+		data_.udi = dataNode["Udi"].asString();
+	if(!dataNode["Description"].isNull())
+		data_.description = dataNode["Description"].asString();
+	if(!dataNode["UtcCreated"].isNull())
+		data_.utcCreated = dataNode["UtcCreated"].asString();
+	if(!dataNode["UtcClosed"].isNull())
+		data_.utcClosed = dataNode["UtcClosed"].asString();
+	if(!dataNode["ProductName"].isNull())
+		data_.productName = dataNode["ProductName"].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();
+
+}
+
+QueryDeviceTunnelResult::Data QueryDeviceTunnelResult::getData()const
+{
+	return data_;
+}
+
+std::string QueryDeviceTunnelResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string QueryDeviceTunnelResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryDeviceTunnelResult::getSuccess()const
+{
+	return success_;
+}
+

+ 150 - 0
iot/src/model/QueryDynamicGroupDevicesRequest.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/QueryDynamicGroupDevicesRequest.h>
+
+using AlibabaCloud::Iot::Model::QueryDynamicGroupDevicesRequest;
+
+QueryDynamicGroupDevicesRequest::QueryDynamicGroupDevicesRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "QueryDynamicGroupDevices")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+QueryDynamicGroupDevicesRequest::~QueryDynamicGroupDevicesRequest()
+{}
+
+std::string QueryDynamicGroupDevicesRequest::getNextToken()const
+{
+	return nextToken_;
+}
+
+void QueryDynamicGroupDevicesRequest::setNextToken(const std::string& nextToken)
+{
+	nextToken_ = nextToken;
+	setParameter("NextToken", nextToken);
+}
+
+std::string QueryDynamicGroupDevicesRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void QueryDynamicGroupDevicesRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+int QueryDynamicGroupDevicesRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void QueryDynamicGroupDevicesRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+bool QueryDynamicGroupDevicesRequest::getFuzzyName()const
+{
+	return fuzzyName_;
+}
+
+void QueryDynamicGroupDevicesRequest::setFuzzyName(bool fuzzyName)
+{
+	fuzzyName_ = fuzzyName;
+	setParameter("FuzzyName", fuzzyName ? "true" : "false");
+}
+
+std::string QueryDynamicGroupDevicesRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void QueryDynamicGroupDevicesRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+int QueryDynamicGroupDevicesRequest::getCurrentPage()const
+{
+	return currentPage_;
+}
+
+void QueryDynamicGroupDevicesRequest::setCurrentPage(int currentPage)
+{
+	currentPage_ = currentPage;
+	setParameter("CurrentPage", std::to_string(currentPage));
+}
+
+std::string QueryDynamicGroupDevicesRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void QueryDynamicGroupDevicesRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string QueryDynamicGroupDevicesRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void QueryDynamicGroupDevicesRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string QueryDynamicGroupDevicesRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void QueryDynamicGroupDevicesRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string QueryDynamicGroupDevicesRequest::getDeviceName()const
+{
+	return deviceName_;
+}
+
+void QueryDynamicGroupDevicesRequest::setDeviceName(const std::string& deviceName)
+{
+	deviceName_ = deviceName;
+	setParameter("DeviceName", deviceName);
+}
+
+std::string QueryDynamicGroupDevicesRequest::getStatus()const
+{
+	return status_;
+}
+
+void QueryDynamicGroupDevicesRequest::setStatus(const std::string& status)
+{
+	status_ = status;
+	setParameter("Status", status);
+}
+

+ 135 - 0
iot/src/model/QueryDynamicGroupDevicesResult.cc

@@ -0,0 +1,135 @@
+/*
+ * 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/QueryDynamicGroupDevicesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+QueryDynamicGroupDevicesResult::QueryDynamicGroupDevicesResult() :
+	ServiceResult()
+{}
+
+QueryDynamicGroupDevicesResult::QueryDynamicGroupDevicesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryDynamicGroupDevicesResult::~QueryDynamicGroupDevicesResult()
+{}
+
+void QueryDynamicGroupDevicesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allDataNode = value["Data"]["SimpleDeviceInfo"];
+	for (auto valueDataSimpleDeviceInfo : allDataNode)
+	{
+		SimpleDeviceInfo dataObject;
+		if(!valueDataSimpleDeviceInfo["ProductName"].isNull())
+			dataObject.productName = valueDataSimpleDeviceInfo["ProductName"].asString();
+		if(!valueDataSimpleDeviceInfo["ProductKey"].isNull())
+			dataObject.productKey = valueDataSimpleDeviceInfo["ProductKey"].asString();
+		if(!valueDataSimpleDeviceInfo["DeviceName"].isNull())
+			dataObject.deviceName = valueDataSimpleDeviceInfo["DeviceName"].asString();
+		if(!valueDataSimpleDeviceInfo["CategoryKey"].isNull())
+			dataObject.categoryKey = valueDataSimpleDeviceInfo["CategoryKey"].asString();
+		if(!valueDataSimpleDeviceInfo["NodeType"].isNull())
+			dataObject.nodeType = std::stoi(valueDataSimpleDeviceInfo["NodeType"].asString());
+		if(!valueDataSimpleDeviceInfo["Status"].isNull())
+			dataObject.status = valueDataSimpleDeviceInfo["Status"].asString();
+		if(!valueDataSimpleDeviceInfo["IotId"].isNull())
+			dataObject.iotId = valueDataSimpleDeviceInfo["IotId"].asString();
+		if(!valueDataSimpleDeviceInfo["ActiveTime"].isNull())
+			dataObject.activeTime = valueDataSimpleDeviceInfo["ActiveTime"].asString();
+		if(!valueDataSimpleDeviceInfo["UtcActiveTime"].isNull())
+			dataObject.utcActiveTime = valueDataSimpleDeviceInfo["UtcActiveTime"].asString();
+		if(!valueDataSimpleDeviceInfo["LastOnlineTime"].isNull())
+			dataObject.lastOnlineTime = valueDataSimpleDeviceInfo["LastOnlineTime"].asString();
+		if(!valueDataSimpleDeviceInfo["UtcLastOnlineTime"].isNull())
+			dataObject.utcLastOnlineTime = valueDataSimpleDeviceInfo["UtcLastOnlineTime"].asString();
+		if(!valueDataSimpleDeviceInfo["Nickname"].isNull())
+			dataObject.nickname = valueDataSimpleDeviceInfo["Nickname"].asString();
+		data_.push_back(dataObject);
+	}
+	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["Page"].isNull())
+		page_ = std::stoi(value["Page"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["PageCount"].isNull())
+		pageCount_ = std::stoi(value["PageCount"].asString());
+	if(!value["Total"].isNull())
+		total_ = std::stoi(value["Total"].asString());
+	if(!value["NextToken"].isNull())
+		nextToken_ = value["NextToken"].asString();
+
+}
+
+int QueryDynamicGroupDevicesResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int QueryDynamicGroupDevicesResult::getPageCount()const
+{
+	return pageCount_;
+}
+
+std::string QueryDynamicGroupDevicesResult::getNextToken()const
+{
+	return nextToken_;
+}
+
+int QueryDynamicGroupDevicesResult::getTotal()const
+{
+	return total_;
+}
+
+std::vector<QueryDynamicGroupDevicesResult::SimpleDeviceInfo> QueryDynamicGroupDevicesResult::getData()const
+{
+	return data_;
+}
+
+int QueryDynamicGroupDevicesResult::getPage()const
+{
+	return page_;
+}
+
+std::string QueryDynamicGroupDevicesResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string QueryDynamicGroupDevicesResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryDynamicGroupDevicesResult::getSuccess()const
+{
+	return success_;
+}
+

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

@@ -70,6 +70,8 @@ void QueryEdgeDriverResult::parse(const std::string &payload)
 			driverObject.gmtModifiedTimestamp = std::stol(dataNodeDriverListDriver["GmtModifiedTimestamp"].asString());
 		if(!dataNodeDriverListDriver["IsApply"].isNull())
 			driverObject.isApply = dataNodeDriverListDriver["IsApply"].asString() == "true";
+		if(!dataNodeDriverListDriver["UseOfficialConfig"].isNull())
+			driverObject.useOfficialConfig = std::stoi(dataNodeDriverListDriver["UseOfficialConfig"].asString());
 		data_.driverList.push_back(driverObject);
 	}
 	if(!value["Success"].isNull())

+ 6 - 0
iot/src/model/QueryOTAJobResult.cc

@@ -90,6 +90,12 @@ void QueryOTAJobResult::parse(const std::string &payload)
 		data_.needPush = dataNode["NeedPush"].asString() == "true";
 	if(!dataNode["NeedConfirm"].isNull())
 		data_.needConfirm = dataNode["NeedConfirm"].asString() == "true";
+	if(!dataNode["GroupId"].isNull())
+		data_.groupId = dataNode["GroupId"].asString();
+	if(!dataNode["GroupName"].isNull())
+		data_.groupName = dataNode["GroupName"].asString();
+	if(!dataNode["DownloadProtocol"].isNull())
+		data_.downloadProtocol = dataNode["DownloadProtocol"].asString();
 	auto allTagsNode = dataNode["Tags"]["OtaTagDTO"];
 	for (auto dataNodeTagsOtaTagDTO : allTagsNode)
 	{

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

@@ -38,6 +38,17 @@ void SetDeviceGroupTagsRequest::setAccessKeyId(const std::string& accessKeyId)
 	setParameter("AccessKeyId", accessKeyId);
 }
 
+std::string SetDeviceGroupTagsRequest::getGroupType()const
+{
+	return groupType_;
+}
+
+void SetDeviceGroupTagsRequest::setGroupType(const std::string& groupType)
+{
+	groupType_ = groupType;
+	setParameter("GroupType", groupType);
+}
+
 std::string SetDeviceGroupTagsRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;

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

@@ -39,6 +39,9 @@ void SubscribeTopicResult::parse(const std::string &payload)
 	Json::Value value;
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
+	auto allFailureTopics = value["FailureTopics"]["topic"];
+	for (const auto &item : allFailureTopics)
+		failureTopics_.push_back(item.asString());
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())
@@ -48,6 +51,11 @@ void SubscribeTopicResult::parse(const std::string &payload)
 
 }
 
+std::vector<std::string> SubscribeTopicResult::getFailureTopics()const
+{
+	return failureTopics_;
+}
+
 std::string SubscribeTopicResult::getErrorMessage()const
 {
 	return errorMessage_;

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

@@ -38,6 +38,17 @@ void UpdateDeviceGroupRequest::setAccessKeyId(const std::string& accessKeyId)
 	setParameter("AccessKeyId", accessKeyId);
 }
 
+std::string UpdateDeviceGroupRequest::getGroupType()const
+{
+	return groupType_;
+}
+
+void UpdateDeviceGroupRequest::setGroupType(const std::string& groupType)
+{
+	groupType_ = groupType;
+	setParameter("GroupType", groupType);
+}
+
 std::string UpdateDeviceGroupRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;