Przeglądaj źródła

IOT SDK Auto Released By cheyun.lxf,Version:1.27.8

Signed-off-by: yixiong.jxy <yixiong.jxy@alibaba-inc.com>
yixiong.jxy 8 lat temu
rodzic
commit
1a86503742
45 zmienionych plików z 2786 dodań i 1 usunięć
  1. 3 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 36 0
      iot/CMakeLists.txt
  4. 72 0
      iot/include/alibabacloud/iot/IotClient.h
  5. 59 0
      iot/include/alibabacloud/iot/model/BatchAddDeviceGroupRelationsRequest.h
  6. 63 0
      iot/include/alibabacloud/iot/model/BatchAddDeviceGroupRelationsResult.h
  7. 59 0
      iot/include/alibabacloud/iot/model/BatchDeleteDeviceGroupRelationsRequest.h
  8. 61 0
      iot/include/alibabacloud/iot/model/BatchDeleteDeviceGroupRelationsResult.h
  9. 57 0
      iot/include/alibabacloud/iot/model/CreateDeviceGroupRequest.h
  10. 64 0
      iot/include/alibabacloud/iot/model/CreateDeviceGroupResult.h
  11. 51 0
      iot/include/alibabacloud/iot/model/DeleteDeviceGroupRequest.h
  12. 55 0
      iot/include/alibabacloud/iot/model/DeleteDeviceGroupResult.h
  13. 54 0
      iot/include/alibabacloud/iot/model/ForceSetDeviceGroupTagRequest.h
  14. 55 0
      iot/include/alibabacloud/iot/model/ForceSetDeviceGroupTagResult.h
  15. 1 0
      iot/include/alibabacloud/iot/model/QueryDeviceDetailResult.h
  16. 51 0
      iot/include/alibabacloud/iot/model/QueryDeviceGroupInfoRequest.h
  17. 67 0
      iot/include/alibabacloud/iot/model/QueryDeviceGroupInfoResult.h
  18. 60 0
      iot/include/alibabacloud/iot/model/QueryDeviceGroupListRequest.h
  19. 72 0
      iot/include/alibabacloud/iot/model/QueryDeviceGroupListResult.h
  20. 51 0
      iot/include/alibabacloud/iot/model/QueryDeviceGroupTagListRequest.h
  21. 62 0
      iot/include/alibabacloud/iot/model/QueryDeviceGroupTagListResult.h
  22. 2 0
      iot/include/alibabacloud/iot/model/QueryProductResult.h
  23. 54 0
      iot/include/alibabacloud/iot/model/UpdateDeviceGroupRequest.h
  24. 55 0
      iot/include/alibabacloud/iot/model/UpdateDeviceGroupResult.h
  25. 324 0
      iot/src/IotClient.cc
  26. 66 0
      iot/src/model/BatchAddDeviceGroupRelationsRequest.cc
  27. 94 0
      iot/src/model/BatchAddDeviceGroupRelationsResult.cc
  28. 66 0
      iot/src/model/BatchDeleteDeviceGroupRelationsRequest.cc
  29. 87 0
      iot/src/model/BatchDeleteDeviceGroupRelationsResult.cc
  30. 71 0
      iot/src/model/CreateDeviceGroupRequest.cc
  31. 80 0
      iot/src/model/CreateDeviceGroupResult.cc
  32. 49 0
      iot/src/model/DeleteDeviceGroupRequest.cc
  33. 66 0
      iot/src/model/DeleteDeviceGroupResult.cc
  34. 60 0
      iot/src/model/ForceSetDeviceGroupTagRequest.cc
  35. 66 0
      iot/src/model/ForceSetDeviceGroupTagResult.cc
  36. 2 0
      iot/src/model/QueryDeviceDetailResult.cc
  37. 49 0
      iot/src/model/QueryDeviceGroupInfoRequest.cc
  38. 86 0
      iot/src/model/QueryDeviceGroupInfoResult.cc
  39. 82 0
      iot/src/model/QueryDeviceGroupListRequest.cc
  40. 113 0
      iot/src/model/QueryDeviceGroupListResult.cc
  41. 49 0
      iot/src/model/QueryDeviceGroupTagListRequest.cc
  42. 81 0
      iot/src/model/QueryDeviceGroupTagListResult.cc
  43. 4 0
      iot/src/model/QueryProductResult.cc
  44. 60 0
      iot/src/model/UpdateDeviceGroupRequest.cc
  45. 66 0
      iot/src/model/UpdateDeviceGroupResult.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2018-10-13 Version: 1.27.8
+1, Add device group related APIs.
+
 2018-10-11 Version: 1.27.7
 2018-10-11 Version: 1.27.7
 1, Add a new api called DeleteMezzanines to clear mezzanine infos and storages.
 1, Add a new api called DeleteMezzanines to clear mezzanine infos and storages.
 2, Add the field called PlayConfig to GetVideoPlayAuth and GetPlayInfo api request.
 2, Add the field called PlayConfig to GetVideoPlayAuth and GetPlayInfo api request.

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.27.7
+1.27.8

+ 36 - 0
iot/CMakeLists.txt

@@ -25,12 +25,16 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/QueryAppDeviceListResult.h
 	include/alibabacloud/iot/model/QueryAppDeviceListResult.h
 	include/alibabacloud/iot/model/DeleteTopicRouteTableRequest.h
 	include/alibabacloud/iot/model/DeleteTopicRouteTableRequest.h
 	include/alibabacloud/iot/model/DeleteTopicRouteTableResult.h
 	include/alibabacloud/iot/model/DeleteTopicRouteTableResult.h
+	include/alibabacloud/iot/model/QueryDeviceGroupListRequest.h
+	include/alibabacloud/iot/model/QueryDeviceGroupListResult.h
 	include/alibabacloud/iot/model/QueryDeviceEventDataRequest.h
 	include/alibabacloud/iot/model/QueryDeviceEventDataRequest.h
 	include/alibabacloud/iot/model/QueryDeviceEventDataResult.h
 	include/alibabacloud/iot/model/QueryDeviceEventDataResult.h
 	include/alibabacloud/iot/model/GetDeviceStatusRequest.h
 	include/alibabacloud/iot/model/GetDeviceStatusRequest.h
 	include/alibabacloud/iot/model/GetDeviceStatusResult.h
 	include/alibabacloud/iot/model/GetDeviceStatusResult.h
 	include/alibabacloud/iot/model/DeleteDeviceRequest.h
 	include/alibabacloud/iot/model/DeleteDeviceRequest.h
 	include/alibabacloud/iot/model/DeleteDeviceResult.h
 	include/alibabacloud/iot/model/DeleteDeviceResult.h
+	include/alibabacloud/iot/model/CreateDeviceGroupRequest.h
+	include/alibabacloud/iot/model/CreateDeviceGroupResult.h
 	include/alibabacloud/iot/model/EnableThingRequest.h
 	include/alibabacloud/iot/model/EnableThingRequest.h
 	include/alibabacloud/iot/model/EnableThingResult.h
 	include/alibabacloud/iot/model/EnableThingResult.h
 	include/alibabacloud/iot/model/RRpcRequest.h
 	include/alibabacloud/iot/model/RRpcRequest.h
@@ -43,6 +47,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/GetThingTopoResult.h
 	include/alibabacloud/iot/model/GetThingTopoResult.h
 	include/alibabacloud/iot/model/QueryPageByApplyIdRequest.h
 	include/alibabacloud/iot/model/QueryPageByApplyIdRequest.h
 	include/alibabacloud/iot/model/QueryPageByApplyIdResult.h
 	include/alibabacloud/iot/model/QueryPageByApplyIdResult.h
+	include/alibabacloud/iot/model/ForceSetDeviceGroupTagRequest.h
+	include/alibabacloud/iot/model/ForceSetDeviceGroupTagResult.h
 	include/alibabacloud/iot/model/CreateTopicRouteTableRequest.h
 	include/alibabacloud/iot/model/CreateTopicRouteTableRequest.h
 	include/alibabacloud/iot/model/CreateTopicRouteTableResult.h
 	include/alibabacloud/iot/model/CreateTopicRouteTableResult.h
 	include/alibabacloud/iot/model/CreateProductRequest.h
 	include/alibabacloud/iot/model/CreateProductRequest.h
@@ -51,6 +57,10 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/UpdateRuleResult.h
 	include/alibabacloud/iot/model/UpdateRuleResult.h
 	include/alibabacloud/iot/model/QueryDevicePropertyDataRequest.h
 	include/alibabacloud/iot/model/QueryDevicePropertyDataRequest.h
 	include/alibabacloud/iot/model/QueryDevicePropertyDataResult.h
 	include/alibabacloud/iot/model/QueryDevicePropertyDataResult.h
+	include/alibabacloud/iot/model/UpdateDeviceGroupRequest.h
+	include/alibabacloud/iot/model/UpdateDeviceGroupResult.h
+	include/alibabacloud/iot/model/DeleteDeviceGroupRequest.h
+	include/alibabacloud/iot/model/DeleteDeviceGroupResult.h
 	include/alibabacloud/iot/model/QueryDevicePropRequest.h
 	include/alibabacloud/iot/model/QueryDevicePropRequest.h
 	include/alibabacloud/iot/model/QueryDevicePropResult.h
 	include/alibabacloud/iot/model/QueryDevicePropResult.h
 	include/alibabacloud/iot/model/DeleteDevicePropRequest.h
 	include/alibabacloud/iot/model/DeleteDevicePropRequest.h
@@ -87,6 +97,10 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/RegisterDeviceResult.h
 	include/alibabacloud/iot/model/RegisterDeviceResult.h
 	include/alibabacloud/iot/model/QueryDeviceRequest.h
 	include/alibabacloud/iot/model/QueryDeviceRequest.h
 	include/alibabacloud/iot/model/QueryDeviceResult.h
 	include/alibabacloud/iot/model/QueryDeviceResult.h
+	include/alibabacloud/iot/model/BatchDeleteDeviceGroupRelationsRequest.h
+	include/alibabacloud/iot/model/BatchDeleteDeviceGroupRelationsResult.h
+	include/alibabacloud/iot/model/QueryDeviceGroupTagListRequest.h
+	include/alibabacloud/iot/model/QueryDeviceGroupTagListResult.h
 	include/alibabacloud/iot/model/ListRuleRequest.h
 	include/alibabacloud/iot/model/ListRuleRequest.h
 	include/alibabacloud/iot/model/ListRuleResult.h
 	include/alibabacloud/iot/model/ListRuleResult.h
 	include/alibabacloud/iot/model/QueryTopicRouteTableRequest.h
 	include/alibabacloud/iot/model/QueryTopicRouteTableRequest.h
@@ -125,6 +139,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/BatchGetDeviceStateResult.h
 	include/alibabacloud/iot/model/BatchGetDeviceStateResult.h
 	include/alibabacloud/iot/model/GetRuleActionRequest.h
 	include/alibabacloud/iot/model/GetRuleActionRequest.h
 	include/alibabacloud/iot/model/GetRuleActionResult.h
 	include/alibabacloud/iot/model/GetRuleActionResult.h
+	include/alibabacloud/iot/model/BatchAddDeviceGroupRelationsRequest.h
+	include/alibabacloud/iot/model/BatchAddDeviceGroupRelationsResult.h
 	include/alibabacloud/iot/model/GetRuleRequest.h
 	include/alibabacloud/iot/model/GetRuleRequest.h
 	include/alibabacloud/iot/model/GetRuleResult.h
 	include/alibabacloud/iot/model/GetRuleResult.h
 	include/alibabacloud/iot/model/GetDeviceShadowRequest.h
 	include/alibabacloud/iot/model/GetDeviceShadowRequest.h
@@ -133,6 +149,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/GetGatewayBySubDeviceResult.h
 	include/alibabacloud/iot/model/GetGatewayBySubDeviceResult.h
 	include/alibabacloud/iot/model/CreateRuleActionRequest.h
 	include/alibabacloud/iot/model/CreateRuleActionRequest.h
 	include/alibabacloud/iot/model/CreateRuleActionResult.h
 	include/alibabacloud/iot/model/CreateRuleActionResult.h
+	include/alibabacloud/iot/model/QueryDeviceGroupInfoRequest.h
+	include/alibabacloud/iot/model/QueryDeviceGroupInfoResult.h
 	include/alibabacloud/iot/model/BatchRegisterDeviceRequest.h
 	include/alibabacloud/iot/model/BatchRegisterDeviceRequest.h
 	include/alibabacloud/iot/model/BatchRegisterDeviceResult.h
 	include/alibabacloud/iot/model/BatchRegisterDeviceResult.h
 	include/alibabacloud/iot/model/DeleteRuleActionRequest.h
 	include/alibabacloud/iot/model/DeleteRuleActionRequest.h
@@ -146,12 +164,16 @@ set(iot_src
 	src/model/QueryAppDeviceListResult.cc
 	src/model/QueryAppDeviceListResult.cc
 	src/model/DeleteTopicRouteTableRequest.cc
 	src/model/DeleteTopicRouteTableRequest.cc
 	src/model/DeleteTopicRouteTableResult.cc
 	src/model/DeleteTopicRouteTableResult.cc
+	src/model/QueryDeviceGroupListRequest.cc
+	src/model/QueryDeviceGroupListResult.cc
 	src/model/QueryDeviceEventDataRequest.cc
 	src/model/QueryDeviceEventDataRequest.cc
 	src/model/QueryDeviceEventDataResult.cc
 	src/model/QueryDeviceEventDataResult.cc
 	src/model/GetDeviceStatusRequest.cc
 	src/model/GetDeviceStatusRequest.cc
 	src/model/GetDeviceStatusResult.cc
 	src/model/GetDeviceStatusResult.cc
 	src/model/DeleteDeviceRequest.cc
 	src/model/DeleteDeviceRequest.cc
 	src/model/DeleteDeviceResult.cc
 	src/model/DeleteDeviceResult.cc
+	src/model/CreateDeviceGroupRequest.cc
+	src/model/CreateDeviceGroupResult.cc
 	src/model/EnableThingRequest.cc
 	src/model/EnableThingRequest.cc
 	src/model/EnableThingResult.cc
 	src/model/EnableThingResult.cc
 	src/model/RRpcRequest.cc
 	src/model/RRpcRequest.cc
@@ -164,6 +186,8 @@ set(iot_src
 	src/model/GetThingTopoResult.cc
 	src/model/GetThingTopoResult.cc
 	src/model/QueryPageByApplyIdRequest.cc
 	src/model/QueryPageByApplyIdRequest.cc
 	src/model/QueryPageByApplyIdResult.cc
 	src/model/QueryPageByApplyIdResult.cc
+	src/model/ForceSetDeviceGroupTagRequest.cc
+	src/model/ForceSetDeviceGroupTagResult.cc
 	src/model/CreateTopicRouteTableRequest.cc
 	src/model/CreateTopicRouteTableRequest.cc
 	src/model/CreateTopicRouteTableResult.cc
 	src/model/CreateTopicRouteTableResult.cc
 	src/model/CreateProductRequest.cc
 	src/model/CreateProductRequest.cc
@@ -172,6 +196,10 @@ set(iot_src
 	src/model/UpdateRuleResult.cc
 	src/model/UpdateRuleResult.cc
 	src/model/QueryDevicePropertyDataRequest.cc
 	src/model/QueryDevicePropertyDataRequest.cc
 	src/model/QueryDevicePropertyDataResult.cc
 	src/model/QueryDevicePropertyDataResult.cc
+	src/model/UpdateDeviceGroupRequest.cc
+	src/model/UpdateDeviceGroupResult.cc
+	src/model/DeleteDeviceGroupRequest.cc
+	src/model/DeleteDeviceGroupResult.cc
 	src/model/QueryDevicePropRequest.cc
 	src/model/QueryDevicePropRequest.cc
 	src/model/QueryDevicePropResult.cc
 	src/model/QueryDevicePropResult.cc
 	src/model/DeleteDevicePropRequest.cc
 	src/model/DeleteDevicePropRequest.cc
@@ -208,6 +236,10 @@ set(iot_src
 	src/model/RegisterDeviceResult.cc
 	src/model/RegisterDeviceResult.cc
 	src/model/QueryDeviceRequest.cc
 	src/model/QueryDeviceRequest.cc
 	src/model/QueryDeviceResult.cc
 	src/model/QueryDeviceResult.cc
+	src/model/BatchDeleteDeviceGroupRelationsRequest.cc
+	src/model/BatchDeleteDeviceGroupRelationsResult.cc
+	src/model/QueryDeviceGroupTagListRequest.cc
+	src/model/QueryDeviceGroupTagListResult.cc
 	src/model/ListRuleRequest.cc
 	src/model/ListRuleRequest.cc
 	src/model/ListRuleResult.cc
 	src/model/ListRuleResult.cc
 	src/model/QueryTopicRouteTableRequest.cc
 	src/model/QueryTopicRouteTableRequest.cc
@@ -246,6 +278,8 @@ set(iot_src
 	src/model/BatchGetDeviceStateResult.cc
 	src/model/BatchGetDeviceStateResult.cc
 	src/model/GetRuleActionRequest.cc
 	src/model/GetRuleActionRequest.cc
 	src/model/GetRuleActionResult.cc
 	src/model/GetRuleActionResult.cc
+	src/model/BatchAddDeviceGroupRelationsRequest.cc
+	src/model/BatchAddDeviceGroupRelationsResult.cc
 	src/model/GetRuleRequest.cc
 	src/model/GetRuleRequest.cc
 	src/model/GetRuleResult.cc
 	src/model/GetRuleResult.cc
 	src/model/GetDeviceShadowRequest.cc
 	src/model/GetDeviceShadowRequest.cc
@@ -254,6 +288,8 @@ set(iot_src
 	src/model/GetGatewayBySubDeviceResult.cc
 	src/model/GetGatewayBySubDeviceResult.cc
 	src/model/CreateRuleActionRequest.cc
 	src/model/CreateRuleActionRequest.cc
 	src/model/CreateRuleActionResult.cc
 	src/model/CreateRuleActionResult.cc
+	src/model/QueryDeviceGroupInfoRequest.cc
+	src/model/QueryDeviceGroupInfoResult.cc
 	src/model/BatchRegisterDeviceRequest.cc
 	src/model/BatchRegisterDeviceRequest.cc
 	src/model/BatchRegisterDeviceResult.cc
 	src/model/BatchRegisterDeviceResult.cc
 	src/model/DeleteRuleActionRequest.cc
 	src/model/DeleteRuleActionRequest.cc

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

@@ -26,12 +26,16 @@
 #include "model/QueryAppDeviceListResult.h"
 #include "model/QueryAppDeviceListResult.h"
 #include "model/DeleteTopicRouteTableRequest.h"
 #include "model/DeleteTopicRouteTableRequest.h"
 #include "model/DeleteTopicRouteTableResult.h"
 #include "model/DeleteTopicRouteTableResult.h"
+#include "model/QueryDeviceGroupListRequest.h"
+#include "model/QueryDeviceGroupListResult.h"
 #include "model/QueryDeviceEventDataRequest.h"
 #include "model/QueryDeviceEventDataRequest.h"
 #include "model/QueryDeviceEventDataResult.h"
 #include "model/QueryDeviceEventDataResult.h"
 #include "model/GetDeviceStatusRequest.h"
 #include "model/GetDeviceStatusRequest.h"
 #include "model/GetDeviceStatusResult.h"
 #include "model/GetDeviceStatusResult.h"
 #include "model/DeleteDeviceRequest.h"
 #include "model/DeleteDeviceRequest.h"
 #include "model/DeleteDeviceResult.h"
 #include "model/DeleteDeviceResult.h"
+#include "model/CreateDeviceGroupRequest.h"
+#include "model/CreateDeviceGroupResult.h"
 #include "model/EnableThingRequest.h"
 #include "model/EnableThingRequest.h"
 #include "model/EnableThingResult.h"
 #include "model/EnableThingResult.h"
 #include "model/RRpcRequest.h"
 #include "model/RRpcRequest.h"
@@ -44,6 +48,8 @@
 #include "model/GetThingTopoResult.h"
 #include "model/GetThingTopoResult.h"
 #include "model/QueryPageByApplyIdRequest.h"
 #include "model/QueryPageByApplyIdRequest.h"
 #include "model/QueryPageByApplyIdResult.h"
 #include "model/QueryPageByApplyIdResult.h"
+#include "model/ForceSetDeviceGroupTagRequest.h"
+#include "model/ForceSetDeviceGroupTagResult.h"
 #include "model/CreateTopicRouteTableRequest.h"
 #include "model/CreateTopicRouteTableRequest.h"
 #include "model/CreateTopicRouteTableResult.h"
 #include "model/CreateTopicRouteTableResult.h"
 #include "model/CreateProductRequest.h"
 #include "model/CreateProductRequest.h"
@@ -52,6 +58,10 @@
 #include "model/UpdateRuleResult.h"
 #include "model/UpdateRuleResult.h"
 #include "model/QueryDevicePropertyDataRequest.h"
 #include "model/QueryDevicePropertyDataRequest.h"
 #include "model/QueryDevicePropertyDataResult.h"
 #include "model/QueryDevicePropertyDataResult.h"
+#include "model/UpdateDeviceGroupRequest.h"
+#include "model/UpdateDeviceGroupResult.h"
+#include "model/DeleteDeviceGroupRequest.h"
+#include "model/DeleteDeviceGroupResult.h"
 #include "model/QueryDevicePropRequest.h"
 #include "model/QueryDevicePropRequest.h"
 #include "model/QueryDevicePropResult.h"
 #include "model/QueryDevicePropResult.h"
 #include "model/DeleteDevicePropRequest.h"
 #include "model/DeleteDevicePropRequest.h"
@@ -88,6 +98,10 @@
 #include "model/RegisterDeviceResult.h"
 #include "model/RegisterDeviceResult.h"
 #include "model/QueryDeviceRequest.h"
 #include "model/QueryDeviceRequest.h"
 #include "model/QueryDeviceResult.h"
 #include "model/QueryDeviceResult.h"
+#include "model/BatchDeleteDeviceGroupRelationsRequest.h"
+#include "model/BatchDeleteDeviceGroupRelationsResult.h"
+#include "model/QueryDeviceGroupTagListRequest.h"
+#include "model/QueryDeviceGroupTagListResult.h"
 #include "model/ListRuleRequest.h"
 #include "model/ListRuleRequest.h"
 #include "model/ListRuleResult.h"
 #include "model/ListRuleResult.h"
 #include "model/QueryTopicRouteTableRequest.h"
 #include "model/QueryTopicRouteTableRequest.h"
@@ -126,6 +140,8 @@
 #include "model/BatchGetDeviceStateResult.h"
 #include "model/BatchGetDeviceStateResult.h"
 #include "model/GetRuleActionRequest.h"
 #include "model/GetRuleActionRequest.h"
 #include "model/GetRuleActionResult.h"
 #include "model/GetRuleActionResult.h"
+#include "model/BatchAddDeviceGroupRelationsRequest.h"
+#include "model/BatchAddDeviceGroupRelationsResult.h"
 #include "model/GetRuleRequest.h"
 #include "model/GetRuleRequest.h"
 #include "model/GetRuleResult.h"
 #include "model/GetRuleResult.h"
 #include "model/GetDeviceShadowRequest.h"
 #include "model/GetDeviceShadowRequest.h"
@@ -134,6 +150,8 @@
 #include "model/GetGatewayBySubDeviceResult.h"
 #include "model/GetGatewayBySubDeviceResult.h"
 #include "model/CreateRuleActionRequest.h"
 #include "model/CreateRuleActionRequest.h"
 #include "model/CreateRuleActionResult.h"
 #include "model/CreateRuleActionResult.h"
+#include "model/QueryDeviceGroupInfoRequest.h"
+#include "model/QueryDeviceGroupInfoResult.h"
 #include "model/BatchRegisterDeviceRequest.h"
 #include "model/BatchRegisterDeviceRequest.h"
 #include "model/BatchRegisterDeviceResult.h"
 #include "model/BatchRegisterDeviceResult.h"
 #include "model/DeleteRuleActionRequest.h"
 #include "model/DeleteRuleActionRequest.h"
@@ -155,6 +173,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteTopicRouteTableResult> DeleteTopicRouteTableOutcome;
 			typedef Outcome<Error, Model::DeleteTopicRouteTableResult> DeleteTopicRouteTableOutcome;
 			typedef std::future<DeleteTopicRouteTableOutcome> DeleteTopicRouteTableOutcomeCallable;
 			typedef std::future<DeleteTopicRouteTableOutcome> DeleteTopicRouteTableOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteTopicRouteTableRequest&, const DeleteTopicRouteTableOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTopicRouteTableAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::DeleteTopicRouteTableRequest&, const DeleteTopicRouteTableOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTopicRouteTableAsyncHandler;
+			typedef Outcome<Error, Model::QueryDeviceGroupListResult> QueryDeviceGroupListOutcome;
+			typedef std::future<QueryDeviceGroupListOutcome> QueryDeviceGroupListOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::QueryDeviceGroupListRequest&, const QueryDeviceGroupListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceGroupListAsyncHandler;
 			typedef Outcome<Error, Model::QueryDeviceEventDataResult> QueryDeviceEventDataOutcome;
 			typedef Outcome<Error, Model::QueryDeviceEventDataResult> QueryDeviceEventDataOutcome;
 			typedef std::future<QueryDeviceEventDataOutcome> QueryDeviceEventDataOutcomeCallable;
 			typedef std::future<QueryDeviceEventDataOutcome> QueryDeviceEventDataOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryDeviceEventDataRequest&, const QueryDeviceEventDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceEventDataAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::QueryDeviceEventDataRequest&, const QueryDeviceEventDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceEventDataAsyncHandler;
@@ -164,6 +185,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteDeviceResult> DeleteDeviceOutcome;
 			typedef Outcome<Error, Model::DeleteDeviceResult> DeleteDeviceOutcome;
 			typedef std::future<DeleteDeviceOutcome> DeleteDeviceOutcomeCallable;
 			typedef std::future<DeleteDeviceOutcome> DeleteDeviceOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteDeviceRequest&, const DeleteDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDeviceAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::DeleteDeviceRequest&, const DeleteDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDeviceAsyncHandler;
+			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::EnableThingResult> EnableThingOutcome;
 			typedef Outcome<Error, Model::EnableThingResult> EnableThingOutcome;
 			typedef std::future<EnableThingOutcome> EnableThingOutcomeCallable;
 			typedef std::future<EnableThingOutcome> EnableThingOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::EnableThingRequest&, const EnableThingOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> EnableThingAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::EnableThingRequest&, const EnableThingOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> EnableThingAsyncHandler;
@@ -182,6 +206,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::QueryPageByApplyIdResult> QueryPageByApplyIdOutcome;
 			typedef Outcome<Error, Model::QueryPageByApplyIdResult> QueryPageByApplyIdOutcome;
 			typedef std::future<QueryPageByApplyIdOutcome> QueryPageByApplyIdOutcomeCallable;
 			typedef std::future<QueryPageByApplyIdOutcome> QueryPageByApplyIdOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryPageByApplyIdRequest&, const QueryPageByApplyIdOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryPageByApplyIdAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::QueryPageByApplyIdRequest&, const QueryPageByApplyIdOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryPageByApplyIdAsyncHandler;
+			typedef Outcome<Error, Model::ForceSetDeviceGroupTagResult> ForceSetDeviceGroupTagOutcome;
+			typedef std::future<ForceSetDeviceGroupTagOutcome> ForceSetDeviceGroupTagOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::ForceSetDeviceGroupTagRequest&, const ForceSetDeviceGroupTagOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ForceSetDeviceGroupTagAsyncHandler;
 			typedef Outcome<Error, Model::CreateTopicRouteTableResult> CreateTopicRouteTableOutcome;
 			typedef Outcome<Error, Model::CreateTopicRouteTableResult> CreateTopicRouteTableOutcome;
 			typedef std::future<CreateTopicRouteTableOutcome> CreateTopicRouteTableOutcomeCallable;
 			typedef std::future<CreateTopicRouteTableOutcome> CreateTopicRouteTableOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CreateTopicRouteTableRequest&, const CreateTopicRouteTableOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateTopicRouteTableAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::CreateTopicRouteTableRequest&, const CreateTopicRouteTableOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateTopicRouteTableAsyncHandler;
@@ -194,6 +221,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::QueryDevicePropertyDataResult> QueryDevicePropertyDataOutcome;
 			typedef Outcome<Error, Model::QueryDevicePropertyDataResult> QueryDevicePropertyDataOutcome;
 			typedef std::future<QueryDevicePropertyDataOutcome> QueryDevicePropertyDataOutcomeCallable;
 			typedef std::future<QueryDevicePropertyDataOutcome> QueryDevicePropertyDataOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryDevicePropertyDataRequest&, const QueryDevicePropertyDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDevicePropertyDataAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::QueryDevicePropertyDataRequest&, const QueryDevicePropertyDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDevicePropertyDataAsyncHandler;
+			typedef Outcome<Error, Model::UpdateDeviceGroupResult> UpdateDeviceGroupOutcome;
+			typedef std::future<UpdateDeviceGroupOutcome> UpdateDeviceGroupOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::UpdateDeviceGroupRequest&, const UpdateDeviceGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateDeviceGroupAsyncHandler;
+			typedef Outcome<Error, Model::DeleteDeviceGroupResult> DeleteDeviceGroupOutcome;
+			typedef std::future<DeleteDeviceGroupOutcome> DeleteDeviceGroupOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::DeleteDeviceGroupRequest&, const DeleteDeviceGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDeviceGroupAsyncHandler;
 			typedef Outcome<Error, Model::QueryDevicePropResult> QueryDevicePropOutcome;
 			typedef Outcome<Error, Model::QueryDevicePropResult> QueryDevicePropOutcome;
 			typedef std::future<QueryDevicePropOutcome> QueryDevicePropOutcomeCallable;
 			typedef std::future<QueryDevicePropOutcome> QueryDevicePropOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryDevicePropRequest&, const QueryDevicePropOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDevicePropAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::QueryDevicePropRequest&, const QueryDevicePropOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDevicePropAsyncHandler;
@@ -248,6 +281,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::QueryDeviceResult> QueryDeviceOutcome;
 			typedef Outcome<Error, Model::QueryDeviceResult> QueryDeviceOutcome;
 			typedef std::future<QueryDeviceOutcome> QueryDeviceOutcomeCallable;
 			typedef std::future<QueryDeviceOutcome> QueryDeviceOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryDeviceRequest&, const QueryDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::QueryDeviceRequest&, const QueryDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceAsyncHandler;
+			typedef Outcome<Error, Model::BatchDeleteDeviceGroupRelationsResult> BatchDeleteDeviceGroupRelationsOutcome;
+			typedef std::future<BatchDeleteDeviceGroupRelationsOutcome> BatchDeleteDeviceGroupRelationsOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::BatchDeleteDeviceGroupRelationsRequest&, const BatchDeleteDeviceGroupRelationsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchDeleteDeviceGroupRelationsAsyncHandler;
+			typedef Outcome<Error, Model::QueryDeviceGroupTagListResult> QueryDeviceGroupTagListOutcome;
+			typedef std::future<QueryDeviceGroupTagListOutcome> QueryDeviceGroupTagListOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::QueryDeviceGroupTagListRequest&, const QueryDeviceGroupTagListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceGroupTagListAsyncHandler;
 			typedef Outcome<Error, Model::ListRuleResult> ListRuleOutcome;
 			typedef Outcome<Error, Model::ListRuleResult> ListRuleOutcome;
 			typedef std::future<ListRuleOutcome> ListRuleOutcomeCallable;
 			typedef std::future<ListRuleOutcome> ListRuleOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::ListRuleRequest&, const ListRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListRuleAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::ListRuleRequest&, const ListRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListRuleAsyncHandler;
@@ -305,6 +344,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetRuleActionResult> GetRuleActionOutcome;
 			typedef Outcome<Error, Model::GetRuleActionResult> GetRuleActionOutcome;
 			typedef std::future<GetRuleActionOutcome> GetRuleActionOutcomeCallable;
 			typedef std::future<GetRuleActionOutcome> GetRuleActionOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::GetRuleActionRequest&, const GetRuleActionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetRuleActionAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::GetRuleActionRequest&, const GetRuleActionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetRuleActionAsyncHandler;
+			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;
 			typedef Outcome<Error, Model::GetRuleResult> GetRuleOutcome;
 			typedef Outcome<Error, Model::GetRuleResult> GetRuleOutcome;
 			typedef std::future<GetRuleOutcome> GetRuleOutcomeCallable;
 			typedef std::future<GetRuleOutcome> GetRuleOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::GetRuleRequest&, const GetRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetRuleAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::GetRuleRequest&, const GetRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetRuleAsyncHandler;
@@ -317,6 +359,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateRuleActionResult> CreateRuleActionOutcome;
 			typedef Outcome<Error, Model::CreateRuleActionResult> CreateRuleActionOutcome;
 			typedef std::future<CreateRuleActionOutcome> CreateRuleActionOutcomeCallable;
 			typedef std::future<CreateRuleActionOutcome> CreateRuleActionOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CreateRuleActionRequest&, const CreateRuleActionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateRuleActionAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::CreateRuleActionRequest&, const CreateRuleActionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateRuleActionAsyncHandler;
+			typedef Outcome<Error, Model::QueryDeviceGroupInfoResult> QueryDeviceGroupInfoOutcome;
+			typedef std::future<QueryDeviceGroupInfoOutcome> QueryDeviceGroupInfoOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::QueryDeviceGroupInfoRequest&, const QueryDeviceGroupInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceGroupInfoAsyncHandler;
 			typedef Outcome<Error, Model::BatchRegisterDeviceResult> BatchRegisterDeviceOutcome;
 			typedef Outcome<Error, Model::BatchRegisterDeviceResult> BatchRegisterDeviceOutcome;
 			typedef std::future<BatchRegisterDeviceOutcome> BatchRegisterDeviceOutcomeCallable;
 			typedef std::future<BatchRegisterDeviceOutcome> BatchRegisterDeviceOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::BatchRegisterDeviceRequest&, const BatchRegisterDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchRegisterDeviceAsyncHandler;
 			typedef std::function<void(const IotClient*, const Model::BatchRegisterDeviceRequest&, const BatchRegisterDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchRegisterDeviceAsyncHandler;
@@ -337,6 +382,9 @@ namespace AlibabaCloud
 			DeleteTopicRouteTableOutcome deleteTopicRouteTable(const Model::DeleteTopicRouteTableRequest &request)const;
 			DeleteTopicRouteTableOutcome deleteTopicRouteTable(const Model::DeleteTopicRouteTableRequest &request)const;
 			void deleteTopicRouteTableAsync(const Model::DeleteTopicRouteTableRequest& request, const DeleteTopicRouteTableAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void deleteTopicRouteTableAsync(const Model::DeleteTopicRouteTableRequest& request, const DeleteTopicRouteTableAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteTopicRouteTableOutcomeCallable deleteTopicRouteTableCallable(const Model::DeleteTopicRouteTableRequest& request) const;
 			DeleteTopicRouteTableOutcomeCallable deleteTopicRouteTableCallable(const Model::DeleteTopicRouteTableRequest& request) const;
+			QueryDeviceGroupListOutcome queryDeviceGroupList(const Model::QueryDeviceGroupListRequest &request)const;
+			void queryDeviceGroupListAsync(const Model::QueryDeviceGroupListRequest& request, const QueryDeviceGroupListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryDeviceGroupListOutcomeCallable queryDeviceGroupListCallable(const Model::QueryDeviceGroupListRequest& request) const;
 			QueryDeviceEventDataOutcome queryDeviceEventData(const Model::QueryDeviceEventDataRequest &request)const;
 			QueryDeviceEventDataOutcome queryDeviceEventData(const Model::QueryDeviceEventDataRequest &request)const;
 			void queryDeviceEventDataAsync(const Model::QueryDeviceEventDataRequest& request, const QueryDeviceEventDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void queryDeviceEventDataAsync(const Model::QueryDeviceEventDataRequest& request, const QueryDeviceEventDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryDeviceEventDataOutcomeCallable queryDeviceEventDataCallable(const Model::QueryDeviceEventDataRequest& request) const;
 			QueryDeviceEventDataOutcomeCallable queryDeviceEventDataCallable(const Model::QueryDeviceEventDataRequest& request) const;
@@ -346,6 +394,9 @@ namespace AlibabaCloud
 			DeleteDeviceOutcome deleteDevice(const Model::DeleteDeviceRequest &request)const;
 			DeleteDeviceOutcome deleteDevice(const Model::DeleteDeviceRequest &request)const;
 			void deleteDeviceAsync(const Model::DeleteDeviceRequest& request, const DeleteDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void deleteDeviceAsync(const Model::DeleteDeviceRequest& request, const DeleteDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteDeviceOutcomeCallable deleteDeviceCallable(const Model::DeleteDeviceRequest& request) const;
 			DeleteDeviceOutcomeCallable deleteDeviceCallable(const Model::DeleteDeviceRequest& 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;
 			EnableThingOutcome enableThing(const Model::EnableThingRequest &request)const;
 			EnableThingOutcome enableThing(const Model::EnableThingRequest &request)const;
 			void enableThingAsync(const Model::EnableThingRequest& request, const EnableThingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void enableThingAsync(const Model::EnableThingRequest& request, const EnableThingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			EnableThingOutcomeCallable enableThingCallable(const Model::EnableThingRequest& request) const;
 			EnableThingOutcomeCallable enableThingCallable(const Model::EnableThingRequest& request) const;
@@ -364,6 +415,9 @@ namespace AlibabaCloud
 			QueryPageByApplyIdOutcome queryPageByApplyId(const Model::QueryPageByApplyIdRequest &request)const;
 			QueryPageByApplyIdOutcome queryPageByApplyId(const Model::QueryPageByApplyIdRequest &request)const;
 			void queryPageByApplyIdAsync(const Model::QueryPageByApplyIdRequest& request, const QueryPageByApplyIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void queryPageByApplyIdAsync(const Model::QueryPageByApplyIdRequest& request, const QueryPageByApplyIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryPageByApplyIdOutcomeCallable queryPageByApplyIdCallable(const Model::QueryPageByApplyIdRequest& request) const;
 			QueryPageByApplyIdOutcomeCallable queryPageByApplyIdCallable(const Model::QueryPageByApplyIdRequest& request) const;
+			ForceSetDeviceGroupTagOutcome forceSetDeviceGroupTag(const Model::ForceSetDeviceGroupTagRequest &request)const;
+			void forceSetDeviceGroupTagAsync(const Model::ForceSetDeviceGroupTagRequest& request, const ForceSetDeviceGroupTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ForceSetDeviceGroupTagOutcomeCallable forceSetDeviceGroupTagCallable(const Model::ForceSetDeviceGroupTagRequest& request) const;
 			CreateTopicRouteTableOutcome createTopicRouteTable(const Model::CreateTopicRouteTableRequest &request)const;
 			CreateTopicRouteTableOutcome createTopicRouteTable(const Model::CreateTopicRouteTableRequest &request)const;
 			void createTopicRouteTableAsync(const Model::CreateTopicRouteTableRequest& request, const CreateTopicRouteTableAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void createTopicRouteTableAsync(const Model::CreateTopicRouteTableRequest& request, const CreateTopicRouteTableAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateTopicRouteTableOutcomeCallable createTopicRouteTableCallable(const Model::CreateTopicRouteTableRequest& request) const;
 			CreateTopicRouteTableOutcomeCallable createTopicRouteTableCallable(const Model::CreateTopicRouteTableRequest& request) const;
@@ -376,6 +430,12 @@ namespace AlibabaCloud
 			QueryDevicePropertyDataOutcome queryDevicePropertyData(const Model::QueryDevicePropertyDataRequest &request)const;
 			QueryDevicePropertyDataOutcome queryDevicePropertyData(const Model::QueryDevicePropertyDataRequest &request)const;
 			void queryDevicePropertyDataAsync(const Model::QueryDevicePropertyDataRequest& request, const QueryDevicePropertyDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void queryDevicePropertyDataAsync(const Model::QueryDevicePropertyDataRequest& request, const QueryDevicePropertyDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryDevicePropertyDataOutcomeCallable queryDevicePropertyDataCallable(const Model::QueryDevicePropertyDataRequest& request) const;
 			QueryDevicePropertyDataOutcomeCallable queryDevicePropertyDataCallable(const Model::QueryDevicePropertyDataRequest& request) const;
+			UpdateDeviceGroupOutcome updateDeviceGroup(const Model::UpdateDeviceGroupRequest &request)const;
+			void updateDeviceGroupAsync(const Model::UpdateDeviceGroupRequest& request, const UpdateDeviceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateDeviceGroupOutcomeCallable updateDeviceGroupCallable(const Model::UpdateDeviceGroupRequest& request) const;
+			DeleteDeviceGroupOutcome deleteDeviceGroup(const Model::DeleteDeviceGroupRequest &request)const;
+			void deleteDeviceGroupAsync(const Model::DeleteDeviceGroupRequest& request, const DeleteDeviceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteDeviceGroupOutcomeCallable deleteDeviceGroupCallable(const Model::DeleteDeviceGroupRequest& request) const;
 			QueryDevicePropOutcome queryDeviceProp(const Model::QueryDevicePropRequest &request)const;
 			QueryDevicePropOutcome queryDeviceProp(const Model::QueryDevicePropRequest &request)const;
 			void queryDevicePropAsync(const Model::QueryDevicePropRequest& request, const QueryDevicePropAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void queryDevicePropAsync(const Model::QueryDevicePropRequest& request, const QueryDevicePropAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryDevicePropOutcomeCallable queryDevicePropCallable(const Model::QueryDevicePropRequest& request) const;
 			QueryDevicePropOutcomeCallable queryDevicePropCallable(const Model::QueryDevicePropRequest& request) const;
@@ -430,6 +490,12 @@ namespace AlibabaCloud
 			QueryDeviceOutcome queryDevice(const Model::QueryDeviceRequest &request)const;
 			QueryDeviceOutcome queryDevice(const Model::QueryDeviceRequest &request)const;
 			void queryDeviceAsync(const Model::QueryDeviceRequest& request, const QueryDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void queryDeviceAsync(const Model::QueryDeviceRequest& request, const QueryDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryDeviceOutcomeCallable queryDeviceCallable(const Model::QueryDeviceRequest& request) const;
 			QueryDeviceOutcomeCallable queryDeviceCallable(const Model::QueryDeviceRequest& request) const;
+			BatchDeleteDeviceGroupRelationsOutcome batchDeleteDeviceGroupRelations(const Model::BatchDeleteDeviceGroupRelationsRequest &request)const;
+			void batchDeleteDeviceGroupRelationsAsync(const Model::BatchDeleteDeviceGroupRelationsRequest& request, const BatchDeleteDeviceGroupRelationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			BatchDeleteDeviceGroupRelationsOutcomeCallable batchDeleteDeviceGroupRelationsCallable(const Model::BatchDeleteDeviceGroupRelationsRequest& request) const;
+			QueryDeviceGroupTagListOutcome queryDeviceGroupTagList(const Model::QueryDeviceGroupTagListRequest &request)const;
+			void queryDeviceGroupTagListAsync(const Model::QueryDeviceGroupTagListRequest& request, const QueryDeviceGroupTagListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryDeviceGroupTagListOutcomeCallable queryDeviceGroupTagListCallable(const Model::QueryDeviceGroupTagListRequest& request) const;
 			ListRuleOutcome listRule(const Model::ListRuleRequest &request)const;
 			ListRuleOutcome listRule(const Model::ListRuleRequest &request)const;
 			void listRuleAsync(const Model::ListRuleRequest& request, const ListRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void listRuleAsync(const Model::ListRuleRequest& request, const ListRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListRuleOutcomeCallable listRuleCallable(const Model::ListRuleRequest& request) const;
 			ListRuleOutcomeCallable listRuleCallable(const Model::ListRuleRequest& request) const;
@@ -487,6 +553,9 @@ namespace AlibabaCloud
 			GetRuleActionOutcome getRuleAction(const Model::GetRuleActionRequest &request)const;
 			GetRuleActionOutcome getRuleAction(const Model::GetRuleActionRequest &request)const;
 			void getRuleActionAsync(const Model::GetRuleActionRequest& request, const GetRuleActionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void getRuleActionAsync(const Model::GetRuleActionRequest& request, const GetRuleActionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetRuleActionOutcomeCallable getRuleActionCallable(const Model::GetRuleActionRequest& request) const;
 			GetRuleActionOutcomeCallable getRuleActionCallable(const Model::GetRuleActionRequest& 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;
 			GetRuleOutcome getRule(const Model::GetRuleRequest &request)const;
 			GetRuleOutcome getRule(const Model::GetRuleRequest &request)const;
 			void getRuleAsync(const Model::GetRuleRequest& request, const GetRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void getRuleAsync(const Model::GetRuleRequest& request, const GetRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetRuleOutcomeCallable getRuleCallable(const Model::GetRuleRequest& request) const;
 			GetRuleOutcomeCallable getRuleCallable(const Model::GetRuleRequest& request) const;
@@ -499,6 +568,9 @@ namespace AlibabaCloud
 			CreateRuleActionOutcome createRuleAction(const Model::CreateRuleActionRequest &request)const;
 			CreateRuleActionOutcome createRuleAction(const Model::CreateRuleActionRequest &request)const;
 			void createRuleActionAsync(const Model::CreateRuleActionRequest& request, const CreateRuleActionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void createRuleActionAsync(const Model::CreateRuleActionRequest& request, const CreateRuleActionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateRuleActionOutcomeCallable createRuleActionCallable(const Model::CreateRuleActionRequest& request) const;
 			CreateRuleActionOutcomeCallable createRuleActionCallable(const Model::CreateRuleActionRequest& request) const;
+			QueryDeviceGroupInfoOutcome queryDeviceGroupInfo(const Model::QueryDeviceGroupInfoRequest &request)const;
+			void queryDeviceGroupInfoAsync(const Model::QueryDeviceGroupInfoRequest& request, const QueryDeviceGroupInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryDeviceGroupInfoOutcomeCallable queryDeviceGroupInfoCallable(const Model::QueryDeviceGroupInfoRequest& request) const;
 			BatchRegisterDeviceOutcome batchRegisterDevice(const Model::BatchRegisterDeviceRequest &request)const;
 			BatchRegisterDeviceOutcome batchRegisterDevice(const Model::BatchRegisterDeviceRequest &request)const;
 			void batchRegisterDeviceAsync(const Model::BatchRegisterDeviceRequest& request, const BatchRegisterDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void batchRegisterDeviceAsync(const Model::BatchRegisterDeviceRequest& request, const BatchRegisterDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			BatchRegisterDeviceOutcomeCallable batchRegisterDeviceCallable(const Model::BatchRegisterDeviceRequest& request) const;
 			BatchRegisterDeviceOutcomeCallable batchRegisterDeviceCallable(const Model::BatchRegisterDeviceRequest& request) const;

+ 59 - 0
iot/include/alibabacloud/iot/model/BatchAddDeviceGroupRelationsRequest.h

@@ -0,0 +1,59 @@
+/*
+ * 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_BATCHADDDEVICEGROUPRELATIONSREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_BATCHADDDEVICEGROUPRELATIONSREQUEST_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 BatchAddDeviceGroupRelationsRequest : public RpcServiceRequest
+			{
+				struct Device
+				{
+					std::string deviceName;
+					std::string productKey;
+				};
+
+			public:
+				BatchAddDeviceGroupRelationsRequest();
+				~BatchAddDeviceGroupRelationsRequest();
+
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+				std::vector<Device> getDevice()const;
+				void setDevice(const std::vector<Device>& device);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				std::string groupId_;
+				std::vector<Device> device_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_BATCHADDDEVICEGROUPRELATIONSREQUEST_H_

+ 63 - 0
iot/include/alibabacloud/iot/model/BatchAddDeviceGroupRelationsResult.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_BATCHADDDEVICEGROUPRELATIONSRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_BATCHADDDEVICEGROUPRELATIONSRESULT_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 BatchAddDeviceGroupRelationsResult : public ServiceResult
+			{
+			public:
+
+
+				BatchAddDeviceGroupRelationsResult();
+				explicit BatchAddDeviceGroupRelationsResult(const std::string &payload);
+				~BatchAddDeviceGroupRelationsResult();
+				int getValidDeviceCount()const;
+				int getSuccessAddedDeviceCount()const;
+				int getExceedTenGroupDeviceCount()const;
+				int getAlreadyRelatedGroupDeviceCount()const;
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int validDeviceCount_;
+				int successAddedDeviceCount_;
+				int exceedTenGroupDeviceCount_;
+				int alreadyRelatedGroupDeviceCount_;
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_BATCHADDDEVICEGROUPRELATIONSRESULT_H_

+ 59 - 0
iot/include/alibabacloud/iot/model/BatchDeleteDeviceGroupRelationsRequest.h

@@ -0,0 +1,59 @@
+/*
+ * 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_BATCHDELETEDEVICEGROUPRELATIONSREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_BATCHDELETEDEVICEGROUPRELATIONSREQUEST_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 BatchDeleteDeviceGroupRelationsRequest : public RpcServiceRequest
+			{
+				struct Device
+				{
+					std::string deviceName;
+					std::string productKey;
+				};
+
+			public:
+				BatchDeleteDeviceGroupRelationsRequest();
+				~BatchDeleteDeviceGroupRelationsRequest();
+
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+				std::vector<Device> getDevice()const;
+				void setDevice(const std::vector<Device>& device);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				std::string groupId_;
+				std::vector<Device> device_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_BATCHDELETEDEVICEGROUPRELATIONSREQUEST_H_

+ 61 - 0
iot/include/alibabacloud/iot/model/BatchDeleteDeviceGroupRelationsResult.h

@@ -0,0 +1,61 @@
+/*
+ * 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_BATCHDELETEDEVICEGROUPRELATIONSRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_BATCHDELETEDEVICEGROUPRELATIONSRESULT_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 BatchDeleteDeviceGroupRelationsResult : public ServiceResult
+			{
+			public:
+
+
+				BatchDeleteDeviceGroupRelationsResult();
+				explicit BatchDeleteDeviceGroupRelationsResult(const std::string &payload);
+				~BatchDeleteDeviceGroupRelationsResult();
+				int getValidDeviceCount()const;
+				int getSuccessDeviceCount()const;
+				std::string getErrorMessage()const;
+				int getAlreadyRelatedGroupDeviceCount()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int validDeviceCount_;
+				int successDeviceCount_;
+				std::string errorMessage_;
+				int alreadyRelatedGroupDeviceCount_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_BATCHDELETEDEVICEGROUPRELATIONSRESULT_H_

+ 57 - 0
iot/include/alibabacloud/iot/model/CreateDeviceGroupRequest.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_CREATEDEVICEGROUPREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATEDEVICEGROUPREQUEST_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 CreateDeviceGroupRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateDeviceGroupRequest();
+				~CreateDeviceGroupRequest();
+
+				std::string getGroupDesc()const;
+				void setGroupDesc(const std::string& groupDesc);
+				std::string getSuperGroupId()const;
+				void setSuperGroupId(const std::string& superGroupId);
+				std::string getGroupName()const;
+				void setGroupName(const std::string& groupName);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				std::string groupDesc_;
+				std::string superGroupId_;
+				std::string groupName_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CREATEDEVICEGROUPREQUEST_H_

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

@@ -0,0 +1,64 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_CREATEDEVICEGROUPRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATEDEVICEGROUPRESULT_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 CreateDeviceGroupResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string groupName;
+					std::string utcCreate;
+					std::string groupDesc;
+					std::string groupId;
+				};
+
+
+				CreateDeviceGroupResult();
+				explicit CreateDeviceGroupResult(const std::string &payload);
+				~CreateDeviceGroupResult();
+				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_CREATEDEVICEGROUPRESULT_H_

+ 51 - 0
iot/include/alibabacloud/iot/model/DeleteDeviceGroupRequest.h

@@ -0,0 +1,51 @@
+/*
+ * 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_DELETEDEVICEGROUPREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_DELETEDEVICEGROUPREQUEST_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 DeleteDeviceGroupRequest : public RpcServiceRequest
+			{
+
+			public:
+				DeleteDeviceGroupRequest();
+				~DeleteDeviceGroupRequest();
+
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				std::string groupId_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DELETEDEVICEGROUPREQUEST_H_

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

+ 54 - 0
iot/include/alibabacloud/iot/model/ForceSetDeviceGroupTagRequest.h

@@ -0,0 +1,54 @@
+/*
+ * 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_FORCESETDEVICEGROUPTAGREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_FORCESETDEVICEGROUPTAGREQUEST_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 ForceSetDeviceGroupTagRequest : public RpcServiceRequest
+			{
+
+			public:
+				ForceSetDeviceGroupTagRequest();
+				~ForceSetDeviceGroupTagRequest();
+
+				std::string getTagString()const;
+				void setTagString(const std::string& tagString);
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				std::string tagString_;
+				std::string groupId_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_FORCESETDEVICEGROUPTAGREQUEST_H_

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

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

@@ -35,6 +35,7 @@ namespace AlibabaCloud
 				struct Data
 				struct Data
 				{
 				{
 					std::string status;
 					std::string status;
+					bool owner;
 					std::string productName;
 					std::string productName;
 					std::string deviceSecret;
 					std::string deviceSecret;
 					std::string firmwareVersion;
 					std::string firmwareVersion;

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

@@ -0,0 +1,51 @@
+/*
+ * 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_QUERYDEVICEGROUPINFOREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDEVICEGROUPINFOREQUEST_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 QueryDeviceGroupInfoRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryDeviceGroupInfoRequest();
+				~QueryDeviceGroupInfoRequest();
+
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				std::string groupId_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYDEVICEGROUPINFOREQUEST_H_

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

@@ -0,0 +1,67 @@
+/*
+ * 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_QUERYDEVICEGROUPINFORESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDEVICEGROUPINFORESULT_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 QueryDeviceGroupInfoResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string groupName;
+					std::string utcCreate;
+					std::string groupDesc;
+					int deviceOnline;
+					int deviceActive;
+					std::string groupId;
+					int deviceCount;
+				};
+
+
+				QueryDeviceGroupInfoResult();
+				explicit QueryDeviceGroupInfoResult(const std::string &payload);
+				~QueryDeviceGroupInfoResult();
+				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_QUERYDEVICEGROUPINFORESULT_H_

+ 60 - 0
iot/include/alibabacloud/iot/model/QueryDeviceGroupListRequest.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_QUERYDEVICEGROUPLISTREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDEVICEGROUPLISTREQUEST_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 QueryDeviceGroupListRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryDeviceGroupListRequest();
+				~QueryDeviceGroupListRequest();
+
+				std::string getSuperGroupId()const;
+				void setSuperGroupId(const std::string& superGroupId);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				int getCurrentPage()const;
+				void setCurrentPage(int currentPage);
+				std::string getGroupName()const;
+				void setGroupName(const std::string& groupName);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				std::string superGroupId_;
+				int pageSize_;
+				int currentPage_;
+				std::string groupName_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYDEVICEGROUPLISTREQUEST_H_

+ 72 - 0
iot/include/alibabacloud/iot/model/QueryDeviceGroupListResult.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_QUERYDEVICEGROUPLISTRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDEVICEGROUPLISTRESULT_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 QueryDeviceGroupListResult : public ServiceResult
+			{
+			public:
+				struct GroupInfo
+				{
+					std::string groupName;
+					std::string utcCreate;
+					std::string groupDesc;
+					std::string groupId;
+				};
+
+
+				QueryDeviceGroupListResult();
+				explicit QueryDeviceGroupListResult(const std::string &payload);
+				~QueryDeviceGroupListResult();
+				int getPageCount()const;
+				int getPageSize()const;
+				int getCurrentPage()const;
+				int getTotal()const;
+				std::vector<GroupInfo> getData()const;
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int pageCount_;
+				int pageSize_;
+				int currentPage_;
+				int total_;
+				std::vector<GroupInfo> data_;
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYDEVICEGROUPLISTRESULT_H_

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

@@ -0,0 +1,51 @@
+/*
+ * 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_QUERYDEVICEGROUPTAGLISTREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDEVICEGROUPTAGLISTREQUEST_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 QueryDeviceGroupTagListRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryDeviceGroupTagListRequest();
+				~QueryDeviceGroupTagListRequest();
+
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				std::string groupId_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYDEVICEGROUPTAGLISTREQUEST_H_

+ 62 - 0
iot/include/alibabacloud/iot/model/QueryDeviceGroupTagListResult.h

@@ -0,0 +1,62 @@
+/*
+ * 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_QUERYDEVICEGROUPTAGLISTRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDEVICEGROUPTAGLISTRESULT_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 QueryDeviceGroupTagListResult : public ServiceResult
+			{
+			public:
+				struct GroupTagInfo
+				{
+					std::string tagKey;
+					std::string tagValue;
+				};
+
+
+				QueryDeviceGroupTagListResult();
+				explicit QueryDeviceGroupTagListResult(const std::string &payload);
+				~QueryDeviceGroupTagListResult();
+				std::vector<GroupTagInfo> getData()const;
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<GroupTagInfo> data_;
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYDEVICEGROUPTAGLISTRESULT_H_

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

@@ -34,9 +34,11 @@ namespace AlibabaCloud
 			public:
 			public:
 				struct Data
 				struct Data
 				{
 				{
+					bool owner;
 					std::string description;
 					std::string description;
 					std::string productName;
 					std::string productName;
 					std::string aliyunCommodityCode;
 					std::string aliyunCommodityCode;
+					std::string productStatus;
 					std::string productSecret;
 					std::string productSecret;
 					long gmtCreate;
 					long gmtCreate;
 					std::string categoryKey;
 					std::string categoryKey;

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

@@ -0,0 +1,54 @@
+/*
+ * 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_UPDATEDEVICEGROUPREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_UPDATEDEVICEGROUPREQUEST_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 UpdateDeviceGroupRequest : public RpcServiceRequest
+			{
+
+			public:
+				UpdateDeviceGroupRequest();
+				~UpdateDeviceGroupRequest();
+
+				std::string getGroupDesc()const;
+				void setGroupDesc(const std::string& groupDesc);
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				std::string groupDesc_;
+				std::string groupId_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_UPDATEDEVICEGROUPREQUEST_H_

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

+ 324 - 0
iot/src/IotClient.cc

@@ -123,6 +123,42 @@ IotClient::DeleteTopicRouteTableOutcomeCallable IotClient::deleteTopicRouteTable
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+IotClient::QueryDeviceGroupListOutcome IotClient::queryDeviceGroupList(const QueryDeviceGroupListRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryDeviceGroupListOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryDeviceGroupListOutcome(QueryDeviceGroupListResult(outcome.result()));
+	else
+		return QueryDeviceGroupListOutcome(outcome.error());
+}
+
+void IotClient::queryDeviceGroupListAsync(const QueryDeviceGroupListRequest& request, const QueryDeviceGroupListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryDeviceGroupList(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::QueryDeviceGroupListOutcomeCallable IotClient::queryDeviceGroupListCallable(const QueryDeviceGroupListRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryDeviceGroupListOutcome()>>(
+			[this, request]()
+			{
+			return this->queryDeviceGroupList(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::QueryDeviceEventDataOutcome IotClient::queryDeviceEventData(const QueryDeviceEventDataRequest &request) const
 IotClient::QueryDeviceEventDataOutcome IotClient::queryDeviceEventData(const QueryDeviceEventDataRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -231,6 +267,42 @@ IotClient::DeleteDeviceOutcomeCallable IotClient::deleteDeviceCallable(const Del
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+IotClient::CreateDeviceGroupOutcome IotClient::createDeviceGroup(const CreateDeviceGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateDeviceGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateDeviceGroupOutcome(CreateDeviceGroupResult(outcome.result()));
+	else
+		return CreateDeviceGroupOutcome(outcome.error());
+}
+
+void IotClient::createDeviceGroupAsync(const CreateDeviceGroupRequest& request, const CreateDeviceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createDeviceGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::CreateDeviceGroupOutcomeCallable IotClient::createDeviceGroupCallable(const CreateDeviceGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateDeviceGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->createDeviceGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::EnableThingOutcome IotClient::enableThing(const EnableThingRequest &request) const
 IotClient::EnableThingOutcome IotClient::enableThing(const EnableThingRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -447,6 +519,42 @@ IotClient::QueryPageByApplyIdOutcomeCallable IotClient::queryPageByApplyIdCallab
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+IotClient::ForceSetDeviceGroupTagOutcome IotClient::forceSetDeviceGroupTag(const ForceSetDeviceGroupTagRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ForceSetDeviceGroupTagOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ForceSetDeviceGroupTagOutcome(ForceSetDeviceGroupTagResult(outcome.result()));
+	else
+		return ForceSetDeviceGroupTagOutcome(outcome.error());
+}
+
+void IotClient::forceSetDeviceGroupTagAsync(const ForceSetDeviceGroupTagRequest& request, const ForceSetDeviceGroupTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, forceSetDeviceGroupTag(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::ForceSetDeviceGroupTagOutcomeCallable IotClient::forceSetDeviceGroupTagCallable(const ForceSetDeviceGroupTagRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ForceSetDeviceGroupTagOutcome()>>(
+			[this, request]()
+			{
+			return this->forceSetDeviceGroupTag(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::CreateTopicRouteTableOutcome IotClient::createTopicRouteTable(const CreateTopicRouteTableRequest &request) const
 IotClient::CreateTopicRouteTableOutcome IotClient::createTopicRouteTable(const CreateTopicRouteTableRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -591,6 +699,78 @@ IotClient::QueryDevicePropertyDataOutcomeCallable IotClient::queryDeviceProperty
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+IotClient::UpdateDeviceGroupOutcome IotClient::updateDeviceGroup(const UpdateDeviceGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateDeviceGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateDeviceGroupOutcome(UpdateDeviceGroupResult(outcome.result()));
+	else
+		return UpdateDeviceGroupOutcome(outcome.error());
+}
+
+void IotClient::updateDeviceGroupAsync(const UpdateDeviceGroupRequest& request, const UpdateDeviceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateDeviceGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::UpdateDeviceGroupOutcomeCallable IotClient::updateDeviceGroupCallable(const UpdateDeviceGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateDeviceGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->updateDeviceGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+IotClient::DeleteDeviceGroupOutcome IotClient::deleteDeviceGroup(const DeleteDeviceGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteDeviceGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteDeviceGroupOutcome(DeleteDeviceGroupResult(outcome.result()));
+	else
+		return DeleteDeviceGroupOutcome(outcome.error());
+}
+
+void IotClient::deleteDeviceGroupAsync(const DeleteDeviceGroupRequest& request, const DeleteDeviceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteDeviceGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::DeleteDeviceGroupOutcomeCallable IotClient::deleteDeviceGroupCallable(const DeleteDeviceGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteDeviceGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteDeviceGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::QueryDevicePropOutcome IotClient::queryDeviceProp(const QueryDevicePropRequest &request) const
 IotClient::QueryDevicePropOutcome IotClient::queryDeviceProp(const QueryDevicePropRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1239,6 +1419,78 @@ IotClient::QueryDeviceOutcomeCallable IotClient::queryDeviceCallable(const Query
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+IotClient::BatchDeleteDeviceGroupRelationsOutcome IotClient::batchDeleteDeviceGroupRelations(const BatchDeleteDeviceGroupRelationsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return BatchDeleteDeviceGroupRelationsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return BatchDeleteDeviceGroupRelationsOutcome(BatchDeleteDeviceGroupRelationsResult(outcome.result()));
+	else
+		return BatchDeleteDeviceGroupRelationsOutcome(outcome.error());
+}
+
+void IotClient::batchDeleteDeviceGroupRelationsAsync(const BatchDeleteDeviceGroupRelationsRequest& request, const BatchDeleteDeviceGroupRelationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, batchDeleteDeviceGroupRelations(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::BatchDeleteDeviceGroupRelationsOutcomeCallable IotClient::batchDeleteDeviceGroupRelationsCallable(const BatchDeleteDeviceGroupRelationsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<BatchDeleteDeviceGroupRelationsOutcome()>>(
+			[this, request]()
+			{
+			return this->batchDeleteDeviceGroupRelations(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+IotClient::QueryDeviceGroupTagListOutcome IotClient::queryDeviceGroupTagList(const QueryDeviceGroupTagListRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryDeviceGroupTagListOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryDeviceGroupTagListOutcome(QueryDeviceGroupTagListResult(outcome.result()));
+	else
+		return QueryDeviceGroupTagListOutcome(outcome.error());
+}
+
+void IotClient::queryDeviceGroupTagListAsync(const QueryDeviceGroupTagListRequest& request, const QueryDeviceGroupTagListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryDeviceGroupTagList(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::QueryDeviceGroupTagListOutcomeCallable IotClient::queryDeviceGroupTagListCallable(const QueryDeviceGroupTagListRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryDeviceGroupTagListOutcome()>>(
+			[this, request]()
+			{
+			return this->queryDeviceGroupTagList(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::ListRuleOutcome IotClient::listRule(const ListRuleRequest &request) const
 IotClient::ListRuleOutcome IotClient::listRule(const ListRuleRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1923,6 +2175,42 @@ IotClient::GetRuleActionOutcomeCallable IotClient::getRuleActionCallable(const G
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+IotClient::BatchAddDeviceGroupRelationsOutcome IotClient::batchAddDeviceGroupRelations(const BatchAddDeviceGroupRelationsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return BatchAddDeviceGroupRelationsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return BatchAddDeviceGroupRelationsOutcome(BatchAddDeviceGroupRelationsResult(outcome.result()));
+	else
+		return BatchAddDeviceGroupRelationsOutcome(outcome.error());
+}
+
+void IotClient::batchAddDeviceGroupRelationsAsync(const BatchAddDeviceGroupRelationsRequest& request, const BatchAddDeviceGroupRelationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, batchAddDeviceGroupRelations(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::BatchAddDeviceGroupRelationsOutcomeCallable IotClient::batchAddDeviceGroupRelationsCallable(const BatchAddDeviceGroupRelationsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<BatchAddDeviceGroupRelationsOutcome()>>(
+			[this, request]()
+			{
+			return this->batchAddDeviceGroupRelations(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::GetRuleOutcome IotClient::getRule(const GetRuleRequest &request) const
 IotClient::GetRuleOutcome IotClient::getRule(const GetRuleRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2067,6 +2355,42 @@ IotClient::CreateRuleActionOutcomeCallable IotClient::createRuleActionCallable(c
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+IotClient::QueryDeviceGroupInfoOutcome IotClient::queryDeviceGroupInfo(const QueryDeviceGroupInfoRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryDeviceGroupInfoOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryDeviceGroupInfoOutcome(QueryDeviceGroupInfoResult(outcome.result()));
+	else
+		return QueryDeviceGroupInfoOutcome(outcome.error());
+}
+
+void IotClient::queryDeviceGroupInfoAsync(const QueryDeviceGroupInfoRequest& request, const QueryDeviceGroupInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryDeviceGroupInfo(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::QueryDeviceGroupInfoOutcomeCallable IotClient::queryDeviceGroupInfoCallable(const QueryDeviceGroupInfoRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryDeviceGroupInfoOutcome()>>(
+			[this, request]()
+			{
+			return this->queryDeviceGroupInfo(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::BatchRegisterDeviceOutcome IotClient::batchRegisterDevice(const BatchRegisterDeviceRequest &request) const
 IotClient::BatchRegisterDeviceOutcome IotClient::batchRegisterDevice(const BatchRegisterDeviceRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 66 - 0
iot/src/model/BatchAddDeviceGroupRelationsRequest.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/iot/model/BatchAddDeviceGroupRelationsRequest.h>
+
+using AlibabaCloud::Iot::Model::BatchAddDeviceGroupRelationsRequest;
+
+BatchAddDeviceGroupRelationsRequest::BatchAddDeviceGroupRelationsRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "BatchAddDeviceGroupRelations")
+{}
+
+BatchAddDeviceGroupRelationsRequest::~BatchAddDeviceGroupRelationsRequest()
+{}
+
+std::string BatchAddDeviceGroupRelationsRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void BatchAddDeviceGroupRelationsRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+std::vector<BatchAddDeviceGroupRelationsRequest::Device> BatchAddDeviceGroupRelationsRequest::getDevice()const
+{
+	return device_;
+}
+
+void BatchAddDeviceGroupRelationsRequest::setDevice(const std::vector<Device>& device)
+{
+	device_ = device;
+	int i = 0;
+	for(int i = 0; i!= device.size(); i++)	{
+		auto obj = device.at(i);
+		std::string str ="Device."+ std::to_string(i);
+		setParameter(str + ".DeviceName", obj.deviceName);
+		setParameter(str + ".ProductKey", obj.productKey);
+	}
+}
+
+std::string BatchAddDeviceGroupRelationsRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void BatchAddDeviceGroupRelationsRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

+ 94 - 0
iot/src/model/BatchAddDeviceGroupRelationsResult.cc

@@ -0,0 +1,94 @@
+/*
+ * 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/BatchAddDeviceGroupRelationsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+BatchAddDeviceGroupRelationsResult::BatchAddDeviceGroupRelationsResult() :
+	ServiceResult()
+{}
+
+BatchAddDeviceGroupRelationsResult::BatchAddDeviceGroupRelationsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+BatchAddDeviceGroupRelationsResult::~BatchAddDeviceGroupRelationsResult()
+{}
+
+void BatchAddDeviceGroupRelationsResult::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["ValidDeviceCount"].isNull())
+		validDeviceCount_ = std::stoi(value["ValidDeviceCount"].asString());
+	if(!value["ExceedTenGroupDeviceCount"].isNull())
+		exceedTenGroupDeviceCount_ = std::stoi(value["ExceedTenGroupDeviceCount"].asString());
+	if(!value["AlreadyRelatedGroupDeviceCount"].isNull())
+		alreadyRelatedGroupDeviceCount_ = std::stoi(value["AlreadyRelatedGroupDeviceCount"].asString());
+	if(!value["SuccessAddedDeviceCount"].isNull())
+		successAddedDeviceCount_ = std::stoi(value["SuccessAddedDeviceCount"].asString());
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+
+}
+
+int BatchAddDeviceGroupRelationsResult::getValidDeviceCount()const
+{
+	return validDeviceCount_;
+}
+
+int BatchAddDeviceGroupRelationsResult::getSuccessAddedDeviceCount()const
+{
+	return successAddedDeviceCount_;
+}
+
+int BatchAddDeviceGroupRelationsResult::getExceedTenGroupDeviceCount()const
+{
+	return exceedTenGroupDeviceCount_;
+}
+
+int BatchAddDeviceGroupRelationsResult::getAlreadyRelatedGroupDeviceCount()const
+{
+	return alreadyRelatedGroupDeviceCount_;
+}
+
+std::string BatchAddDeviceGroupRelationsResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string BatchAddDeviceGroupRelationsResult::getCode()const
+{
+	return code_;
+}
+
+bool BatchAddDeviceGroupRelationsResult::getSuccess()const
+{
+	return success_;
+}
+

+ 66 - 0
iot/src/model/BatchDeleteDeviceGroupRelationsRequest.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/iot/model/BatchDeleteDeviceGroupRelationsRequest.h>
+
+using AlibabaCloud::Iot::Model::BatchDeleteDeviceGroupRelationsRequest;
+
+BatchDeleteDeviceGroupRelationsRequest::BatchDeleteDeviceGroupRelationsRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "BatchDeleteDeviceGroupRelations")
+{}
+
+BatchDeleteDeviceGroupRelationsRequest::~BatchDeleteDeviceGroupRelationsRequest()
+{}
+
+std::string BatchDeleteDeviceGroupRelationsRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void BatchDeleteDeviceGroupRelationsRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+std::vector<BatchDeleteDeviceGroupRelationsRequest::Device> BatchDeleteDeviceGroupRelationsRequest::getDevice()const
+{
+	return device_;
+}
+
+void BatchDeleteDeviceGroupRelationsRequest::setDevice(const std::vector<Device>& device)
+{
+	device_ = device;
+	int i = 0;
+	for(int i = 0; i!= device.size(); i++)	{
+		auto obj = device.at(i);
+		std::string str ="Device."+ std::to_string(i);
+		setParameter(str + ".DeviceName", obj.deviceName);
+		setParameter(str + ".ProductKey", obj.productKey);
+	}
+}
+
+std::string BatchDeleteDeviceGroupRelationsRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void BatchDeleteDeviceGroupRelationsRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

+ 87 - 0
iot/src/model/BatchDeleteDeviceGroupRelationsResult.cc

@@ -0,0 +1,87 @@
+/*
+ * 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/BatchDeleteDeviceGroupRelationsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+BatchDeleteDeviceGroupRelationsResult::BatchDeleteDeviceGroupRelationsResult() :
+	ServiceResult()
+{}
+
+BatchDeleteDeviceGroupRelationsResult::BatchDeleteDeviceGroupRelationsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+BatchDeleteDeviceGroupRelationsResult::~BatchDeleteDeviceGroupRelationsResult()
+{}
+
+void BatchDeleteDeviceGroupRelationsResult::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["ValidDeviceCount"].isNull())
+		validDeviceCount_ = std::stoi(value["ValidDeviceCount"].asString());
+	if(!value["AlreadyRelatedGroupDeviceCount"].isNull())
+		alreadyRelatedGroupDeviceCount_ = std::stoi(value["AlreadyRelatedGroupDeviceCount"].asString());
+	if(!value["SuccessDeviceCount"].isNull())
+		successDeviceCount_ = std::stoi(value["SuccessDeviceCount"].asString());
+
+}
+
+int BatchDeleteDeviceGroupRelationsResult::getValidDeviceCount()const
+{
+	return validDeviceCount_;
+}
+
+int BatchDeleteDeviceGroupRelationsResult::getSuccessDeviceCount()const
+{
+	return successDeviceCount_;
+}
+
+std::string BatchDeleteDeviceGroupRelationsResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+int BatchDeleteDeviceGroupRelationsResult::getAlreadyRelatedGroupDeviceCount()const
+{
+	return alreadyRelatedGroupDeviceCount_;
+}
+
+std::string BatchDeleteDeviceGroupRelationsResult::getCode()const
+{
+	return code_;
+}
+
+bool BatchDeleteDeviceGroupRelationsResult::getSuccess()const
+{
+	return success_;
+}
+

+ 71 - 0
iot/src/model/CreateDeviceGroupRequest.cc

@@ -0,0 +1,71 @@
+/*
+ * 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/CreateDeviceGroupRequest.h>
+
+using AlibabaCloud::Iot::Model::CreateDeviceGroupRequest;
+
+CreateDeviceGroupRequest::CreateDeviceGroupRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "CreateDeviceGroup")
+{}
+
+CreateDeviceGroupRequest::~CreateDeviceGroupRequest()
+{}
+
+std::string CreateDeviceGroupRequest::getGroupDesc()const
+{
+	return groupDesc_;
+}
+
+void CreateDeviceGroupRequest::setGroupDesc(const std::string& groupDesc)
+{
+	groupDesc_ = groupDesc;
+	setParameter("GroupDesc", groupDesc);
+}
+
+std::string CreateDeviceGroupRequest::getSuperGroupId()const
+{
+	return superGroupId_;
+}
+
+void CreateDeviceGroupRequest::setSuperGroupId(const std::string& superGroupId)
+{
+	superGroupId_ = superGroupId;
+	setParameter("SuperGroupId", superGroupId);
+}
+
+std::string CreateDeviceGroupRequest::getGroupName()const
+{
+	return groupName_;
+}
+
+void CreateDeviceGroupRequest::setGroupName(const std::string& groupName)
+{
+	groupName_ = groupName;
+	setParameter("GroupName", groupName);
+}
+
+std::string CreateDeviceGroupRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void CreateDeviceGroupRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

+ 80 - 0
iot/src/model/CreateDeviceGroupResult.cc

@@ -0,0 +1,80 @@
+/*
+ * 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/CreateDeviceGroupResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+CreateDeviceGroupResult::CreateDeviceGroupResult() :
+	ServiceResult()
+{}
+
+CreateDeviceGroupResult::CreateDeviceGroupResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateDeviceGroupResult::~CreateDeviceGroupResult()
+{}
+
+void CreateDeviceGroupResult::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(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+
+}
+
+CreateDeviceGroupResult::Data CreateDeviceGroupResult::getData()const
+{
+	return data_;
+}
+
+std::string CreateDeviceGroupResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string CreateDeviceGroupResult::getCode()const
+{
+	return code_;
+}
+
+bool CreateDeviceGroupResult::getSuccess()const
+{
+	return success_;
+}
+

+ 49 - 0
iot/src/model/DeleteDeviceGroupRequest.cc

@@ -0,0 +1,49 @@
+/*
+ * 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/DeleteDeviceGroupRequest.h>
+
+using AlibabaCloud::Iot::Model::DeleteDeviceGroupRequest;
+
+DeleteDeviceGroupRequest::DeleteDeviceGroupRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "DeleteDeviceGroup")
+{}
+
+DeleteDeviceGroupRequest::~DeleteDeviceGroupRequest()
+{}
+
+std::string DeleteDeviceGroupRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void DeleteDeviceGroupRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+std::string DeleteDeviceGroupRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void DeleteDeviceGroupRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

+ 66 - 0
iot/src/model/DeleteDeviceGroupResult.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/iot/model/DeleteDeviceGroupResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+DeleteDeviceGroupResult::DeleteDeviceGroupResult() :
+	ServiceResult()
+{}
+
+DeleteDeviceGroupResult::DeleteDeviceGroupResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteDeviceGroupResult::~DeleteDeviceGroupResult()
+{}
+
+void DeleteDeviceGroupResult::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 DeleteDeviceGroupResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string DeleteDeviceGroupResult::getCode()const
+{
+	return code_;
+}
+
+bool DeleteDeviceGroupResult::getSuccess()const
+{
+	return success_;
+}
+

+ 60 - 0
iot/src/model/ForceSetDeviceGroupTagRequest.cc

@@ -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.
+ */
+
+#include <alibabacloud/iot/model/ForceSetDeviceGroupTagRequest.h>
+
+using AlibabaCloud::Iot::Model::ForceSetDeviceGroupTagRequest;
+
+ForceSetDeviceGroupTagRequest::ForceSetDeviceGroupTagRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "ForceSetDeviceGroupTag")
+{}
+
+ForceSetDeviceGroupTagRequest::~ForceSetDeviceGroupTagRequest()
+{}
+
+std::string ForceSetDeviceGroupTagRequest::getTagString()const
+{
+	return tagString_;
+}
+
+void ForceSetDeviceGroupTagRequest::setTagString(const std::string& tagString)
+{
+	tagString_ = tagString;
+	setParameter("TagString", tagString);
+}
+
+std::string ForceSetDeviceGroupTagRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void ForceSetDeviceGroupTagRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+std::string ForceSetDeviceGroupTagRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void ForceSetDeviceGroupTagRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

+ 66 - 0
iot/src/model/ForceSetDeviceGroupTagResult.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/iot/model/ForceSetDeviceGroupTagResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+ForceSetDeviceGroupTagResult::ForceSetDeviceGroupTagResult() :
+	ServiceResult()
+{}
+
+ForceSetDeviceGroupTagResult::ForceSetDeviceGroupTagResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ForceSetDeviceGroupTagResult::~ForceSetDeviceGroupTagResult()
+{}
+
+void ForceSetDeviceGroupTagResult::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 ForceSetDeviceGroupTagResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string ForceSetDeviceGroupTagResult::getCode()const
+{
+	return code_;
+}
+
+bool ForceSetDeviceGroupTagResult::getSuccess()const
+{
+	return success_;
+}
+

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

@@ -73,6 +73,8 @@ void QueryDeviceDetailResult::parse(const std::string &payload)
 		data_.nodeType = std::stoi(dataNode["NodeType"].asString());
 		data_.nodeType = std::stoi(dataNode["NodeType"].asString());
 	if(!dataNode["Region"].isNull())
 	if(!dataNode["Region"].isNull())
 		data_.region = dataNode["Region"].asString();
 		data_.region = dataNode["Region"].asString();
+	if(!dataNode["Owner"].isNull())
+		data_.owner = dataNode["Owner"].asString() == "true";
 	if(!value["Success"].isNull())
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())
 	if(!value["Code"].isNull())

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

@@ -0,0 +1,49 @@
+/*
+ * 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/QueryDeviceGroupInfoRequest.h>
+
+using AlibabaCloud::Iot::Model::QueryDeviceGroupInfoRequest;
+
+QueryDeviceGroupInfoRequest::QueryDeviceGroupInfoRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "QueryDeviceGroupInfo")
+{}
+
+QueryDeviceGroupInfoRequest::~QueryDeviceGroupInfoRequest()
+{}
+
+std::string QueryDeviceGroupInfoRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void QueryDeviceGroupInfoRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+std::string QueryDeviceGroupInfoRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void QueryDeviceGroupInfoRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

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

@@ -0,0 +1,86 @@
+/*
+ * 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/QueryDeviceGroupInfoResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+QueryDeviceGroupInfoResult::QueryDeviceGroupInfoResult() :
+	ServiceResult()
+{}
+
+QueryDeviceGroupInfoResult::QueryDeviceGroupInfoResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryDeviceGroupInfoResult::~QueryDeviceGroupInfoResult()
+{}
+
+void QueryDeviceGroupInfoResult::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["DeviceCount"].isNull())
+		data_.deviceCount = std::stoi(dataNode["DeviceCount"].asString());
+	if(!dataNode["DeviceActive"].isNull())
+		data_.deviceActive = std::stoi(dataNode["DeviceActive"].asString());
+	if(!dataNode["DeviceOnline"].isNull())
+		data_.deviceOnline = std::stoi(dataNode["DeviceOnline"].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();
+
+}
+
+QueryDeviceGroupInfoResult::Data QueryDeviceGroupInfoResult::getData()const
+{
+	return data_;
+}
+
+std::string QueryDeviceGroupInfoResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string QueryDeviceGroupInfoResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryDeviceGroupInfoResult::getSuccess()const
+{
+	return success_;
+}
+

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

@@ -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.
+ */
+
+#include <alibabacloud/iot/model/QueryDeviceGroupListRequest.h>
+
+using AlibabaCloud::Iot::Model::QueryDeviceGroupListRequest;
+
+QueryDeviceGroupListRequest::QueryDeviceGroupListRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "QueryDeviceGroupList")
+{}
+
+QueryDeviceGroupListRequest::~QueryDeviceGroupListRequest()
+{}
+
+std::string QueryDeviceGroupListRequest::getSuperGroupId()const
+{
+	return superGroupId_;
+}
+
+void QueryDeviceGroupListRequest::setSuperGroupId(const std::string& superGroupId)
+{
+	superGroupId_ = superGroupId;
+	setParameter("SuperGroupId", superGroupId);
+}
+
+int QueryDeviceGroupListRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void QueryDeviceGroupListRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+int QueryDeviceGroupListRequest::getCurrentPage()const
+{
+	return currentPage_;
+}
+
+void QueryDeviceGroupListRequest::setCurrentPage(int currentPage)
+{
+	currentPage_ = currentPage;
+	setParameter("CurrentPage", std::to_string(currentPage));
+}
+
+std::string QueryDeviceGroupListRequest::getGroupName()const
+{
+	return groupName_;
+}
+
+void QueryDeviceGroupListRequest::setGroupName(const std::string& groupName)
+{
+	groupName_ = groupName;
+	setParameter("GroupName", groupName);
+}
+
+std::string QueryDeviceGroupListRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void QueryDeviceGroupListRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

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

@@ -0,0 +1,113 @@
+/*
+ * 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/QueryDeviceGroupListResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+QueryDeviceGroupListResult::QueryDeviceGroupListResult() :
+	ServiceResult()
+{}
+
+QueryDeviceGroupListResult::QueryDeviceGroupListResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryDeviceGroupListResult::~QueryDeviceGroupListResult()
+{}
+
+void QueryDeviceGroupListResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	auto allData = value["Data"]["GroupInfo"];
+	for (auto value : allData)
+	{
+		GroupInfo dataObject;
+		if(!value["GroupId"].isNull())
+			dataObject.groupId = value["GroupId"].asString();
+		if(!value["UtcCreate"].isNull())
+			dataObject.utcCreate = value["UtcCreate"].asString();
+		if(!value["GroupName"].isNull())
+			dataObject.groupName = value["GroupName"].asString();
+		if(!value["GroupDesc"].isNull())
+			dataObject.groupDesc = value["GroupDesc"].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["CurrentPage"].isNull())
+		currentPage_ = std::stoi(value["CurrentPage"].asString());
+	if(!value["PageCount"].isNull())
+		pageCount_ = std::stoi(value["PageCount"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["Total"].isNull())
+		total_ = std::stoi(value["Total"].asString());
+
+}
+
+int QueryDeviceGroupListResult::getPageCount()const
+{
+	return pageCount_;
+}
+
+int QueryDeviceGroupListResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int QueryDeviceGroupListResult::getCurrentPage()const
+{
+	return currentPage_;
+}
+
+int QueryDeviceGroupListResult::getTotal()const
+{
+	return total_;
+}
+
+std::vector<QueryDeviceGroupListResult::GroupInfo> QueryDeviceGroupListResult::getData()const
+{
+	return data_;
+}
+
+std::string QueryDeviceGroupListResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string QueryDeviceGroupListResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryDeviceGroupListResult::getSuccess()const
+{
+	return success_;
+}
+

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

@@ -0,0 +1,49 @@
+/*
+ * 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/QueryDeviceGroupTagListRequest.h>
+
+using AlibabaCloud::Iot::Model::QueryDeviceGroupTagListRequest;
+
+QueryDeviceGroupTagListRequest::QueryDeviceGroupTagListRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "QueryDeviceGroupTagList")
+{}
+
+QueryDeviceGroupTagListRequest::~QueryDeviceGroupTagListRequest()
+{}
+
+std::string QueryDeviceGroupTagListRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void QueryDeviceGroupTagListRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+std::string QueryDeviceGroupTagListRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void QueryDeviceGroupTagListRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

+ 81 - 0
iot/src/model/QueryDeviceGroupTagListResult.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/QueryDeviceGroupTagListResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+QueryDeviceGroupTagListResult::QueryDeviceGroupTagListResult() :
+	ServiceResult()
+{}
+
+QueryDeviceGroupTagListResult::QueryDeviceGroupTagListResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryDeviceGroupTagListResult::~QueryDeviceGroupTagListResult()
+{}
+
+void QueryDeviceGroupTagListResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	auto allData = value["Data"]["GroupTagInfo"];
+	for (auto value : allData)
+	{
+		GroupTagInfo dataObject;
+		if(!value["TagKey"].isNull())
+			dataObject.tagKey = value["TagKey"].asString();
+		if(!value["TagValue"].isNull())
+			dataObject.tagValue = value["TagValue"].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();
+
+}
+
+std::vector<QueryDeviceGroupTagListResult::GroupTagInfo> QueryDeviceGroupTagListResult::getData()const
+{
+	return data_;
+}
+
+std::string QueryDeviceGroupTagListResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string QueryDeviceGroupTagListResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryDeviceGroupTagListResult::getSuccess()const
+{
+	return success_;
+}
+

+ 4 - 0
iot/src/model/QueryProductResult.cc

@@ -67,6 +67,10 @@ void QueryProductResult::parse(const std::string &payload)
 		data_.id2 = dataNode["Id2"].asString() == "true";
 		data_.id2 = dataNode["Id2"].asString() == "true";
 	if(!dataNode["ProtocolType"].isNull())
 	if(!dataNode["ProtocolType"].isNull())
 		data_.protocolType = dataNode["ProtocolType"].asString();
 		data_.protocolType = dataNode["ProtocolType"].asString();
+	if(!dataNode["ProductStatus"].isNull())
+		data_.productStatus = dataNode["ProductStatus"].asString();
+	if(!dataNode["Owner"].isNull())
+		data_.owner = dataNode["Owner"].asString() == "true";
 	if(!value["Success"].isNull())
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())
 	if(!value["Code"].isNull())

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

@@ -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.
+ */
+
+#include <alibabacloud/iot/model/UpdateDeviceGroupRequest.h>
+
+using AlibabaCloud::Iot::Model::UpdateDeviceGroupRequest;
+
+UpdateDeviceGroupRequest::UpdateDeviceGroupRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "UpdateDeviceGroup")
+{}
+
+UpdateDeviceGroupRequest::~UpdateDeviceGroupRequest()
+{}
+
+std::string UpdateDeviceGroupRequest::getGroupDesc()const
+{
+	return groupDesc_;
+}
+
+void UpdateDeviceGroupRequest::setGroupDesc(const std::string& groupDesc)
+{
+	groupDesc_ = groupDesc;
+	setParameter("GroupDesc", groupDesc);
+}
+
+std::string UpdateDeviceGroupRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void UpdateDeviceGroupRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+std::string UpdateDeviceGroupRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void UpdateDeviceGroupRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

+ 66 - 0
iot/src/model/UpdateDeviceGroupResult.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/iot/model/UpdateDeviceGroupResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+UpdateDeviceGroupResult::UpdateDeviceGroupResult() :
+	ServiceResult()
+{}
+
+UpdateDeviceGroupResult::UpdateDeviceGroupResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UpdateDeviceGroupResult::~UpdateDeviceGroupResult()
+{}
+
+void UpdateDeviceGroupResult::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 UpdateDeviceGroupResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string UpdateDeviceGroupResult::getCode()const
+{
+	return code_;
+}
+
+bool UpdateDeviceGroupResult::getSuccess()const
+{
+	return success_;
+}
+