Переглянути джерело

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

Signed-off-by: yixiong.jxy <yixiong.jxy@alibaba-inc.com>
yixiong.jxy 8 роки тому
батько
коміт
1a86503742
45 змінених файлів з 2786 додано та 1 видалено
  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
 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.

+ 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/DeleteTopicRouteTableRequest.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/QueryDeviceEventDataResult.h
 	include/alibabacloud/iot/model/GetDeviceStatusRequest.h
 	include/alibabacloud/iot/model/GetDeviceStatusResult.h
 	include/alibabacloud/iot/model/DeleteDeviceRequest.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/EnableThingResult.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/QueryPageByApplyIdRequest.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/CreateTopicRouteTableResult.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/QueryDevicePropertyDataRequest.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/QueryDevicePropResult.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/QueryDeviceRequest.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/ListRuleResult.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/GetRuleActionRequest.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/GetRuleResult.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/CreateRuleActionRequest.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/BatchRegisterDeviceResult.h
 	include/alibabacloud/iot/model/DeleteRuleActionRequest.h
@@ -146,12 +164,16 @@ set(iot_src
 	src/model/QueryAppDeviceListResult.cc
 	src/model/DeleteTopicRouteTableRequest.cc
 	src/model/DeleteTopicRouteTableResult.cc
+	src/model/QueryDeviceGroupListRequest.cc
+	src/model/QueryDeviceGroupListResult.cc
 	src/model/QueryDeviceEventDataRequest.cc
 	src/model/QueryDeviceEventDataResult.cc
 	src/model/GetDeviceStatusRequest.cc
 	src/model/GetDeviceStatusResult.cc
 	src/model/DeleteDeviceRequest.cc
 	src/model/DeleteDeviceResult.cc
+	src/model/CreateDeviceGroupRequest.cc
+	src/model/CreateDeviceGroupResult.cc
 	src/model/EnableThingRequest.cc
 	src/model/EnableThingResult.cc
 	src/model/RRpcRequest.cc
@@ -164,6 +186,8 @@ set(iot_src
 	src/model/GetThingTopoResult.cc
 	src/model/QueryPageByApplyIdRequest.cc
 	src/model/QueryPageByApplyIdResult.cc
+	src/model/ForceSetDeviceGroupTagRequest.cc
+	src/model/ForceSetDeviceGroupTagResult.cc
 	src/model/CreateTopicRouteTableRequest.cc
 	src/model/CreateTopicRouteTableResult.cc
 	src/model/CreateProductRequest.cc
@@ -172,6 +196,10 @@ set(iot_src
 	src/model/UpdateRuleResult.cc
 	src/model/QueryDevicePropertyDataRequest.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/QueryDevicePropResult.cc
 	src/model/DeleteDevicePropRequest.cc
@@ -208,6 +236,10 @@ set(iot_src
 	src/model/RegisterDeviceResult.cc
 	src/model/QueryDeviceRequest.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/ListRuleResult.cc
 	src/model/QueryTopicRouteTableRequest.cc
@@ -246,6 +278,8 @@ set(iot_src
 	src/model/BatchGetDeviceStateResult.cc
 	src/model/GetRuleActionRequest.cc
 	src/model/GetRuleActionResult.cc
+	src/model/BatchAddDeviceGroupRelationsRequest.cc
+	src/model/BatchAddDeviceGroupRelationsResult.cc
 	src/model/GetRuleRequest.cc
 	src/model/GetRuleResult.cc
 	src/model/GetDeviceShadowRequest.cc
@@ -254,6 +288,8 @@ set(iot_src
 	src/model/GetGatewayBySubDeviceResult.cc
 	src/model/CreateRuleActionRequest.cc
 	src/model/CreateRuleActionResult.cc
+	src/model/QueryDeviceGroupInfoRequest.cc
+	src/model/QueryDeviceGroupInfoResult.cc
 	src/model/BatchRegisterDeviceRequest.cc
 	src/model/BatchRegisterDeviceResult.cc
 	src/model/DeleteRuleActionRequest.cc

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

@@ -26,12 +26,16 @@
 #include "model/QueryAppDeviceListResult.h"
 #include "model/DeleteTopicRouteTableRequest.h"
 #include "model/DeleteTopicRouteTableResult.h"
+#include "model/QueryDeviceGroupListRequest.h"
+#include "model/QueryDeviceGroupListResult.h"
 #include "model/QueryDeviceEventDataRequest.h"
 #include "model/QueryDeviceEventDataResult.h"
 #include "model/GetDeviceStatusRequest.h"
 #include "model/GetDeviceStatusResult.h"
 #include "model/DeleteDeviceRequest.h"
 #include "model/DeleteDeviceResult.h"
+#include "model/CreateDeviceGroupRequest.h"
+#include "model/CreateDeviceGroupResult.h"
 #include "model/EnableThingRequest.h"
 #include "model/EnableThingResult.h"
 #include "model/RRpcRequest.h"
@@ -44,6 +48,8 @@
 #include "model/GetThingTopoResult.h"
 #include "model/QueryPageByApplyIdRequest.h"
 #include "model/QueryPageByApplyIdResult.h"
+#include "model/ForceSetDeviceGroupTagRequest.h"
+#include "model/ForceSetDeviceGroupTagResult.h"
 #include "model/CreateTopicRouteTableRequest.h"
 #include "model/CreateTopicRouteTableResult.h"
 #include "model/CreateProductRequest.h"
@@ -52,6 +58,10 @@
 #include "model/UpdateRuleResult.h"
 #include "model/QueryDevicePropertyDataRequest.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/QueryDevicePropResult.h"
 #include "model/DeleteDevicePropRequest.h"
@@ -88,6 +98,10 @@
 #include "model/RegisterDeviceResult.h"
 #include "model/QueryDeviceRequest.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/ListRuleResult.h"
 #include "model/QueryTopicRouteTableRequest.h"
@@ -126,6 +140,8 @@
 #include "model/BatchGetDeviceStateResult.h"
 #include "model/GetRuleActionRequest.h"
 #include "model/GetRuleActionResult.h"
+#include "model/BatchAddDeviceGroupRelationsRequest.h"
+#include "model/BatchAddDeviceGroupRelationsResult.h"
 #include "model/GetRuleRequest.h"
 #include "model/GetRuleResult.h"
 #include "model/GetDeviceShadowRequest.h"
@@ -134,6 +150,8 @@
 #include "model/GetGatewayBySubDeviceResult.h"
 #include "model/CreateRuleActionRequest.h"
 #include "model/CreateRuleActionResult.h"
+#include "model/QueryDeviceGroupInfoRequest.h"
+#include "model/QueryDeviceGroupInfoResult.h"
 #include "model/BatchRegisterDeviceRequest.h"
 #include "model/BatchRegisterDeviceResult.h"
 #include "model/DeleteRuleActionRequest.h"
@@ -155,6 +173,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteTopicRouteTableResult> DeleteTopicRouteTableOutcome;
 			typedef std::future<DeleteTopicRouteTableOutcome> DeleteTopicRouteTableOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteTopicRouteTableRequest&, const DeleteTopicRouteTableOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTopicRouteTableAsyncHandler;
+			typedef Outcome<Error, Model::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 std::future<QueryDeviceEventDataOutcome> QueryDeviceEventDataOutcomeCallable;
 			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 std::future<DeleteDeviceOutcome> DeleteDeviceOutcomeCallable;
 			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 std::future<EnableThingOutcome> EnableThingOutcomeCallable;
 			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 std::future<QueryPageByApplyIdOutcome> QueryPageByApplyIdOutcomeCallable;
 			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 std::future<CreateTopicRouteTableOutcome> CreateTopicRouteTableOutcomeCallable;
 			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 std::future<QueryDevicePropertyDataOutcome> QueryDevicePropertyDataOutcomeCallable;
 			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 std::future<QueryDevicePropOutcome> QueryDevicePropOutcomeCallable;
 			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 std::future<QueryDeviceOutcome> QueryDeviceOutcomeCallable;
 			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 std::future<ListRuleOutcome> ListRuleOutcomeCallable;
 			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 std::future<GetRuleActionOutcome> GetRuleActionOutcomeCallable;
 			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 std::future<GetRuleOutcome> GetRuleOutcomeCallable;
 			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 std::future<CreateRuleActionOutcome> CreateRuleActionOutcomeCallable;
 			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 std::future<BatchRegisterDeviceOutcome> BatchRegisterDeviceOutcomeCallable;
 			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;
 			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;
+			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;
 			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;
@@ -346,6 +394,9 @@ namespace AlibabaCloud
 			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;
 			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;
 			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;
@@ -364,6 +415,9 @@ namespace AlibabaCloud
 			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;
 			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;
 			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;
@@ -376,6 +430,12 @@ namespace AlibabaCloud
 			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;
 			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;
 			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;
@@ -430,6 +490,12 @@ namespace AlibabaCloud
 			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;
 			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;
 			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;
@@ -487,6 +553,9 @@ namespace AlibabaCloud
 			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;
 			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;
 			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;
@@ -499,6 +568,9 @@ namespace AlibabaCloud
 			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;
 			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;
 			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;

+ 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
 				{
 					std::string status;
+					bool owner;
 					std::string productName;
 					std::string deviceSecret;
 					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:
 				struct Data
 				{
+					bool owner;
 					std::string description;
 					std::string productName;
 					std::string aliyunCommodityCode;
+					std::string productStatus;
 					std::string productSecret;
 					long gmtCreate;
 					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();
 }
 
+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
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -231,6 +267,42 @@ IotClient::DeleteDeviceOutcomeCallable IotClient::deleteDeviceCallable(const Del
 	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
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -447,6 +519,42 @@ IotClient::QueryPageByApplyIdOutcomeCallable IotClient::queryPageByApplyIdCallab
 	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
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -591,6 +699,78 @@ IotClient::QueryDevicePropertyDataOutcomeCallable IotClient::queryDeviceProperty
 	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
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1239,6 +1419,78 @@ IotClient::QueryDeviceOutcomeCallable IotClient::queryDeviceCallable(const Query
 	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
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1923,6 +2175,42 @@ IotClient::GetRuleActionOutcomeCallable IotClient::getRuleActionCallable(const G
 	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
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2067,6 +2355,42 @@ IotClient::CreateRuleActionOutcomeCallable IotClient::createRuleActionCallable(c
 	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
 {
 	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());
 	if(!dataNode["Region"].isNull())
 		data_.region = dataNode["Region"].asString();
+	if(!dataNode["Owner"].isNull())
+		data_.owner = dataNode["Owner"].asString() == "true";
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	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";
 	if(!dataNode["ProtocolType"].isNull())
 		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())
 		success_ = value["Success"].asString() == "true";
 	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_;
+}
+