Procházet zdrojové kódy

Add IoT Studio BatchBindDevicesIntoProject API.

sdk-team před 5 roky
rodič
revize
7964674af1
57 změnil soubory, kde provedl 2020 přidání a 481 odebrání
  1. 6 0
      CHANGELOG
  2. 28 12
      iot/CMakeLists.txt
  3. 56 24
      iot/include/alibabacloud/iot/IotClient.h
  4. 66 0
      iot/include/alibabacloud/iot/model/BatchBindDevicesIntoProjectRequest.h
  5. 57 0
      iot/include/alibabacloud/iot/model/BatchBindDevicesIntoProjectResult.h
  6. 12 15
      iot/include/alibabacloud/iot/model/BatchBindProductsIntoProjectRequest.h
  7. 57 0
      iot/include/alibabacloud/iot/model/BatchBindProductsIntoProjectResult.h
  8. 6 0
      iot/include/alibabacloud/iot/model/BatchCheckDeviceNamesRequest.h
  9. 6 0
      iot/include/alibabacloud/iot/model/BatchRegisterDeviceRequest.h
  10. 6 0
      iot/include/alibabacloud/iot/model/BatchRegisterDeviceWithApplyIdRequest.h
  11. 66 0
      iot/include/alibabacloud/iot/model/BatchUnbindProjectDevicesRequest.h
  12. 9 7
      iot/include/alibabacloud/iot/model/BatchUnbindProjectDevicesResult.h
  13. 12 12
      iot/include/alibabacloud/iot/model/BatchUnbindProjectProductsRequest.h
  14. 57 0
      iot/include/alibabacloud/iot/model/BatchUnbindProjectProductsResult.h
  15. 60 0
      iot/include/alibabacloud/iot/model/CreateRulengDistributeJobRequest.h
  16. 7 7
      iot/include/alibabacloud/iot/model/CreateRulengDistributeJobResult.h
  17. 6 0
      iot/include/alibabacloud/iot/model/DisableThingRequest.h
  18. 6 0
      iot/include/alibabacloud/iot/model/EnableThingRequest.h
  19. 48 0
      iot/include/alibabacloud/iot/model/OpenIotServiceRequest.h
  20. 51 0
      iot/include/alibabacloud/iot/model/OpenIotServiceResult.h
  21. 6 0
      iot/include/alibabacloud/iot/model/QueryBatchRegisterDeviceStatusRequest.h
  22. 6 0
      iot/include/alibabacloud/iot/model/QueryDeviceRequest.h
  23. 6 0
      iot/include/alibabacloud/iot/model/QueryPageByApplyIdRequest.h
  24. 6 0
      iot/include/alibabacloud/iot/model/QueryProductListRequest.h
  25. 3 0
      iot/include/alibabacloud/iot/model/SpeechByCombinationRequest.h
  26. 15 9
      iot/include/alibabacloud/iot/model/SyncSpeechByCombinationRequest.h
  27. 9 14
      iot/include/alibabacloud/iot/model/SyncSpeechByCombinationResult.h
  28. 6 0
      iot/include/alibabacloud/iot/model/UpdateProductRequest.h
  29. 225 81
      iot/src/IotClient.cc
  30. 89 0
      iot/src/model/BatchBindDevicesIntoProjectRequest.cc
  31. 72 0
      iot/src/model/BatchBindDevicesIntoProjectResult.cc
  32. 86 0
      iot/src/model/BatchBindProductsIntoProjectRequest.cc
  33. 72 0
      iot/src/model/BatchBindProductsIntoProjectResult.cc
  34. 22 0
      iot/src/model/BatchCheckDeviceNamesRequest.cc
  35. 22 0
      iot/src/model/BatchRegisterDeviceRequest.cc
  36. 22 0
      iot/src/model/BatchRegisterDeviceWithApplyIdRequest.cc
  37. 89 0
      iot/src/model/BatchUnbindProjectDevicesRequest.cc
  38. 15 8
      iot/src/model/BatchUnbindProjectDevicesResult.cc
  39. 86 0
      iot/src/model/BatchUnbindProjectProductsRequest.cc
  40. 72 0
      iot/src/model/BatchUnbindProjectProductsResult.cc
  41. 84 0
      iot/src/model/CreateRulengDistributeJobRequest.cc
  42. 8 8
      iot/src/model/CreateRulengDistributeJobResult.cc
  43. 0 84
      iot/src/model/DeleteClientIdsRequest.cc
  44. 22 0
      iot/src/model/DisableThingRequest.cc
  45. 22 0
      iot/src/model/EnableThingRequest.cc
  46. 40 0
      iot/src/model/OpenIotServiceRequest.cc
  47. 51 0
      iot/src/model/OpenIotServiceResult.cc
  48. 22 0
      iot/src/model/QueryBatchRegisterDeviceStatusRequest.cc
  49. 0 84
      iot/src/model/QueryClientIdsRequest.cc
  50. 22 0
      iot/src/model/QueryDeviceRequest.cc
  51. 22 0
      iot/src/model/QueryPageByApplyIdRequest.cc
  52. 22 0
      iot/src/model/QueryProductListRequest.cc
  53. 11 0
      iot/src/model/SpeechByCombinationRequest.cc
  54. 108 0
      iot/src/model/SyncSpeechByCombinationRequest.cc
  55. 13 21
      iot/src/model/SyncSpeechByCombinationResult.cc
  56. 0 95
      iot/src/model/TransformClientIdRequest.cc
  57. 22 0
      iot/src/model/UpdateProductRequest.cc

+ 6 - 0
CHANGELOG

@@ -1,3 +1,9 @@
+2021-02-07 Version: patch
+- Add IoT Studio BatchBindDevicesIntoProject API.
+- Add IoT Studio BatchBindProductsIntoProject API.
+- Add IoT Studio BatchUnbindProjectDevices API.
+- Add IoT Studio BatchUnbindProjectProducts API.
+
 2021-02-07 Version: patch
 - Support patch manager apis.
 

+ 28 - 12
iot/CMakeLists.txt

@@ -27,6 +27,10 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/BatchAddThingTopoResult.h
 	include/alibabacloud/iot/model/BatchBindDeviceToEdgeInstanceWithDriverRequest.h
 	include/alibabacloud/iot/model/BatchBindDeviceToEdgeInstanceWithDriverResult.h
+	include/alibabacloud/iot/model/BatchBindDevicesIntoProjectRequest.h
+	include/alibabacloud/iot/model/BatchBindDevicesIntoProjectResult.h
+	include/alibabacloud/iot/model/BatchBindProductsIntoProjectRequest.h
+	include/alibabacloud/iot/model/BatchBindProductsIntoProjectResult.h
 	include/alibabacloud/iot/model/BatchCheckDeviceNamesRequest.h
 	include/alibabacloud/iot/model/BatchCheckDeviceNamesResult.h
 	include/alibabacloud/iot/model/BatchClearEdgeInstanceDeviceConfigRequest.h
@@ -65,6 +69,10 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/BatchSetEdgeInstanceDeviceConfigResult.h
 	include/alibabacloud/iot/model/BatchUnbindDeviceFromEdgeInstanceRequest.h
 	include/alibabacloud/iot/model/BatchUnbindDeviceFromEdgeInstanceResult.h
+	include/alibabacloud/iot/model/BatchUnbindProjectDevicesRequest.h
+	include/alibabacloud/iot/model/BatchUnbindProjectDevicesResult.h
+	include/alibabacloud/iot/model/BatchUnbindProjectProductsRequest.h
+	include/alibabacloud/iot/model/BatchUnbindProjectProductsResult.h
 	include/alibabacloud/iot/model/BatchUpdateDeviceNicknameRequest.h
 	include/alibabacloud/iot/model/BatchUpdateDeviceNicknameResult.h
 	include/alibabacloud/iot/model/BindApplicationToEdgeInstanceRequest.h
@@ -139,6 +147,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/CreateRuleResult.h
 	include/alibabacloud/iot/model/CreateRuleActionRequest.h
 	include/alibabacloud/iot/model/CreateRuleActionResult.h
+	include/alibabacloud/iot/model/CreateRulengDistributeJobRequest.h
+	include/alibabacloud/iot/model/CreateRulengDistributeJobResult.h
 	include/alibabacloud/iot/model/CreateSceneRuleRequest.h
 	include/alibabacloud/iot/model/CreateSceneRuleResult.h
 	include/alibabacloud/iot/model/CreateSubscribeRelationRequest.h
@@ -149,8 +159,6 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/CreateThingScriptResult.h
 	include/alibabacloud/iot/model/CreateTopicRouteTableRequest.h
 	include/alibabacloud/iot/model/CreateTopicRouteTableResult.h
-	include/alibabacloud/iot/model/DeleteClientIdsRequest.h
-	include/alibabacloud/iot/model/DeleteClientIdsResult.h
 	include/alibabacloud/iot/model/DeleteConsumerGroupRequest.h
 	include/alibabacloud/iot/model/DeleteConsumerGroupResult.h
 	include/alibabacloud/iot/model/DeleteConsumerGroupSubscribeRelationRequest.h
@@ -289,6 +297,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/ListThingTemplatesResult.h
 	include/alibabacloud/iot/model/NotifyAddThingTopoRequest.h
 	include/alibabacloud/iot/model/NotifyAddThingTopoResult.h
+	include/alibabacloud/iot/model/OpenIotServiceRequest.h
+	include/alibabacloud/iot/model/OpenIotServiceResult.h
 	include/alibabacloud/iot/model/PubRequest.h
 	include/alibabacloud/iot/model/PubResult.h
 	include/alibabacloud/iot/model/PubBroadcastRequest.h
@@ -301,8 +311,6 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/QueryBatchRegisterDeviceStatusResult.h
 	include/alibabacloud/iot/model/QueryCertUrlByApplyIdRequest.h
 	include/alibabacloud/iot/model/QueryCertUrlByApplyIdResult.h
-	include/alibabacloud/iot/model/QueryClientIdsRequest.h
-	include/alibabacloud/iot/model/QueryClientIdsResult.h
 	include/alibabacloud/iot/model/QueryConsumerGroupByGroupIdRequest.h
 	include/alibabacloud/iot/model/QueryConsumerGroupByGroupIdResult.h
 	include/alibabacloud/iot/model/QueryConsumerGroupListRequest.h
@@ -463,8 +471,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/StartRuleResult.h
 	include/alibabacloud/iot/model/StopRuleRequest.h
 	include/alibabacloud/iot/model/StopRuleResult.h
-	include/alibabacloud/iot/model/TransformClientIdRequest.h
-	include/alibabacloud/iot/model/TransformClientIdResult.h
+	include/alibabacloud/iot/model/SyncSpeechByCombinationRequest.h
+	include/alibabacloud/iot/model/SyncSpeechByCombinationResult.h
 	include/alibabacloud/iot/model/TriggerSceneRuleRequest.h
 	include/alibabacloud/iot/model/TriggerSceneRuleResult.h
 	include/alibabacloud/iot/model/UnbindApplicationFromEdgeInstanceRequest.h
@@ -522,6 +530,10 @@ set(iot_src
 	src/model/BatchAddThingTopoResult.cc
 	src/model/BatchBindDeviceToEdgeInstanceWithDriverRequest.cc
 	src/model/BatchBindDeviceToEdgeInstanceWithDriverResult.cc
+	src/model/BatchBindDevicesIntoProjectRequest.cc
+	src/model/BatchBindDevicesIntoProjectResult.cc
+	src/model/BatchBindProductsIntoProjectRequest.cc
+	src/model/BatchBindProductsIntoProjectResult.cc
 	src/model/BatchCheckDeviceNamesRequest.cc
 	src/model/BatchCheckDeviceNamesResult.cc
 	src/model/BatchClearEdgeInstanceDeviceConfigRequest.cc
@@ -560,6 +572,10 @@ set(iot_src
 	src/model/BatchSetEdgeInstanceDeviceConfigResult.cc
 	src/model/BatchUnbindDeviceFromEdgeInstanceRequest.cc
 	src/model/BatchUnbindDeviceFromEdgeInstanceResult.cc
+	src/model/BatchUnbindProjectDevicesRequest.cc
+	src/model/BatchUnbindProjectDevicesResult.cc
+	src/model/BatchUnbindProjectProductsRequest.cc
+	src/model/BatchUnbindProjectProductsResult.cc
 	src/model/BatchUpdateDeviceNicknameRequest.cc
 	src/model/BatchUpdateDeviceNicknameResult.cc
 	src/model/BindApplicationToEdgeInstanceRequest.cc
@@ -634,6 +650,8 @@ set(iot_src
 	src/model/CreateRuleResult.cc
 	src/model/CreateRuleActionRequest.cc
 	src/model/CreateRuleActionResult.cc
+	src/model/CreateRulengDistributeJobRequest.cc
+	src/model/CreateRulengDistributeJobResult.cc
 	src/model/CreateSceneRuleRequest.cc
 	src/model/CreateSceneRuleResult.cc
 	src/model/CreateSubscribeRelationRequest.cc
@@ -644,8 +662,6 @@ set(iot_src
 	src/model/CreateThingScriptResult.cc
 	src/model/CreateTopicRouteTableRequest.cc
 	src/model/CreateTopicRouteTableResult.cc
-	src/model/DeleteClientIdsRequest.cc
-	src/model/DeleteClientIdsResult.cc
 	src/model/DeleteConsumerGroupRequest.cc
 	src/model/DeleteConsumerGroupResult.cc
 	src/model/DeleteConsumerGroupSubscribeRelationRequest.cc
@@ -784,6 +800,8 @@ set(iot_src
 	src/model/ListThingTemplatesResult.cc
 	src/model/NotifyAddThingTopoRequest.cc
 	src/model/NotifyAddThingTopoResult.cc
+	src/model/OpenIotServiceRequest.cc
+	src/model/OpenIotServiceResult.cc
 	src/model/PubRequest.cc
 	src/model/PubResult.cc
 	src/model/PubBroadcastRequest.cc
@@ -796,8 +814,6 @@ set(iot_src
 	src/model/QueryBatchRegisterDeviceStatusResult.cc
 	src/model/QueryCertUrlByApplyIdRequest.cc
 	src/model/QueryCertUrlByApplyIdResult.cc
-	src/model/QueryClientIdsRequest.cc
-	src/model/QueryClientIdsResult.cc
 	src/model/QueryConsumerGroupByGroupIdRequest.cc
 	src/model/QueryConsumerGroupByGroupIdResult.cc
 	src/model/QueryConsumerGroupListRequest.cc
@@ -958,8 +974,8 @@ set(iot_src
 	src/model/StartRuleResult.cc
 	src/model/StopRuleRequest.cc
 	src/model/StopRuleResult.cc
-	src/model/TransformClientIdRequest.cc
-	src/model/TransformClientIdResult.cc
+	src/model/SyncSpeechByCombinationRequest.cc
+	src/model/SyncSpeechByCombinationResult.cc
 	src/model/TriggerSceneRuleRequest.cc
 	src/model/TriggerSceneRuleResult.cc
 	src/model/UnbindApplicationFromEdgeInstanceRequest.cc

+ 56 - 24
iot/include/alibabacloud/iot/IotClient.h

@@ -28,6 +28,10 @@
 #include "model/BatchAddThingTopoResult.h"
 #include "model/BatchBindDeviceToEdgeInstanceWithDriverRequest.h"
 #include "model/BatchBindDeviceToEdgeInstanceWithDriverResult.h"
+#include "model/BatchBindDevicesIntoProjectRequest.h"
+#include "model/BatchBindDevicesIntoProjectResult.h"
+#include "model/BatchBindProductsIntoProjectRequest.h"
+#include "model/BatchBindProductsIntoProjectResult.h"
 #include "model/BatchCheckDeviceNamesRequest.h"
 #include "model/BatchCheckDeviceNamesResult.h"
 #include "model/BatchClearEdgeInstanceDeviceConfigRequest.h"
@@ -66,6 +70,10 @@
 #include "model/BatchSetEdgeInstanceDeviceConfigResult.h"
 #include "model/BatchUnbindDeviceFromEdgeInstanceRequest.h"
 #include "model/BatchUnbindDeviceFromEdgeInstanceResult.h"
+#include "model/BatchUnbindProjectDevicesRequest.h"
+#include "model/BatchUnbindProjectDevicesResult.h"
+#include "model/BatchUnbindProjectProductsRequest.h"
+#include "model/BatchUnbindProjectProductsResult.h"
 #include "model/BatchUpdateDeviceNicknameRequest.h"
 #include "model/BatchUpdateDeviceNicknameResult.h"
 #include "model/BindApplicationToEdgeInstanceRequest.h"
@@ -140,6 +148,8 @@
 #include "model/CreateRuleResult.h"
 #include "model/CreateRuleActionRequest.h"
 #include "model/CreateRuleActionResult.h"
+#include "model/CreateRulengDistributeJobRequest.h"
+#include "model/CreateRulengDistributeJobResult.h"
 #include "model/CreateSceneRuleRequest.h"
 #include "model/CreateSceneRuleResult.h"
 #include "model/CreateSubscribeRelationRequest.h"
@@ -150,8 +160,6 @@
 #include "model/CreateThingScriptResult.h"
 #include "model/CreateTopicRouteTableRequest.h"
 #include "model/CreateTopicRouteTableResult.h"
-#include "model/DeleteClientIdsRequest.h"
-#include "model/DeleteClientIdsResult.h"
 #include "model/DeleteConsumerGroupRequest.h"
 #include "model/DeleteConsumerGroupResult.h"
 #include "model/DeleteConsumerGroupSubscribeRelationRequest.h"
@@ -290,6 +298,8 @@
 #include "model/ListThingTemplatesResult.h"
 #include "model/NotifyAddThingTopoRequest.h"
 #include "model/NotifyAddThingTopoResult.h"
+#include "model/OpenIotServiceRequest.h"
+#include "model/OpenIotServiceResult.h"
 #include "model/PubRequest.h"
 #include "model/PubResult.h"
 #include "model/PubBroadcastRequest.h"
@@ -302,8 +312,6 @@
 #include "model/QueryBatchRegisterDeviceStatusResult.h"
 #include "model/QueryCertUrlByApplyIdRequest.h"
 #include "model/QueryCertUrlByApplyIdResult.h"
-#include "model/QueryClientIdsRequest.h"
-#include "model/QueryClientIdsResult.h"
 #include "model/QueryConsumerGroupByGroupIdRequest.h"
 #include "model/QueryConsumerGroupByGroupIdResult.h"
 #include "model/QueryConsumerGroupListRequest.h"
@@ -464,8 +472,8 @@
 #include "model/StartRuleResult.h"
 #include "model/StopRuleRequest.h"
 #include "model/StopRuleResult.h"
-#include "model/TransformClientIdRequest.h"
-#include "model/TransformClientIdResult.h"
+#include "model/SyncSpeechByCombinationRequest.h"
+#include "model/SyncSpeechByCombinationResult.h"
 #include "model/TriggerSceneRuleRequest.h"
 #include "model/TriggerSceneRuleResult.h"
 #include "model/UnbindApplicationFromEdgeInstanceRequest.h"
@@ -532,6 +540,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::BatchBindDeviceToEdgeInstanceWithDriverResult> BatchBindDeviceToEdgeInstanceWithDriverOutcome;
 			typedef std::future<BatchBindDeviceToEdgeInstanceWithDriverOutcome> BatchBindDeviceToEdgeInstanceWithDriverOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::BatchBindDeviceToEdgeInstanceWithDriverRequest&, const BatchBindDeviceToEdgeInstanceWithDriverOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchBindDeviceToEdgeInstanceWithDriverAsyncHandler;
+			typedef Outcome<Error, Model::BatchBindDevicesIntoProjectResult> BatchBindDevicesIntoProjectOutcome;
+			typedef std::future<BatchBindDevicesIntoProjectOutcome> BatchBindDevicesIntoProjectOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::BatchBindDevicesIntoProjectRequest&, const BatchBindDevicesIntoProjectOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchBindDevicesIntoProjectAsyncHandler;
+			typedef Outcome<Error, Model::BatchBindProductsIntoProjectResult> BatchBindProductsIntoProjectOutcome;
+			typedef std::future<BatchBindProductsIntoProjectOutcome> BatchBindProductsIntoProjectOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::BatchBindProductsIntoProjectRequest&, const BatchBindProductsIntoProjectOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchBindProductsIntoProjectAsyncHandler;
 			typedef Outcome<Error, Model::BatchCheckDeviceNamesResult> BatchCheckDeviceNamesOutcome;
 			typedef std::future<BatchCheckDeviceNamesOutcome> BatchCheckDeviceNamesOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::BatchCheckDeviceNamesRequest&, const BatchCheckDeviceNamesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchCheckDeviceNamesAsyncHandler;
@@ -589,6 +603,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::BatchUnbindDeviceFromEdgeInstanceResult> BatchUnbindDeviceFromEdgeInstanceOutcome;
 			typedef std::future<BatchUnbindDeviceFromEdgeInstanceOutcome> BatchUnbindDeviceFromEdgeInstanceOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::BatchUnbindDeviceFromEdgeInstanceRequest&, const BatchUnbindDeviceFromEdgeInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchUnbindDeviceFromEdgeInstanceAsyncHandler;
+			typedef Outcome<Error, Model::BatchUnbindProjectDevicesResult> BatchUnbindProjectDevicesOutcome;
+			typedef std::future<BatchUnbindProjectDevicesOutcome> BatchUnbindProjectDevicesOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::BatchUnbindProjectDevicesRequest&, const BatchUnbindProjectDevicesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchUnbindProjectDevicesAsyncHandler;
+			typedef Outcome<Error, Model::BatchUnbindProjectProductsResult> BatchUnbindProjectProductsOutcome;
+			typedef std::future<BatchUnbindProjectProductsOutcome> BatchUnbindProjectProductsOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::BatchUnbindProjectProductsRequest&, const BatchUnbindProjectProductsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchUnbindProjectProductsAsyncHandler;
 			typedef Outcome<Error, Model::BatchUpdateDeviceNicknameResult> BatchUpdateDeviceNicknameOutcome;
 			typedef std::future<BatchUpdateDeviceNicknameOutcome> BatchUpdateDeviceNicknameOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::BatchUpdateDeviceNicknameRequest&, const BatchUpdateDeviceNicknameOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchUpdateDeviceNicknameAsyncHandler;
@@ -700,6 +720,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::CreateRulengDistributeJobResult> CreateRulengDistributeJobOutcome;
+			typedef std::future<CreateRulengDistributeJobOutcome> CreateRulengDistributeJobOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::CreateRulengDistributeJobRequest&, const CreateRulengDistributeJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateRulengDistributeJobAsyncHandler;
 			typedef Outcome<Error, Model::CreateSceneRuleResult> CreateSceneRuleOutcome;
 			typedef std::future<CreateSceneRuleOutcome> CreateSceneRuleOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CreateSceneRuleRequest&, const CreateSceneRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateSceneRuleAsyncHandler;
@@ -715,9 +738,6 @@ namespace AlibabaCloud
 			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;
-			typedef Outcome<Error, Model::DeleteClientIdsResult> DeleteClientIdsOutcome;
-			typedef std::future<DeleteClientIdsOutcome> DeleteClientIdsOutcomeCallable;
-			typedef std::function<void(const IotClient*, const Model::DeleteClientIdsRequest&, const DeleteClientIdsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteClientIdsAsyncHandler;
 			typedef Outcome<Error, Model::DeleteConsumerGroupResult> DeleteConsumerGroupOutcome;
 			typedef std::future<DeleteConsumerGroupOutcome> DeleteConsumerGroupOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteConsumerGroupRequest&, const DeleteConsumerGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteConsumerGroupAsyncHandler;
@@ -925,6 +945,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::NotifyAddThingTopoResult> NotifyAddThingTopoOutcome;
 			typedef std::future<NotifyAddThingTopoOutcome> NotifyAddThingTopoOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::NotifyAddThingTopoRequest&, const NotifyAddThingTopoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> NotifyAddThingTopoAsyncHandler;
+			typedef Outcome<Error, Model::OpenIotServiceResult> OpenIotServiceOutcome;
+			typedef std::future<OpenIotServiceOutcome> OpenIotServiceOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::OpenIotServiceRequest&, const OpenIotServiceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> OpenIotServiceAsyncHandler;
 			typedef Outcome<Error, Model::PubResult> PubOutcome;
 			typedef std::future<PubOutcome> PubOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::PubRequest&, const PubOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> PubAsyncHandler;
@@ -943,9 +966,6 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::QueryCertUrlByApplyIdResult> QueryCertUrlByApplyIdOutcome;
 			typedef std::future<QueryCertUrlByApplyIdOutcome> QueryCertUrlByApplyIdOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryCertUrlByApplyIdRequest&, const QueryCertUrlByApplyIdOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryCertUrlByApplyIdAsyncHandler;
-			typedef Outcome<Error, Model::QueryClientIdsResult> QueryClientIdsOutcome;
-			typedef std::future<QueryClientIdsOutcome> QueryClientIdsOutcomeCallable;
-			typedef std::function<void(const IotClient*, const Model::QueryClientIdsRequest&, const QueryClientIdsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryClientIdsAsyncHandler;
 			typedef Outcome<Error, Model::QueryConsumerGroupByGroupIdResult> QueryConsumerGroupByGroupIdOutcome;
 			typedef std::future<QueryConsumerGroupByGroupIdOutcome> QueryConsumerGroupByGroupIdOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryConsumerGroupByGroupIdRequest&, const QueryConsumerGroupByGroupIdOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryConsumerGroupByGroupIdAsyncHandler;
@@ -1186,9 +1206,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::StopRuleResult> StopRuleOutcome;
 			typedef std::future<StopRuleOutcome> StopRuleOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::StopRuleRequest&, const StopRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StopRuleAsyncHandler;
-			typedef Outcome<Error, Model::TransformClientIdResult> TransformClientIdOutcome;
-			typedef std::future<TransformClientIdOutcome> TransformClientIdOutcomeCallable;
-			typedef std::function<void(const IotClient*, const Model::TransformClientIdRequest&, const TransformClientIdOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> TransformClientIdAsyncHandler;
+			typedef Outcome<Error, Model::SyncSpeechByCombinationResult> SyncSpeechByCombinationOutcome;
+			typedef std::future<SyncSpeechByCombinationOutcome> SyncSpeechByCombinationOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::SyncSpeechByCombinationRequest&, const SyncSpeechByCombinationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SyncSpeechByCombinationAsyncHandler;
 			typedef Outcome<Error, Model::TriggerSceneRuleResult> TriggerSceneRuleOutcome;
 			typedef std::future<TriggerSceneRuleOutcome> TriggerSceneRuleOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::TriggerSceneRuleRequest&, const TriggerSceneRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> TriggerSceneRuleAsyncHandler;
@@ -1275,6 +1295,12 @@ namespace AlibabaCloud
 			BatchBindDeviceToEdgeInstanceWithDriverOutcome batchBindDeviceToEdgeInstanceWithDriver(const Model::BatchBindDeviceToEdgeInstanceWithDriverRequest &request)const;
 			void batchBindDeviceToEdgeInstanceWithDriverAsync(const Model::BatchBindDeviceToEdgeInstanceWithDriverRequest& request, const BatchBindDeviceToEdgeInstanceWithDriverAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			BatchBindDeviceToEdgeInstanceWithDriverOutcomeCallable batchBindDeviceToEdgeInstanceWithDriverCallable(const Model::BatchBindDeviceToEdgeInstanceWithDriverRequest& request) const;
+			BatchBindDevicesIntoProjectOutcome batchBindDevicesIntoProject(const Model::BatchBindDevicesIntoProjectRequest &request)const;
+			void batchBindDevicesIntoProjectAsync(const Model::BatchBindDevicesIntoProjectRequest& request, const BatchBindDevicesIntoProjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			BatchBindDevicesIntoProjectOutcomeCallable batchBindDevicesIntoProjectCallable(const Model::BatchBindDevicesIntoProjectRequest& request) const;
+			BatchBindProductsIntoProjectOutcome batchBindProductsIntoProject(const Model::BatchBindProductsIntoProjectRequest &request)const;
+			void batchBindProductsIntoProjectAsync(const Model::BatchBindProductsIntoProjectRequest& request, const BatchBindProductsIntoProjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			BatchBindProductsIntoProjectOutcomeCallable batchBindProductsIntoProjectCallable(const Model::BatchBindProductsIntoProjectRequest& request) const;
 			BatchCheckDeviceNamesOutcome batchCheckDeviceNames(const Model::BatchCheckDeviceNamesRequest &request)const;
 			void batchCheckDeviceNamesAsync(const Model::BatchCheckDeviceNamesRequest& request, const BatchCheckDeviceNamesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			BatchCheckDeviceNamesOutcomeCallable batchCheckDeviceNamesCallable(const Model::BatchCheckDeviceNamesRequest& request) const;
@@ -1332,6 +1358,12 @@ namespace AlibabaCloud
 			BatchUnbindDeviceFromEdgeInstanceOutcome batchUnbindDeviceFromEdgeInstance(const Model::BatchUnbindDeviceFromEdgeInstanceRequest &request)const;
 			void batchUnbindDeviceFromEdgeInstanceAsync(const Model::BatchUnbindDeviceFromEdgeInstanceRequest& request, const BatchUnbindDeviceFromEdgeInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			BatchUnbindDeviceFromEdgeInstanceOutcomeCallable batchUnbindDeviceFromEdgeInstanceCallable(const Model::BatchUnbindDeviceFromEdgeInstanceRequest& request) const;
+			BatchUnbindProjectDevicesOutcome batchUnbindProjectDevices(const Model::BatchUnbindProjectDevicesRequest &request)const;
+			void batchUnbindProjectDevicesAsync(const Model::BatchUnbindProjectDevicesRequest& request, const BatchUnbindProjectDevicesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			BatchUnbindProjectDevicesOutcomeCallable batchUnbindProjectDevicesCallable(const Model::BatchUnbindProjectDevicesRequest& request) const;
+			BatchUnbindProjectProductsOutcome batchUnbindProjectProducts(const Model::BatchUnbindProjectProductsRequest &request)const;
+			void batchUnbindProjectProductsAsync(const Model::BatchUnbindProjectProductsRequest& request, const BatchUnbindProjectProductsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			BatchUnbindProjectProductsOutcomeCallable batchUnbindProjectProductsCallable(const Model::BatchUnbindProjectProductsRequest& request) const;
 			BatchUpdateDeviceNicknameOutcome batchUpdateDeviceNickname(const Model::BatchUpdateDeviceNicknameRequest &request)const;
 			void batchUpdateDeviceNicknameAsync(const Model::BatchUpdateDeviceNicknameRequest& request, const BatchUpdateDeviceNicknameAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			BatchUpdateDeviceNicknameOutcomeCallable batchUpdateDeviceNicknameCallable(const Model::BatchUpdateDeviceNicknameRequest& request) const;
@@ -1443,6 +1475,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;
+			CreateRulengDistributeJobOutcome createRulengDistributeJob(const Model::CreateRulengDistributeJobRequest &request)const;
+			void createRulengDistributeJobAsync(const Model::CreateRulengDistributeJobRequest& request, const CreateRulengDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateRulengDistributeJobOutcomeCallable createRulengDistributeJobCallable(const Model::CreateRulengDistributeJobRequest& request) const;
 			CreateSceneRuleOutcome createSceneRule(const Model::CreateSceneRuleRequest &request)const;
 			void createSceneRuleAsync(const Model::CreateSceneRuleRequest& request, const CreateSceneRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateSceneRuleOutcomeCallable createSceneRuleCallable(const Model::CreateSceneRuleRequest& request) const;
@@ -1458,9 +1493,6 @@ namespace AlibabaCloud
 			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;
-			DeleteClientIdsOutcome deleteClientIds(const Model::DeleteClientIdsRequest &request)const;
-			void deleteClientIdsAsync(const Model::DeleteClientIdsRequest& request, const DeleteClientIdsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			DeleteClientIdsOutcomeCallable deleteClientIdsCallable(const Model::DeleteClientIdsRequest& request) const;
 			DeleteConsumerGroupOutcome deleteConsumerGroup(const Model::DeleteConsumerGroupRequest &request)const;
 			void deleteConsumerGroupAsync(const Model::DeleteConsumerGroupRequest& request, const DeleteConsumerGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteConsumerGroupOutcomeCallable deleteConsumerGroupCallable(const Model::DeleteConsumerGroupRequest& request) const;
@@ -1668,6 +1700,9 @@ namespace AlibabaCloud
 			NotifyAddThingTopoOutcome notifyAddThingTopo(const Model::NotifyAddThingTopoRequest &request)const;
 			void notifyAddThingTopoAsync(const Model::NotifyAddThingTopoRequest& request, const NotifyAddThingTopoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			NotifyAddThingTopoOutcomeCallable notifyAddThingTopoCallable(const Model::NotifyAddThingTopoRequest& request) const;
+			OpenIotServiceOutcome openIotService(const Model::OpenIotServiceRequest &request)const;
+			void openIotServiceAsync(const Model::OpenIotServiceRequest& request, const OpenIotServiceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			OpenIotServiceOutcomeCallable openIotServiceCallable(const Model::OpenIotServiceRequest& request) const;
 			PubOutcome pub(const Model::PubRequest &request)const;
 			void pubAsync(const Model::PubRequest& request, const PubAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			PubOutcomeCallable pubCallable(const Model::PubRequest& request) const;
@@ -1686,9 +1721,6 @@ namespace AlibabaCloud
 			QueryCertUrlByApplyIdOutcome queryCertUrlByApplyId(const Model::QueryCertUrlByApplyIdRequest &request)const;
 			void queryCertUrlByApplyIdAsync(const Model::QueryCertUrlByApplyIdRequest& request, const QueryCertUrlByApplyIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryCertUrlByApplyIdOutcomeCallable queryCertUrlByApplyIdCallable(const Model::QueryCertUrlByApplyIdRequest& request) const;
-			QueryClientIdsOutcome queryClientIds(const Model::QueryClientIdsRequest &request)const;
-			void queryClientIdsAsync(const Model::QueryClientIdsRequest& request, const QueryClientIdsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			QueryClientIdsOutcomeCallable queryClientIdsCallable(const Model::QueryClientIdsRequest& request) const;
 			QueryConsumerGroupByGroupIdOutcome queryConsumerGroupByGroupId(const Model::QueryConsumerGroupByGroupIdRequest &request)const;
 			void queryConsumerGroupByGroupIdAsync(const Model::QueryConsumerGroupByGroupIdRequest& request, const QueryConsumerGroupByGroupIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryConsumerGroupByGroupIdOutcomeCallable queryConsumerGroupByGroupIdCallable(const Model::QueryConsumerGroupByGroupIdRequest& request) const;
@@ -1929,9 +1961,9 @@ namespace AlibabaCloud
 			StopRuleOutcome stopRule(const Model::StopRuleRequest &request)const;
 			void stopRuleAsync(const Model::StopRuleRequest& request, const StopRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			StopRuleOutcomeCallable stopRuleCallable(const Model::StopRuleRequest& request) const;
-			TransformClientIdOutcome transformClientId(const Model::TransformClientIdRequest &request)const;
-			void transformClientIdAsync(const Model::TransformClientIdRequest& request, const TransformClientIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			TransformClientIdOutcomeCallable transformClientIdCallable(const Model::TransformClientIdRequest& request) const;
+			SyncSpeechByCombinationOutcome syncSpeechByCombination(const Model::SyncSpeechByCombinationRequest &request)const;
+			void syncSpeechByCombinationAsync(const Model::SyncSpeechByCombinationRequest& request, const SyncSpeechByCombinationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SyncSpeechByCombinationOutcomeCallable syncSpeechByCombinationCallable(const Model::SyncSpeechByCombinationRequest& request) const;
 			TriggerSceneRuleOutcome triggerSceneRule(const Model::TriggerSceneRuleRequest &request)const;
 			void triggerSceneRuleAsync(const Model::TriggerSceneRuleRequest& request, const TriggerSceneRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			TriggerSceneRuleOutcomeCallable triggerSceneRuleCallable(const Model::TriggerSceneRuleRequest& request) const;

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

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_BATCHBINDDEVICESINTOPROJECTREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_BATCHBINDDEVICESINTOPROJECTREQUEST_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 BatchBindDevicesIntoProjectRequest : public RpcServiceRequest
+			{
+			public:
+				struct Devices
+				{
+					std::string deviceName;
+					std::string productKey;
+				};
+
+			public:
+				BatchBindDevicesIntoProjectRequest();
+				~BatchBindDevicesIntoProjectRequest();
+
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getProjectId()const;
+				void setProjectId(const std::string& projectId);
+				std::vector<Devices> getDevices()const;
+				void setDevices(const std::vector<Devices>& devices);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+
+            private:
+				std::string iotInstanceId_;
+				std::string projectId_;
+				std::vector<Devices> devices_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_BATCHBINDDEVICESINTOPROJECTREQUEST_H_

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

+ 12 - 15
iot/include/alibabacloud/iot/model/TransformClientIdRequest.h → iot/include/alibabacloud/iot/model/BatchBindProductsIntoProjectRequest.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_IOT_MODEL_TRANSFORMCLIENTIDREQUEST_H_
-#define ALIBABACLOUD_IOT_MODEL_TRANSFORMCLIENTIDREQUEST_H_
+#ifndef ALIBABACLOUD_IOT_MODEL_BATCHBINDPRODUCTSINTOPROJECTREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_BATCHBINDPRODUCTSINTOPROJECTREQUEST_H_
 
 #include <string>
 #include <vector>
@@ -28,31 +28,28 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_IOT_EXPORT TransformClientIdRequest : public RpcServiceRequest
+			class ALIBABACLOUD_IOT_EXPORT BatchBindProductsIntoProjectRequest : public RpcServiceRequest
 			{
 
 			public:
-				TransformClientIdRequest();
-				~TransformClientIdRequest();
+				BatchBindProductsIntoProjectRequest();
+				~BatchBindProductsIntoProjectRequest();
 
-				std::string getAuthConfig()const;
-				void setAuthConfig(const std::string& authConfig);
-				std::string getClientId()const;
-				void setClientId(const std::string& clientId);
-				std::string getIotId()const;
-				void setIotId(const std::string& iotId);
+				std::vector<std::string> getProductKeys()const;
+				void setProductKeys(const std::vector<std::string>& productKeys);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getProjectId()const;
+				void setProjectId(const std::string& projectId);
 				std::string getApiProduct()const;
 				void setApiProduct(const std::string& apiProduct);
 				std::string getApiRevision()const;
 				void setApiRevision(const std::string& apiRevision);
 
             private:
-				std::string authConfig_;
-				std::string clientId_;
-				std::string iotId_;
+				std::vector<std::string> productKeys_;
 				std::string iotInstanceId_;
+				std::string projectId_;
 				std::string apiProduct_;
 				std::string apiRevision_;
 
@@ -60,4 +57,4 @@ namespace AlibabaCloud
 		}
 	}
 }
-#endif // !ALIBABACLOUD_IOT_MODEL_TRANSFORMCLIENTIDREQUEST_H_
+#endif // !ALIBABACLOUD_IOT_MODEL_BATCHBINDPRODUCTSINTOPROJECTREQUEST_H_

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

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

@@ -41,8 +41,12 @@ namespace AlibabaCloud
 				BatchCheckDeviceNamesRequest();
 				~BatchCheckDeviceNamesRequest();
 
+				std::string getRealTenantId()const;
+				void setRealTenantId(const std::string& realTenantId);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getRealTripartiteKey()const;
+				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::vector<DeviceNameList> getDeviceNameList()const;
 				void setDeviceNameList(const std::vector<DeviceNameList>& deviceNameList);
 				std::string getIotInstanceId()const;
@@ -57,7 +61,9 @@ namespace AlibabaCloud
 				void setDeviceName(const std::vector<std::string>& deviceName);
 
             private:
+				std::string realTenantId_;
 				std::string accessKeyId_;
+				std::string realTripartiteKey_;
 				std::vector<DeviceNameList> deviceNameList_;
 				std::string iotInstanceId_;
 				std::string productKey_;

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

@@ -35,8 +35,12 @@ namespace AlibabaCloud
 				BatchRegisterDeviceRequest();
 				~BatchRegisterDeviceRequest();
 
+				std::string getRealTenantId()const;
+				void setRealTenantId(const std::string& realTenantId);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getRealTripartiteKey()const;
+				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				int getCount()const;
@@ -49,7 +53,9 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 
             private:
+				std::string realTenantId_;
 				std::string accessKeyId_;
+				std::string realTripartiteKey_;
 				std::string iotInstanceId_;
 				int count_;
 				std::string productKey_;

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

@@ -35,8 +35,12 @@ namespace AlibabaCloud
 				BatchRegisterDeviceWithApplyIdRequest();
 				~BatchRegisterDeviceWithApplyIdRequest();
 
+				std::string getRealTenantId()const;
+				void setRealTenantId(const std::string& realTenantId);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getRealTripartiteKey()const;
+				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getProductKey()const;
@@ -49,7 +53,9 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 
             private:
+				std::string realTenantId_;
 				std::string accessKeyId_;
+				std::string realTripartiteKey_;
 				std::string iotInstanceId_;
 				std::string productKey_;
 				long applyId_;

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

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_BATCHUNBINDPROJECTDEVICESREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_BATCHUNBINDPROJECTDEVICESREQUEST_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 BatchUnbindProjectDevicesRequest : public RpcServiceRequest
+			{
+			public:
+				struct Devices
+				{
+					std::string deviceName;
+					std::string productKey;
+				};
+
+			public:
+				BatchUnbindProjectDevicesRequest();
+				~BatchUnbindProjectDevicesRequest();
+
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getProjectId()const;
+				void setProjectId(const std::string& projectId);
+				std::vector<Devices> getDevices()const;
+				void setDevices(const std::vector<Devices>& devices);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+
+            private:
+				std::string iotInstanceId_;
+				std::string projectId_;
+				std::vector<Devices> devices_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_BATCHUNBINDPROJECTDEVICESREQUEST_H_

+ 9 - 7
iot/include/alibabacloud/iot/model/DeleteClientIdsResult.h → iot/include/alibabacloud/iot/model/BatchUnbindProjectDevicesResult.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_IOT_MODEL_DELETECLIENTIDSRESULT_H_
-#define ALIBABACLOUD_IOT_MODEL_DELETECLIENTIDSRESULT_H_
+#ifndef ALIBABACLOUD_IOT_MODEL_BATCHUNBINDPROJECTDEVICESRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_BATCHUNBINDPROJECTDEVICESRESULT_H_
 
 #include <string>
 #include <vector>
@@ -29,14 +29,15 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_IOT_EXPORT DeleteClientIdsResult : public ServiceResult
+			class ALIBABACLOUD_IOT_EXPORT BatchUnbindProjectDevicesResult : public ServiceResult
 			{
 			public:
 
 
-				DeleteClientIdsResult();
-				explicit DeleteClientIdsResult(const std::string &payload);
-				~DeleteClientIdsResult();
+				BatchUnbindProjectDevicesResult();
+				explicit BatchUnbindProjectDevicesResult(const std::string &payload);
+				~BatchUnbindProjectDevicesResult();
+				std::string getData()const;
 				std::string getErrorMessage()const;
 				std::string getCode()const;
 				bool getSuccess()const;
@@ -44,6 +45,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string data_;
 				std::string errorMessage_;
 				std::string code_;
 				bool success_;
@@ -52,4 +54,4 @@ namespace AlibabaCloud
 		}
 	}
 }
-#endif // !ALIBABACLOUD_IOT_MODEL_DELETECLIENTIDSRESULT_H_
+#endif // !ALIBABACLOUD_IOT_MODEL_BATCHUNBINDPROJECTDEVICESRESULT_H_

+ 12 - 12
iot/include/alibabacloud/iot/model/DeleteClientIdsRequest.h → iot/include/alibabacloud/iot/model/BatchUnbindProjectProductsRequest.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_IOT_MODEL_DELETECLIENTIDSREQUEST_H_
-#define ALIBABACLOUD_IOT_MODEL_DELETECLIENTIDSREQUEST_H_
+#ifndef ALIBABACLOUD_IOT_MODEL_BATCHUNBINDPROJECTPRODUCTSREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_BATCHUNBINDPROJECTPRODUCTSREQUEST_H_
 
 #include <string>
 #include <vector>
@@ -28,28 +28,28 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_IOT_EXPORT DeleteClientIdsRequest : public RpcServiceRequest
+			class ALIBABACLOUD_IOT_EXPORT BatchUnbindProjectProductsRequest : public RpcServiceRequest
 			{
 
 			public:
-				DeleteClientIdsRequest();
-				~DeleteClientIdsRequest();
+				BatchUnbindProjectProductsRequest();
+				~BatchUnbindProjectProductsRequest();
 
-				std::string getAuthConfig()const;
-				void setAuthConfig(const std::string& authConfig);
-				std::string getIotId()const;
-				void setIotId(const std::string& iotId);
+				std::vector<std::string> getProductKeys()const;
+				void setProductKeys(const std::vector<std::string>& productKeys);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getProjectId()const;
+				void setProjectId(const std::string& projectId);
 				std::string getApiProduct()const;
 				void setApiProduct(const std::string& apiProduct);
 				std::string getApiRevision()const;
 				void setApiRevision(const std::string& apiRevision);
 
             private:
-				std::string authConfig_;
-				std::string iotId_;
+				std::vector<std::string> productKeys_;
 				std::string iotInstanceId_;
+				std::string projectId_;
 				std::string apiProduct_;
 				std::string apiRevision_;
 
@@ -57,4 +57,4 @@ namespace AlibabaCloud
 		}
 	}
 }
-#endif // !ALIBABACLOUD_IOT_MODEL_DELETECLIENTIDSREQUEST_H_
+#endif // !ALIBABACLOUD_IOT_MODEL_BATCHUNBINDPROJECTPRODUCTSREQUEST_H_

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

+ 60 - 0
iot/include/alibabacloud/iot/model/CreateRulengDistributeJobRequest.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_CREATERULENGDISTRIBUTEJOBREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATERULENGDISTRIBUTEJOBREQUEST_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 CreateRulengDistributeJobRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateRulengDistributeJobRequest();
+				~CreateRulengDistributeJobRequest();
+
+				std::string getSourceInstanceId()const;
+				void setSourceInstanceId(const std::string& sourceInstanceId);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getTargetInstanceId()const;
+				void setTargetInstanceId(const std::string& targetInstanceId);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+
+            private:
+				std::string sourceInstanceId_;
+				std::string productKey_;
+				std::string targetInstanceId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CREATERULENGDISTRIBUTEJOBREQUEST_H_

+ 7 - 7
iot/include/alibabacloud/iot/model/TransformClientIdResult.h → iot/include/alibabacloud/iot/model/CreateRulengDistributeJobResult.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_IOT_MODEL_TRANSFORMCLIENTIDRESULT_H_
-#define ALIBABACLOUD_IOT_MODEL_TRANSFORMCLIENTIDRESULT_H_
+#ifndef ALIBABACLOUD_IOT_MODEL_CREATERULENGDISTRIBUTEJOBRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATERULENGDISTRIBUTEJOBRESULT_H_
 
 #include <string>
 #include <vector>
@@ -29,14 +29,14 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_IOT_EXPORT TransformClientIdResult : public ServiceResult
+			class ALIBABACLOUD_IOT_EXPORT CreateRulengDistributeJobResult : public ServiceResult
 			{
 			public:
 
 
-				TransformClientIdResult();
-				explicit TransformClientIdResult(const std::string &payload);
-				~TransformClientIdResult();
+				CreateRulengDistributeJobResult();
+				explicit CreateRulengDistributeJobResult(const std::string &payload);
+				~CreateRulengDistributeJobResult();
 				std::string getErrorMessage()const;
 				std::string getCode()const;
 				bool getSuccess()const;
@@ -52,4 +52,4 @@ namespace AlibabaCloud
 		}
 	}
 }
-#endif // !ALIBABACLOUD_IOT_MODEL_TRANSFORMCLIENTIDRESULT_H_
+#endif // !ALIBABACLOUD_IOT_MODEL_CREATERULENGDISTRIBUTEJOBRESULT_H_

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

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

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

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

+ 48 - 0
iot/include/alibabacloud/iot/model/OpenIotServiceRequest.h

@@ -0,0 +1,48 @@
+/*
+ * 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_OPENIOTSERVICEREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_OPENIOTSERVICEREQUEST_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 OpenIotServiceRequest : public RpcServiceRequest
+			{
+
+			public:
+				OpenIotServiceRequest();
+				~OpenIotServiceRequest();
+
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+
+            private:
+				long ownerId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_OPENIOTSERVICEREQUEST_H_

+ 51 - 0
iot/include/alibabacloud/iot/model/OpenIotServiceResult.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_OPENIOTSERVICERESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_OPENIOTSERVICERESULT_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 OpenIotServiceResult : public ServiceResult
+			{
+			public:
+
+
+				OpenIotServiceResult();
+				explicit OpenIotServiceResult(const std::string &payload);
+				~OpenIotServiceResult();
+				std::string getOrderId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string orderId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_OPENIOTSERVICERESULT_H_

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

@@ -35,8 +35,12 @@ namespace AlibabaCloud
 				QueryBatchRegisterDeviceStatusRequest();
 				~QueryBatchRegisterDeviceStatusRequest();
 
+				std::string getRealTenantId()const;
+				void setRealTenantId(const std::string& realTenantId);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getRealTripartiteKey()const;
+				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getProductKey()const;
@@ -49,7 +53,9 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 
             private:
+				std::string realTenantId_;
 				std::string accessKeyId_;
+				std::string realTripartiteKey_;
 				std::string iotInstanceId_;
 				std::string productKey_;
 				long applyId_;

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

@@ -35,8 +35,12 @@ namespace AlibabaCloud
 				QueryDeviceRequest();
 				~QueryDeviceRequest();
 
+				std::string getRealTenantId()const;
+				void setRealTenantId(const std::string& realTenantId);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getRealTripartiteKey()const;
+				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				int getPageSize()const;
@@ -51,7 +55,9 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 
             private:
+				std::string realTenantId_;
 				std::string accessKeyId_;
+				std::string realTripartiteKey_;
 				std::string iotInstanceId_;
 				int pageSize_;
 				int currentPage_;

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

@@ -35,8 +35,12 @@ namespace AlibabaCloud
 				QueryPageByApplyIdRequest();
 				~QueryPageByApplyIdRequest();
 
+				std::string getRealTenantId()const;
+				void setRealTenantId(const std::string& realTenantId);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getRealTripartiteKey()const;
+				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				int getPageSize()const;
@@ -51,7 +55,9 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 
             private:
+				std::string realTenantId_;
 				std::string accessKeyId_;
+				std::string realTripartiteKey_;
 				std::string iotInstanceId_;
 				int pageSize_;
 				int currentPage_;

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

@@ -35,8 +35,12 @@ namespace AlibabaCloud
 				QueryProductListRequest();
 				~QueryProductListRequest();
 
+				std::string getRealTenantId()const;
+				void setRealTenantId(const std::string& realTenantId);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getRealTripartiteKey()const;
+				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::string getResourceGroupId()const;
 				void setResourceGroupId(const std::string& resourceGroupId);
 				std::string getIotInstanceId()const;
@@ -53,7 +57,9 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 
             private:
+				std::string realTenantId_;
 				std::string accessKeyId_;
+				std::string realTripartiteKey_;
 				std::string resourceGroupId_;
 				std::string iotInstanceId_;
 				int pageSize_;

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

@@ -39,6 +39,8 @@ namespace AlibabaCloud
 				void setIotId(const std::string& iotId);
 				std::vector<std::string> getCombinationList()const;
 				void setCombinationList(const std::vector<std::string>& combinationList);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getProductKey()const;
 				void setProductKey(const std::string& productKey);
 				std::string getApiProduct()const;
@@ -51,6 +53,7 @@ namespace AlibabaCloud
             private:
 				std::string iotId_;
 				std::vector<std::string> combinationList_;
+				std::string iotInstanceId_;
 				std::string productKey_;
 				std::string apiProduct_;
 				std::string apiRevision_;

+ 15 - 9
iot/include/alibabacloud/iot/model/QueryClientIdsRequest.h → iot/include/alibabacloud/iot/model/SyncSpeechByCombinationRequest.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_IOT_MODEL_QUERYCLIENTIDSREQUEST_H_
-#define ALIBABACLOUD_IOT_MODEL_QUERYCLIENTIDSREQUEST_H_
+#ifndef ALIBABACLOUD_IOT_MODEL_SYNCSPEECHBYCOMBINATIONREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_SYNCSPEECHBYCOMBINATIONREQUEST_H_
 
 #include <string>
 #include <vector>
@@ -28,33 +28,39 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_IOT_EXPORT QueryClientIdsRequest : public RpcServiceRequest
+			class ALIBABACLOUD_IOT_EXPORT SyncSpeechByCombinationRequest : public RpcServiceRequest
 			{
 
 			public:
-				QueryClientIdsRequest();
-				~QueryClientIdsRequest();
+				SyncSpeechByCombinationRequest();
+				~SyncSpeechByCombinationRequest();
 
-				std::string getAuthConfig()const;
-				void setAuthConfig(const std::string& authConfig);
 				std::string getIotId()const;
 				void setIotId(const std::string& iotId);
+				std::vector<std::string> getCombinationList()const;
+				void setCombinationList(const std::vector<std::string>& combinationList);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
 				std::string getApiProduct()const;
 				void setApiProduct(const std::string& apiProduct);
 				std::string getApiRevision()const;
 				void setApiRevision(const std::string& apiRevision);
+				std::string getDeviceName()const;
+				void setDeviceName(const std::string& deviceName);
 
             private:
-				std::string authConfig_;
 				std::string iotId_;
+				std::vector<std::string> combinationList_;
 				std::string iotInstanceId_;
+				std::string productKey_;
 				std::string apiProduct_;
 				std::string apiRevision_;
+				std::string deviceName_;
 
 			};
 		}
 	}
 }
-#endif // !ALIBABACLOUD_IOT_MODEL_QUERYCLIENTIDSREQUEST_H_
+#endif // !ALIBABACLOUD_IOT_MODEL_SYNCSPEECHBYCOMBINATIONREQUEST_H_

+ 9 - 14
iot/include/alibabacloud/iot/model/QueryClientIdsResult.h → iot/include/alibabacloud/iot/model/SyncSpeechByCombinationResult.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_IOT_MODEL_QUERYCLIENTIDSRESULT_H_
-#define ALIBABACLOUD_IOT_MODEL_QUERYCLIENTIDSRESULT_H_
+#ifndef ALIBABACLOUD_IOT_MODEL_SYNCSPEECHBYCOMBINATIONRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_SYNCSPEECHBYCOMBINATIONRESULT_H_
 
 #include <string>
 #include <vector>
@@ -29,24 +29,19 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_IOT_EXPORT QueryClientIdsResult : public ServiceResult
+			class ALIBABACLOUD_IOT_EXPORT SyncSpeechByCombinationResult : public ServiceResult
 			{
 			public:
 				struct Data
 				{
-					struct DynamicRegClientId
-					{
-						long createTime;
-						std::string clientId;
-					};
-					std::vector<DynamicRegClientId> dynamicRegClientIds;
-					std::string iotId;
+					int retryCount;
+					std::string id;
 				};
 
 
-				QueryClientIdsResult();
-				explicit QueryClientIdsResult(const std::string &payload);
-				~QueryClientIdsResult();
+				SyncSpeechByCombinationResult();
+				explicit SyncSpeechByCombinationResult(const std::string &payload);
+				~SyncSpeechByCombinationResult();
 				Data getData()const;
 				std::string getErrorMessage()const;
 				std::string getCode()const;
@@ -64,4 +59,4 @@ namespace AlibabaCloud
 		}
 	}
 }
-#endif // !ALIBABACLOUD_IOT_MODEL_QUERYCLIENTIDSRESULT_H_
+#endif // !ALIBABACLOUD_IOT_MODEL_SYNCSPEECHBYCOMBINATIONRESULT_H_

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

@@ -35,10 +35,14 @@ namespace AlibabaCloud
 				UpdateProductRequest();
 				~UpdateProductRequest();
 
+				std::string getRealTenantId()const;
+				void setRealTenantId(const std::string& realTenantId);
 				std::string getDescription()const;
 				void setDescription(const std::string& description);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getRealTripartiteKey()const;
+				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getProductName()const;
@@ -51,8 +55,10 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 
             private:
+				std::string realTenantId_;
 				std::string description_;
 				std::string accessKeyId_;
+				std::string realTripartiteKey_;
 				std::string iotInstanceId_;
 				std::string productName_;
 				std::string productKey_;

+ 225 - 81
iot/src/IotClient.cc

@@ -159,6 +159,78 @@ IotClient::BatchBindDeviceToEdgeInstanceWithDriverOutcomeCallable IotClient::bat
 	return task->get_future();
 }
 
+IotClient::BatchBindDevicesIntoProjectOutcome IotClient::batchBindDevicesIntoProject(const BatchBindDevicesIntoProjectRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return BatchBindDevicesIntoProjectOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return BatchBindDevicesIntoProjectOutcome(BatchBindDevicesIntoProjectResult(outcome.result()));
+	else
+		return BatchBindDevicesIntoProjectOutcome(outcome.error());
+}
+
+void IotClient::batchBindDevicesIntoProjectAsync(const BatchBindDevicesIntoProjectRequest& request, const BatchBindDevicesIntoProjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, batchBindDevicesIntoProject(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::BatchBindDevicesIntoProjectOutcomeCallable IotClient::batchBindDevicesIntoProjectCallable(const BatchBindDevicesIntoProjectRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<BatchBindDevicesIntoProjectOutcome()>>(
+			[this, request]()
+			{
+			return this->batchBindDevicesIntoProject(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+IotClient::BatchBindProductsIntoProjectOutcome IotClient::batchBindProductsIntoProject(const BatchBindProductsIntoProjectRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return BatchBindProductsIntoProjectOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return BatchBindProductsIntoProjectOutcome(BatchBindProductsIntoProjectResult(outcome.result()));
+	else
+		return BatchBindProductsIntoProjectOutcome(outcome.error());
+}
+
+void IotClient::batchBindProductsIntoProjectAsync(const BatchBindProductsIntoProjectRequest& request, const BatchBindProductsIntoProjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, batchBindProductsIntoProject(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::BatchBindProductsIntoProjectOutcomeCallable IotClient::batchBindProductsIntoProjectCallable(const BatchBindProductsIntoProjectRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<BatchBindProductsIntoProjectOutcome()>>(
+			[this, request]()
+			{
+			return this->batchBindProductsIntoProject(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::BatchCheckDeviceNamesOutcome IotClient::batchCheckDeviceNames(const BatchCheckDeviceNamesRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -843,6 +915,78 @@ IotClient::BatchUnbindDeviceFromEdgeInstanceOutcomeCallable IotClient::batchUnbi
 	return task->get_future();
 }
 
+IotClient::BatchUnbindProjectDevicesOutcome IotClient::batchUnbindProjectDevices(const BatchUnbindProjectDevicesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return BatchUnbindProjectDevicesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return BatchUnbindProjectDevicesOutcome(BatchUnbindProjectDevicesResult(outcome.result()));
+	else
+		return BatchUnbindProjectDevicesOutcome(outcome.error());
+}
+
+void IotClient::batchUnbindProjectDevicesAsync(const BatchUnbindProjectDevicesRequest& request, const BatchUnbindProjectDevicesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, batchUnbindProjectDevices(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::BatchUnbindProjectDevicesOutcomeCallable IotClient::batchUnbindProjectDevicesCallable(const BatchUnbindProjectDevicesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<BatchUnbindProjectDevicesOutcome()>>(
+			[this, request]()
+			{
+			return this->batchUnbindProjectDevices(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+IotClient::BatchUnbindProjectProductsOutcome IotClient::batchUnbindProjectProducts(const BatchUnbindProjectProductsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return BatchUnbindProjectProductsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return BatchUnbindProjectProductsOutcome(BatchUnbindProjectProductsResult(outcome.result()));
+	else
+		return BatchUnbindProjectProductsOutcome(outcome.error());
+}
+
+void IotClient::batchUnbindProjectProductsAsync(const BatchUnbindProjectProductsRequest& request, const BatchUnbindProjectProductsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, batchUnbindProjectProducts(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::BatchUnbindProjectProductsOutcomeCallable IotClient::batchUnbindProjectProductsCallable(const BatchUnbindProjectProductsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<BatchUnbindProjectProductsOutcome()>>(
+			[this, request]()
+			{
+			return this->batchUnbindProjectProducts(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::BatchUpdateDeviceNicknameOutcome IotClient::batchUpdateDeviceNickname(const BatchUpdateDeviceNicknameRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2175,6 +2319,42 @@ IotClient::CreateRuleActionOutcomeCallable IotClient::createRuleActionCallable(c
 	return task->get_future();
 }
 
+IotClient::CreateRulengDistributeJobOutcome IotClient::createRulengDistributeJob(const CreateRulengDistributeJobRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateRulengDistributeJobOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateRulengDistributeJobOutcome(CreateRulengDistributeJobResult(outcome.result()));
+	else
+		return CreateRulengDistributeJobOutcome(outcome.error());
+}
+
+void IotClient::createRulengDistributeJobAsync(const CreateRulengDistributeJobRequest& request, const CreateRulengDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createRulengDistributeJob(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::CreateRulengDistributeJobOutcomeCallable IotClient::createRulengDistributeJobCallable(const CreateRulengDistributeJobRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateRulengDistributeJobOutcome()>>(
+			[this, request]()
+			{
+			return this->createRulengDistributeJob(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::CreateSceneRuleOutcome IotClient::createSceneRule(const CreateSceneRuleRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2355,42 +2535,6 @@ IotClient::CreateTopicRouteTableOutcomeCallable IotClient::createTopicRouteTable
 	return task->get_future();
 }
 
-IotClient::DeleteClientIdsOutcome IotClient::deleteClientIds(const DeleteClientIdsRequest &request) const
-{
-	auto endpointOutcome = endpointProvider_->getEndpoint();
-	if (!endpointOutcome.isSuccess())
-		return DeleteClientIdsOutcome(endpointOutcome.error());
-
-	auto outcome = makeRequest(endpointOutcome.result(), request);
-
-	if (outcome.isSuccess())
-		return DeleteClientIdsOutcome(DeleteClientIdsResult(outcome.result()));
-	else
-		return DeleteClientIdsOutcome(outcome.error());
-}
-
-void IotClient::deleteClientIdsAsync(const DeleteClientIdsRequest& request, const DeleteClientIdsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
-{
-	auto fn = [this, request, handler, context]()
-	{
-		handler(this, request, deleteClientIds(request), context);
-	};
-
-	asyncExecute(new Runnable(fn));
-}
-
-IotClient::DeleteClientIdsOutcomeCallable IotClient::deleteClientIdsCallable(const DeleteClientIdsRequest &request) const
-{
-	auto task = std::make_shared<std::packaged_task<DeleteClientIdsOutcome()>>(
-			[this, request]()
-			{
-			return this->deleteClientIds(request);
-			});
-
-	asyncExecute(new Runnable([task]() { (*task)(); }));
-	return task->get_future();
-}
-
 IotClient::DeleteConsumerGroupOutcome IotClient::deleteConsumerGroup(const DeleteConsumerGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -4875,6 +5019,42 @@ IotClient::NotifyAddThingTopoOutcomeCallable IotClient::notifyAddThingTopoCallab
 	return task->get_future();
 }
 
+IotClient::OpenIotServiceOutcome IotClient::openIotService(const OpenIotServiceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return OpenIotServiceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return OpenIotServiceOutcome(OpenIotServiceResult(outcome.result()));
+	else
+		return OpenIotServiceOutcome(outcome.error());
+}
+
+void IotClient::openIotServiceAsync(const OpenIotServiceRequest& request, const OpenIotServiceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, openIotService(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::OpenIotServiceOutcomeCallable IotClient::openIotServiceCallable(const OpenIotServiceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<OpenIotServiceOutcome()>>(
+			[this, request]()
+			{
+			return this->openIotService(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::PubOutcome IotClient::pub(const PubRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -5091,42 +5271,6 @@ IotClient::QueryCertUrlByApplyIdOutcomeCallable IotClient::queryCertUrlByApplyId
 	return task->get_future();
 }
 
-IotClient::QueryClientIdsOutcome IotClient::queryClientIds(const QueryClientIdsRequest &request) const
-{
-	auto endpointOutcome = endpointProvider_->getEndpoint();
-	if (!endpointOutcome.isSuccess())
-		return QueryClientIdsOutcome(endpointOutcome.error());
-
-	auto outcome = makeRequest(endpointOutcome.result(), request);
-
-	if (outcome.isSuccess())
-		return QueryClientIdsOutcome(QueryClientIdsResult(outcome.result()));
-	else
-		return QueryClientIdsOutcome(outcome.error());
-}
-
-void IotClient::queryClientIdsAsync(const QueryClientIdsRequest& request, const QueryClientIdsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
-{
-	auto fn = [this, request, handler, context]()
-	{
-		handler(this, request, queryClientIds(request), context);
-	};
-
-	asyncExecute(new Runnable(fn));
-}
-
-IotClient::QueryClientIdsOutcomeCallable IotClient::queryClientIdsCallable(const QueryClientIdsRequest &request) const
-{
-	auto task = std::make_shared<std::packaged_task<QueryClientIdsOutcome()>>(
-			[this, request]()
-			{
-			return this->queryClientIds(request);
-			});
-
-	asyncExecute(new Runnable([task]() { (*task)(); }));
-	return task->get_future();
-}
-
 IotClient::QueryConsumerGroupByGroupIdOutcome IotClient::queryConsumerGroupByGroupId(const QueryConsumerGroupByGroupIdRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -8007,36 +8151,36 @@ IotClient::StopRuleOutcomeCallable IotClient::stopRuleCallable(const StopRuleReq
 	return task->get_future();
 }
 
-IotClient::TransformClientIdOutcome IotClient::transformClientId(const TransformClientIdRequest &request) const
+IotClient::SyncSpeechByCombinationOutcome IotClient::syncSpeechByCombination(const SyncSpeechByCombinationRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return TransformClientIdOutcome(endpointOutcome.error());
+		return SyncSpeechByCombinationOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return TransformClientIdOutcome(TransformClientIdResult(outcome.result()));
+		return SyncSpeechByCombinationOutcome(SyncSpeechByCombinationResult(outcome.result()));
 	else
-		return TransformClientIdOutcome(outcome.error());
+		return SyncSpeechByCombinationOutcome(outcome.error());
 }
 
-void IotClient::transformClientIdAsync(const TransformClientIdRequest& request, const TransformClientIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void IotClient::syncSpeechByCombinationAsync(const SyncSpeechByCombinationRequest& request, const SyncSpeechByCombinationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, transformClientId(request), context);
+		handler(this, request, syncSpeechByCombination(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-IotClient::TransformClientIdOutcomeCallable IotClient::transformClientIdCallable(const TransformClientIdRequest &request) const
+IotClient::SyncSpeechByCombinationOutcomeCallable IotClient::syncSpeechByCombinationCallable(const SyncSpeechByCombinationRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<TransformClientIdOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<SyncSpeechByCombinationOutcome()>>(
 			[this, request]()
 			{
-			return this->transformClientId(request);
+			return this->syncSpeechByCombination(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));

+ 89 - 0
iot/src/model/BatchBindDevicesIntoProjectRequest.cc

@@ -0,0 +1,89 @@
+/*
+ * 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/BatchBindDevicesIntoProjectRequest.h>
+
+using AlibabaCloud::Iot::Model::BatchBindDevicesIntoProjectRequest;
+
+BatchBindDevicesIntoProjectRequest::BatchBindDevicesIntoProjectRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "BatchBindDevicesIntoProject")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+BatchBindDevicesIntoProjectRequest::~BatchBindDevicesIntoProjectRequest()
+{}
+
+std::string BatchBindDevicesIntoProjectRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void BatchBindDevicesIntoProjectRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setBodyParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string BatchBindDevicesIntoProjectRequest::getProjectId()const
+{
+	return projectId_;
+}
+
+void BatchBindDevicesIntoProjectRequest::setProjectId(const std::string& projectId)
+{
+	projectId_ = projectId;
+	setBodyParameter("ProjectId", projectId);
+}
+
+std::vector<BatchBindDevicesIntoProjectRequest::Devices> BatchBindDevicesIntoProjectRequest::getDevices()const
+{
+	return devices_;
+}
+
+void BatchBindDevicesIntoProjectRequest::setDevices(const std::vector<Devices>& devices)
+{
+	devices_ = devices;
+	for(int dep1 = 0; dep1!= devices.size(); dep1++) {
+		auto devicesObj = devices.at(dep1);
+		std::string devicesObjStr = "Devices." + std::to_string(dep1 + 1);
+		setParameter(devicesObjStr + ".DeviceName", devicesObj.deviceName);
+		setParameter(devicesObjStr + ".ProductKey", devicesObj.productKey);
+	}
+}
+
+std::string BatchBindDevicesIntoProjectRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void BatchBindDevicesIntoProjectRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string BatchBindDevicesIntoProjectRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void BatchBindDevicesIntoProjectRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

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

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/iot/model/BatchBindDevicesIntoProjectResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+BatchBindDevicesIntoProjectResult::BatchBindDevicesIntoProjectResult() :
+	ServiceResult()
+{}
+
+BatchBindDevicesIntoProjectResult::BatchBindDevicesIntoProjectResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+BatchBindDevicesIntoProjectResult::~BatchBindDevicesIntoProjectResult()
+{}
+
+void BatchBindDevicesIntoProjectResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["Data"].isNull())
+		data_ = value["Data"].asString();
+
+}
+
+std::string BatchBindDevicesIntoProjectResult::getData()const
+{
+	return data_;
+}
+
+std::string BatchBindDevicesIntoProjectResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string BatchBindDevicesIntoProjectResult::getCode()const
+{
+	return code_;
+}
+
+bool BatchBindDevicesIntoProjectResult::getSuccess()const
+{
+	return success_;
+}
+

+ 86 - 0
iot/src/model/BatchBindProductsIntoProjectRequest.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/BatchBindProductsIntoProjectRequest.h>
+
+using AlibabaCloud::Iot::Model::BatchBindProductsIntoProjectRequest;
+
+BatchBindProductsIntoProjectRequest::BatchBindProductsIntoProjectRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "BatchBindProductsIntoProject")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+BatchBindProductsIntoProjectRequest::~BatchBindProductsIntoProjectRequest()
+{}
+
+std::vector<std::string> BatchBindProductsIntoProjectRequest::getProductKeys()const
+{
+	return productKeys_;
+}
+
+void BatchBindProductsIntoProjectRequest::setProductKeys(const std::vector<std::string>& productKeys)
+{
+	productKeys_ = productKeys;
+	for(int dep1 = 0; dep1!= productKeys.size(); dep1++) {
+		setBodyParameter("ProductKeys."+ std::to_string(dep1), productKeys.at(dep1));
+	}
+}
+
+std::string BatchBindProductsIntoProjectRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void BatchBindProductsIntoProjectRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setBodyParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string BatchBindProductsIntoProjectRequest::getProjectId()const
+{
+	return projectId_;
+}
+
+void BatchBindProductsIntoProjectRequest::setProjectId(const std::string& projectId)
+{
+	projectId_ = projectId;
+	setBodyParameter("ProjectId", projectId);
+}
+
+std::string BatchBindProductsIntoProjectRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void BatchBindProductsIntoProjectRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string BatchBindProductsIntoProjectRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void BatchBindProductsIntoProjectRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

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

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/iot/model/BatchBindProductsIntoProjectResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+BatchBindProductsIntoProjectResult::BatchBindProductsIntoProjectResult() :
+	ServiceResult()
+{}
+
+BatchBindProductsIntoProjectResult::BatchBindProductsIntoProjectResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+BatchBindProductsIntoProjectResult::~BatchBindProductsIntoProjectResult()
+{}
+
+void BatchBindProductsIntoProjectResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["Data"].isNull())
+		data_ = value["Data"].asString();
+
+}
+
+std::string BatchBindProductsIntoProjectResult::getData()const
+{
+	return data_;
+}
+
+std::string BatchBindProductsIntoProjectResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string BatchBindProductsIntoProjectResult::getCode()const
+{
+	return code_;
+}
+
+bool BatchBindProductsIntoProjectResult::getSuccess()const
+{
+	return success_;
+}
+

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

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

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

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

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

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

+ 89 - 0
iot/src/model/BatchUnbindProjectDevicesRequest.cc

@@ -0,0 +1,89 @@
+/*
+ * 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/BatchUnbindProjectDevicesRequest.h>
+
+using AlibabaCloud::Iot::Model::BatchUnbindProjectDevicesRequest;
+
+BatchUnbindProjectDevicesRequest::BatchUnbindProjectDevicesRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "BatchUnbindProjectDevices")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+BatchUnbindProjectDevicesRequest::~BatchUnbindProjectDevicesRequest()
+{}
+
+std::string BatchUnbindProjectDevicesRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void BatchUnbindProjectDevicesRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setBodyParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string BatchUnbindProjectDevicesRequest::getProjectId()const
+{
+	return projectId_;
+}
+
+void BatchUnbindProjectDevicesRequest::setProjectId(const std::string& projectId)
+{
+	projectId_ = projectId;
+	setBodyParameter("ProjectId", projectId);
+}
+
+std::vector<BatchUnbindProjectDevicesRequest::Devices> BatchUnbindProjectDevicesRequest::getDevices()const
+{
+	return devices_;
+}
+
+void BatchUnbindProjectDevicesRequest::setDevices(const std::vector<Devices>& devices)
+{
+	devices_ = devices;
+	for(int dep1 = 0; dep1!= devices.size(); dep1++) {
+		auto devicesObj = devices.at(dep1);
+		std::string devicesObjStr = "Devices." + std::to_string(dep1 + 1);
+		setParameter(devicesObjStr + ".DeviceName", devicesObj.deviceName);
+		setParameter(devicesObjStr + ".ProductKey", devicesObj.productKey);
+	}
+}
+
+std::string BatchUnbindProjectDevicesRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void BatchUnbindProjectDevicesRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string BatchUnbindProjectDevicesRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void BatchUnbindProjectDevicesRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

+ 15 - 8
iot/src/model/DeleteClientIdsResult.cc → iot/src/model/BatchUnbindProjectDevicesResult.cc

@@ -14,26 +14,26 @@
  * limitations under the License.
  */
 
-#include <alibabacloud/iot/model/DeleteClientIdsResult.h>
+#include <alibabacloud/iot/model/BatchUnbindProjectDevicesResult.h>
 #include <json/json.h>
 
 using namespace AlibabaCloud::Iot;
 using namespace AlibabaCloud::Iot::Model;
 
-DeleteClientIdsResult::DeleteClientIdsResult() :
+BatchUnbindProjectDevicesResult::BatchUnbindProjectDevicesResult() :
 	ServiceResult()
 {}
 
-DeleteClientIdsResult::DeleteClientIdsResult(const std::string &payload) :
+BatchUnbindProjectDevicesResult::BatchUnbindProjectDevicesResult(const std::string &payload) :
 	ServiceResult()
 {
 	parse(payload);
 }
 
-DeleteClientIdsResult::~DeleteClientIdsResult()
+BatchUnbindProjectDevicesResult::~BatchUnbindProjectDevicesResult()
 {}
 
-void DeleteClientIdsResult::parse(const std::string &payload)
+void BatchUnbindProjectDevicesResult::parse(const std::string &payload)
 {
 	Json::Reader reader;
 	Json::Value value;
@@ -45,20 +45,27 @@ void DeleteClientIdsResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["ErrorMessage"].isNull())
 		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["Data"].isNull())
+		data_ = value["Data"].asString();
 
 }
 
-std::string DeleteClientIdsResult::getErrorMessage()const
+std::string BatchUnbindProjectDevicesResult::getData()const
+{
+	return data_;
+}
+
+std::string BatchUnbindProjectDevicesResult::getErrorMessage()const
 {
 	return errorMessage_;
 }
 
-std::string DeleteClientIdsResult::getCode()const
+std::string BatchUnbindProjectDevicesResult::getCode()const
 {
 	return code_;
 }
 
-bool DeleteClientIdsResult::getSuccess()const
+bool BatchUnbindProjectDevicesResult::getSuccess()const
 {
 	return success_;
 }

+ 86 - 0
iot/src/model/BatchUnbindProjectProductsRequest.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/BatchUnbindProjectProductsRequest.h>
+
+using AlibabaCloud::Iot::Model::BatchUnbindProjectProductsRequest;
+
+BatchUnbindProjectProductsRequest::BatchUnbindProjectProductsRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "BatchUnbindProjectProducts")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+BatchUnbindProjectProductsRequest::~BatchUnbindProjectProductsRequest()
+{}
+
+std::vector<std::string> BatchUnbindProjectProductsRequest::getProductKeys()const
+{
+	return productKeys_;
+}
+
+void BatchUnbindProjectProductsRequest::setProductKeys(const std::vector<std::string>& productKeys)
+{
+	productKeys_ = productKeys;
+	for(int dep1 = 0; dep1!= productKeys.size(); dep1++) {
+		setBodyParameter("ProductKeys."+ std::to_string(dep1), productKeys.at(dep1));
+	}
+}
+
+std::string BatchUnbindProjectProductsRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void BatchUnbindProjectProductsRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setBodyParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string BatchUnbindProjectProductsRequest::getProjectId()const
+{
+	return projectId_;
+}
+
+void BatchUnbindProjectProductsRequest::setProjectId(const std::string& projectId)
+{
+	projectId_ = projectId;
+	setBodyParameter("ProjectId", projectId);
+}
+
+std::string BatchUnbindProjectProductsRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void BatchUnbindProjectProductsRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string BatchUnbindProjectProductsRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void BatchUnbindProjectProductsRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

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

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/iot/model/BatchUnbindProjectProductsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+BatchUnbindProjectProductsResult::BatchUnbindProjectProductsResult() :
+	ServiceResult()
+{}
+
+BatchUnbindProjectProductsResult::BatchUnbindProjectProductsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+BatchUnbindProjectProductsResult::~BatchUnbindProjectProductsResult()
+{}
+
+void BatchUnbindProjectProductsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["Data"].isNull())
+		data_ = value["Data"].asString();
+
+}
+
+std::string BatchUnbindProjectProductsResult::getData()const
+{
+	return data_;
+}
+
+std::string BatchUnbindProjectProductsResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string BatchUnbindProjectProductsResult::getCode()const
+{
+	return code_;
+}
+
+bool BatchUnbindProjectProductsResult::getSuccess()const
+{
+	return success_;
+}
+

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

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/iot/model/CreateRulengDistributeJobRequest.h>
+
+using AlibabaCloud::Iot::Model::CreateRulengDistributeJobRequest;
+
+CreateRulengDistributeJobRequest::CreateRulengDistributeJobRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "CreateRulengDistributeJob")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CreateRulengDistributeJobRequest::~CreateRulengDistributeJobRequest()
+{}
+
+std::string CreateRulengDistributeJobRequest::getSourceInstanceId()const
+{
+	return sourceInstanceId_;
+}
+
+void CreateRulengDistributeJobRequest::setSourceInstanceId(const std::string& sourceInstanceId)
+{
+	sourceInstanceId_ = sourceInstanceId;
+	setParameter("SourceInstanceId", sourceInstanceId);
+}
+
+std::string CreateRulengDistributeJobRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void CreateRulengDistributeJobRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string CreateRulengDistributeJobRequest::getTargetInstanceId()const
+{
+	return targetInstanceId_;
+}
+
+void CreateRulengDistributeJobRequest::setTargetInstanceId(const std::string& targetInstanceId)
+{
+	targetInstanceId_ = targetInstanceId;
+	setParameter("TargetInstanceId", targetInstanceId);
+}
+
+std::string CreateRulengDistributeJobRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void CreateRulengDistributeJobRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string CreateRulengDistributeJobRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void CreateRulengDistributeJobRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

+ 8 - 8
iot/src/model/TransformClientIdResult.cc → iot/src/model/CreateRulengDistributeJobResult.cc

@@ -14,26 +14,26 @@
  * limitations under the License.
  */
 
-#include <alibabacloud/iot/model/TransformClientIdResult.h>
+#include <alibabacloud/iot/model/CreateRulengDistributeJobResult.h>
 #include <json/json.h>
 
 using namespace AlibabaCloud::Iot;
 using namespace AlibabaCloud::Iot::Model;
 
-TransformClientIdResult::TransformClientIdResult() :
+CreateRulengDistributeJobResult::CreateRulengDistributeJobResult() :
 	ServiceResult()
 {}
 
-TransformClientIdResult::TransformClientIdResult(const std::string &payload) :
+CreateRulengDistributeJobResult::CreateRulengDistributeJobResult(const std::string &payload) :
 	ServiceResult()
 {
 	parse(payload);
 }
 
-TransformClientIdResult::~TransformClientIdResult()
+CreateRulengDistributeJobResult::~CreateRulengDistributeJobResult()
 {}
 
-void TransformClientIdResult::parse(const std::string &payload)
+void CreateRulengDistributeJobResult::parse(const std::string &payload)
 {
 	Json::Reader reader;
 	Json::Value value;
@@ -48,17 +48,17 @@ void TransformClientIdResult::parse(const std::string &payload)
 
 }
 
-std::string TransformClientIdResult::getErrorMessage()const
+std::string CreateRulengDistributeJobResult::getErrorMessage()const
 {
 	return errorMessage_;
 }
 
-std::string TransformClientIdResult::getCode()const
+std::string CreateRulengDistributeJobResult::getCode()const
 {
 	return code_;
 }
 
-bool TransformClientIdResult::getSuccess()const
+bool CreateRulengDistributeJobResult::getSuccess()const
 {
 	return success_;
 }

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

@@ -1,84 +0,0 @@
-/*
- * 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/DeleteClientIdsRequest.h>
-
-using AlibabaCloud::Iot::Model::DeleteClientIdsRequest;
-
-DeleteClientIdsRequest::DeleteClientIdsRequest() :
-	RpcServiceRequest("iot", "2018-01-20", "DeleteClientIds")
-{
-	setMethod(HttpRequest::Method::Post);
-}
-
-DeleteClientIdsRequest::~DeleteClientIdsRequest()
-{}
-
-std::string DeleteClientIdsRequest::getAuthConfig()const
-{
-	return authConfig_;
-}
-
-void DeleteClientIdsRequest::setAuthConfig(const std::string& authConfig)
-{
-	authConfig_ = authConfig;
-	setParameter("AuthConfig", authConfig);
-}
-
-std::string DeleteClientIdsRequest::getIotId()const
-{
-	return iotId_;
-}
-
-void DeleteClientIdsRequest::setIotId(const std::string& iotId)
-{
-	iotId_ = iotId;
-	setParameter("IotId", iotId);
-}
-
-std::string DeleteClientIdsRequest::getIotInstanceId()const
-{
-	return iotInstanceId_;
-}
-
-void DeleteClientIdsRequest::setIotInstanceId(const std::string& iotInstanceId)
-{
-	iotInstanceId_ = iotInstanceId;
-	setParameter("IotInstanceId", iotInstanceId);
-}
-
-std::string DeleteClientIdsRequest::getApiProduct()const
-{
-	return apiProduct_;
-}
-
-void DeleteClientIdsRequest::setApiProduct(const std::string& apiProduct)
-{
-	apiProduct_ = apiProduct;
-	setBodyParameter("ApiProduct", apiProduct);
-}
-
-std::string DeleteClientIdsRequest::getApiRevision()const
-{
-	return apiRevision_;
-}
-
-void DeleteClientIdsRequest::setApiRevision(const std::string& apiRevision)
-{
-	apiRevision_ = apiRevision;
-	setBodyParameter("ApiRevision", apiRevision);
-}
-

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

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

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

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

+ 40 - 0
iot/src/model/OpenIotServiceRequest.cc

@@ -0,0 +1,40 @@
+/*
+ * 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/OpenIotServiceRequest.h>
+
+using AlibabaCloud::Iot::Model::OpenIotServiceRequest;
+
+OpenIotServiceRequest::OpenIotServiceRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "OpenIotService")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+OpenIotServiceRequest::~OpenIotServiceRequest()
+{}
+
+long OpenIotServiceRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void OpenIotServiceRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+

+ 51 - 0
iot/src/model/OpenIotServiceResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/iot/model/OpenIotServiceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+OpenIotServiceResult::OpenIotServiceResult() :
+	ServiceResult()
+{}
+
+OpenIotServiceResult::OpenIotServiceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+OpenIotServiceResult::~OpenIotServiceResult()
+{}
+
+void OpenIotServiceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["OrderId"].isNull())
+		orderId_ = value["OrderId"].asString();
+
+}
+
+std::string OpenIotServiceResult::getOrderId()const
+{
+	return orderId_;
+}
+

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

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

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

@@ -1,84 +0,0 @@
-/*
- * 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/QueryClientIdsRequest.h>
-
-using AlibabaCloud::Iot::Model::QueryClientIdsRequest;
-
-QueryClientIdsRequest::QueryClientIdsRequest() :
-	RpcServiceRequest("iot", "2018-01-20", "QueryClientIds")
-{
-	setMethod(HttpRequest::Method::Post);
-}
-
-QueryClientIdsRequest::~QueryClientIdsRequest()
-{}
-
-std::string QueryClientIdsRequest::getAuthConfig()const
-{
-	return authConfig_;
-}
-
-void QueryClientIdsRequest::setAuthConfig(const std::string& authConfig)
-{
-	authConfig_ = authConfig;
-	setParameter("AuthConfig", authConfig);
-}
-
-std::string QueryClientIdsRequest::getIotId()const
-{
-	return iotId_;
-}
-
-void QueryClientIdsRequest::setIotId(const std::string& iotId)
-{
-	iotId_ = iotId;
-	setParameter("IotId", iotId);
-}
-
-std::string QueryClientIdsRequest::getIotInstanceId()const
-{
-	return iotInstanceId_;
-}
-
-void QueryClientIdsRequest::setIotInstanceId(const std::string& iotInstanceId)
-{
-	iotInstanceId_ = iotInstanceId;
-	setParameter("IotInstanceId", iotInstanceId);
-}
-
-std::string QueryClientIdsRequest::getApiProduct()const
-{
-	return apiProduct_;
-}
-
-void QueryClientIdsRequest::setApiProduct(const std::string& apiProduct)
-{
-	apiProduct_ = apiProduct;
-	setBodyParameter("ApiProduct", apiProduct);
-}
-
-std::string QueryClientIdsRequest::getApiRevision()const
-{
-	return apiRevision_;
-}
-
-void QueryClientIdsRequest::setApiRevision(const std::string& apiRevision)
-{
-	apiRevision_ = apiRevision;
-	setBodyParameter("ApiRevision", apiRevision);
-}
-

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

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

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

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

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

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

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

@@ -51,6 +51,17 @@ void SpeechByCombinationRequest::setCombinationList(const std::vector<std::strin
 	}
 }
 
+std::string SpeechByCombinationRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void SpeechByCombinationRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setBodyParameter("IotInstanceId", iotInstanceId);
+}
+
 std::string SpeechByCombinationRequest::getProductKey()const
 {
 	return productKey_;

+ 108 - 0
iot/src/model/SyncSpeechByCombinationRequest.cc

@@ -0,0 +1,108 @@
+/*
+ * 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/SyncSpeechByCombinationRequest.h>
+
+using AlibabaCloud::Iot::Model::SyncSpeechByCombinationRequest;
+
+SyncSpeechByCombinationRequest::SyncSpeechByCombinationRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "SyncSpeechByCombination")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+SyncSpeechByCombinationRequest::~SyncSpeechByCombinationRequest()
+{}
+
+std::string SyncSpeechByCombinationRequest::getIotId()const
+{
+	return iotId_;
+}
+
+void SyncSpeechByCombinationRequest::setIotId(const std::string& iotId)
+{
+	iotId_ = iotId;
+	setBodyParameter("IotId", iotId);
+}
+
+std::vector<std::string> SyncSpeechByCombinationRequest::getCombinationList()const
+{
+	return combinationList_;
+}
+
+void SyncSpeechByCombinationRequest::setCombinationList(const std::vector<std::string>& combinationList)
+{
+	combinationList_ = combinationList;
+	for(int dep1 = 0; dep1!= combinationList.size(); dep1++) {
+		setBodyParameter("CombinationList."+ std::to_string(dep1), combinationList.at(dep1));
+	}
+}
+
+std::string SyncSpeechByCombinationRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void SyncSpeechByCombinationRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setBodyParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string SyncSpeechByCombinationRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void SyncSpeechByCombinationRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setBodyParameter("ProductKey", productKey);
+}
+
+std::string SyncSpeechByCombinationRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void SyncSpeechByCombinationRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string SyncSpeechByCombinationRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void SyncSpeechByCombinationRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string SyncSpeechByCombinationRequest::getDeviceName()const
+{
+	return deviceName_;
+}
+
+void SyncSpeechByCombinationRequest::setDeviceName(const std::string& deviceName)
+{
+	deviceName_ = deviceName;
+	setBodyParameter("DeviceName", deviceName);
+}
+

+ 13 - 21
iot/src/model/QueryClientIdsResult.cc → iot/src/model/SyncSpeechByCombinationResult.cc

@@ -14,44 +14,36 @@
  * limitations under the License.
  */
 
-#include <alibabacloud/iot/model/QueryClientIdsResult.h>
+#include <alibabacloud/iot/model/SyncSpeechByCombinationResult.h>
 #include <json/json.h>
 
 using namespace AlibabaCloud::Iot;
 using namespace AlibabaCloud::Iot::Model;
 
-QueryClientIdsResult::QueryClientIdsResult() :
+SyncSpeechByCombinationResult::SyncSpeechByCombinationResult() :
 	ServiceResult()
 {}
 
-QueryClientIdsResult::QueryClientIdsResult(const std::string &payload) :
+SyncSpeechByCombinationResult::SyncSpeechByCombinationResult(const std::string &payload) :
 	ServiceResult()
 {
 	parse(payload);
 }
 
-QueryClientIdsResult::~QueryClientIdsResult()
+SyncSpeechByCombinationResult::~SyncSpeechByCombinationResult()
 {}
 
-void QueryClientIdsResult::parse(const std::string &payload)
+void SyncSpeechByCombinationResult::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["IotId"].isNull())
-		data_.iotId = dataNode["IotId"].asString();
-	auto allDynamicRegClientIdsNode = dataNode["DynamicRegClientIds"]["DynamicRegClientId"];
-	for (auto dataNodeDynamicRegClientIdsDynamicRegClientId : allDynamicRegClientIdsNode)
-	{
-		Data::DynamicRegClientId dynamicRegClientIdObject;
-		if(!dataNodeDynamicRegClientIdsDynamicRegClientId["ClientId"].isNull())
-			dynamicRegClientIdObject.clientId = dataNodeDynamicRegClientIdsDynamicRegClientId["ClientId"].asString();
-		if(!dataNodeDynamicRegClientIdsDynamicRegClientId["CreateTime"].isNull())
-			dynamicRegClientIdObject.createTime = std::stol(dataNodeDynamicRegClientIdsDynamicRegClientId["CreateTime"].asString());
-		data_.dynamicRegClientIds.push_back(dynamicRegClientIdObject);
-	}
+	if(!dataNode["Id"].isNull())
+		data_.id = dataNode["Id"].asString();
+	if(!dataNode["RetryCount"].isNull())
+		data_.retryCount = std::stoi(dataNode["RetryCount"].asString());
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())
@@ -61,22 +53,22 @@ void QueryClientIdsResult::parse(const std::string &payload)
 
 }
 
-QueryClientIdsResult::Data QueryClientIdsResult::getData()const
+SyncSpeechByCombinationResult::Data SyncSpeechByCombinationResult::getData()const
 {
 	return data_;
 }
 
-std::string QueryClientIdsResult::getErrorMessage()const
+std::string SyncSpeechByCombinationResult::getErrorMessage()const
 {
 	return errorMessage_;
 }
 
-std::string QueryClientIdsResult::getCode()const
+std::string SyncSpeechByCombinationResult::getCode()const
 {
 	return code_;
 }
 
-bool QueryClientIdsResult::getSuccess()const
+bool SyncSpeechByCombinationResult::getSuccess()const
 {
 	return success_;
 }

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

@@ -1,95 +0,0 @@
-/*
- * 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/TransformClientIdRequest.h>
-
-using AlibabaCloud::Iot::Model::TransformClientIdRequest;
-
-TransformClientIdRequest::TransformClientIdRequest() :
-	RpcServiceRequest("iot", "2018-01-20", "TransformClientId")
-{
-	setMethod(HttpRequest::Method::Post);
-}
-
-TransformClientIdRequest::~TransformClientIdRequest()
-{}
-
-std::string TransformClientIdRequest::getAuthConfig()const
-{
-	return authConfig_;
-}
-
-void TransformClientIdRequest::setAuthConfig(const std::string& authConfig)
-{
-	authConfig_ = authConfig;
-	setParameter("AuthConfig", authConfig);
-}
-
-std::string TransformClientIdRequest::getClientId()const
-{
-	return clientId_;
-}
-
-void TransformClientIdRequest::setClientId(const std::string& clientId)
-{
-	clientId_ = clientId;
-	setParameter("ClientId", clientId);
-}
-
-std::string TransformClientIdRequest::getIotId()const
-{
-	return iotId_;
-}
-
-void TransformClientIdRequest::setIotId(const std::string& iotId)
-{
-	iotId_ = iotId;
-	setParameter("IotId", iotId);
-}
-
-std::string TransformClientIdRequest::getIotInstanceId()const
-{
-	return iotInstanceId_;
-}
-
-void TransformClientIdRequest::setIotInstanceId(const std::string& iotInstanceId)
-{
-	iotInstanceId_ = iotInstanceId;
-	setParameter("IotInstanceId", iotInstanceId);
-}
-
-std::string TransformClientIdRequest::getApiProduct()const
-{
-	return apiProduct_;
-}
-
-void TransformClientIdRequest::setApiProduct(const std::string& apiProduct)
-{
-	apiProduct_ = apiProduct;
-	setBodyParameter("ApiProduct", apiProduct);
-}
-
-std::string TransformClientIdRequest::getApiRevision()const
-{
-	return apiRevision_;
-}
-
-void TransformClientIdRequest::setApiRevision(const std::string& apiRevision)
-{
-	apiRevision_ = apiRevision;
-	setBodyParameter("ApiRevision", apiRevision);
-}
-

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

@@ -27,6 +27,17 @@ UpdateProductRequest::UpdateProductRequest() :
 UpdateProductRequest::~UpdateProductRequest()
 {}
 
+std::string UpdateProductRequest::getRealTenantId()const
+{
+	return realTenantId_;
+}
+
+void UpdateProductRequest::setRealTenantId(const std::string& realTenantId)
+{
+	realTenantId_ = realTenantId;
+	setParameter("RealTenantId", realTenantId);
+}
+
 std::string UpdateProductRequest::getDescription()const
 {
 	return description_;
@@ -49,6 +60,17 @@ void UpdateProductRequest::setAccessKeyId(const std::string& accessKeyId)
 	setParameter("AccessKeyId", accessKeyId);
 }
 
+std::string UpdateProductRequest::getRealTripartiteKey()const
+{
+	return realTripartiteKey_;
+}
+
+void UpdateProductRequest::setRealTripartiteKey(const std::string& realTripartiteKey)
+{
+	realTripartiteKey_ = realTripartiteKey;
+	setParameter("RealTripartiteKey", realTripartiteKey);
+}
+
 std::string UpdateProductRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;