Parcourir la source

Pub Support MessageExpiryInterval and Retained.

sdk-team il y a 3 ans
Parent
commit
76b653f2fe
77 fichiers modifiés avec 2537 ajouts et 109 suppressions
  1. 1 1
      VERSION
  2. 24 0
      iot/CMakeLists.txt
  3. 48 0
      iot/include/alibabacloud/iot/IotClient.h
  4. 72 0
      iot/include/alibabacloud/iot/model/AsyncRRpcRequest.h
  5. 57 0
      iot/include/alibabacloud/iot/model/AsyncRRpcResult.h
  6. 8 0
      iot/include/alibabacloud/iot/model/BatchCheckDeviceNamesResult.h
  7. 0 3
      iot/include/alibabacloud/iot/model/BatchCheckImportDeviceRequest.h
  8. 8 0
      iot/include/alibabacloud/iot/model/BatchCheckImportDeviceResult.h
  9. 1 3
      iot/include/alibabacloud/iot/model/BatchCheckVehicleDeviceRequest.h
  10. 11 0
      iot/include/alibabacloud/iot/model/BatchCheckVehicleDeviceResult.h
  11. 57 0
      iot/include/alibabacloud/iot/model/BatchGrayMigrationDeviceRequest.h
  12. 68 0
      iot/include/alibabacloud/iot/model/BatchGrayMigrationDeviceResult.h
  13. 0 3
      iot/include/alibabacloud/iot/model/BatchImportDeviceRequest.h
  14. 8 0
      iot/include/alibabacloud/iot/model/BatchImportDeviceResult.h
  15. 1 3
      iot/include/alibabacloud/iot/model/BatchImportVehicleDeviceRequest.h
  16. 15 0
      iot/include/alibabacloud/iot/model/BatchImportVehicleDeviceResult.h
  17. 6 0
      iot/include/alibabacloud/iot/model/CreateConsumerGroupRequest.h
  18. 6 0
      iot/include/alibabacloud/iot/model/CreateProductTopicRequest.h
  19. 75 0
      iot/include/alibabacloud/iot/model/CreateTopicConfigRequest.h
  20. 55 0
      iot/include/alibabacloud/iot/model/CreateTopicConfigResult.h
  21. 60 0
      iot/include/alibabacloud/iot/model/DeleteTopicConfigRequest.h
  22. 55 0
      iot/include/alibabacloud/iot/model/DeleteTopicConfigResult.h
  23. 3 0
      iot/include/alibabacloud/iot/model/ImportDTDataRequest.h
  24. 3 0
      iot/include/alibabacloud/iot/model/ListDeviceDistributeJobRequest.h
  25. 7 0
      iot/include/alibabacloud/iot/model/QueryBatchRegisterDeviceStatusResult.h
  26. 6 0
      iot/include/alibabacloud/iot/model/QueryConsumerGroupListRequest.h
  27. 3 0
      iot/include/alibabacloud/iot/model/QueryDeviceEventDataRequest.h
  28. 3 0
      iot/include/alibabacloud/iot/model/QueryDevicePropertyDataRequest.h
  29. 3 0
      iot/include/alibabacloud/iot/model/QueryDeviceServiceDataRequest.h
  30. 2 0
      iot/include/alibabacloud/iot/model/QueryProductTopicResult.h
  31. 57 0
      iot/include/alibabacloud/iot/model/QueryTopicConfigRequest.h
  32. 67 0
      iot/include/alibabacloud/iot/model/QueryTopicConfigResult.h
  33. 0 3
      iot/include/alibabacloud/iot/model/QueryVehicleDeviceRequest.h
  34. 16 11
      iot/include/alibabacloud/iot/model/QueryVehicleDeviceResult.h
  35. 63 0
      iot/include/alibabacloud/iot/model/TestSwitchRequest.h
  36. 57 0
      iot/include/alibabacloud/iot/model/TestSwitchResult.h
  37. 6 0
      iot/include/alibabacloud/iot/model/UpdateProductTopicRequest.h
  38. 12 0
      iot/include/alibabacloud/iot/model/UpdateTopicConfigRequest.h
  39. 2 2
      iot/include/alibabacloud/iot/model/UpdateTopicConfigResult.h
  40. 216 0
      iot/src/IotClient.cc
  41. 128 0
      iot/src/model/AsyncRRpcRequest.cc
  42. 72 0
      iot/src/model/AsyncRRpcResult.cc
  43. 1 1
      iot/src/model/BatchCheckDeviceNamesRequest.cc
  44. 15 0
      iot/src/model/BatchCheckDeviceNamesResult.cc
  45. 0 11
      iot/src/model/BatchCheckImportDeviceRequest.cc
  46. 14 0
      iot/src/model/BatchCheckImportDeviceResult.cc
  47. 1 11
      iot/src/model/BatchCheckVehicleDeviceRequest.cc
  48. 22 0
      iot/src/model/BatchCheckVehicleDeviceResult.cc
  49. 75 0
      iot/src/model/BatchGrayMigrationDeviceRequest.cc
  50. 85 0
      iot/src/model/BatchGrayMigrationDeviceResult.cc
  51. 0 11
      iot/src/model/BatchImportDeviceRequest.cc
  52. 14 0
      iot/src/model/BatchImportDeviceResult.cc
  53. 1 11
      iot/src/model/BatchImportVehicleDeviceRequest.cc
  54. 34 0
      iot/src/model/BatchImportVehicleDeviceResult.cc
  55. 22 0
      iot/src/model/CreateConsumerGroupRequest.cc
  56. 22 0
      iot/src/model/CreateProductTopicRequest.cc
  57. 139 0
      iot/src/model/CreateTopicConfigRequest.cc
  58. 65 0
      iot/src/model/CreateTopicConfigResult.cc
  59. 84 0
      iot/src/model/DeleteTopicConfigRequest.cc
  60. 65 0
      iot/src/model/DeleteTopicConfigResult.cc
  61. 11 0
      iot/src/model/ImportDTDataRequest.cc
  62. 11 0
      iot/src/model/ListDeviceDistributeJobRequest.cc
  63. 12 0
      iot/src/model/QueryBatchRegisterDeviceStatusResult.cc
  64. 22 0
      iot/src/model/QueryConsumerGroupListRequest.cc
  65. 11 0
      iot/src/model/QueryDeviceEventDataRequest.cc
  66. 11 0
      iot/src/model/QueryDevicePropertyDataRequest.cc
  67. 11 0
      iot/src/model/QueryDeviceServiceDataRequest.cc
  68. 4 0
      iot/src/model/QueryProductTopicResult.cc
  69. 73 0
      iot/src/model/QueryTopicConfigRequest.cc
  70. 90 0
      iot/src/model/QueryTopicConfigResult.cc
  71. 0 11
      iot/src/model/QueryVehicleDeviceRequest.cc
  72. 23 20
      iot/src/model/QueryVehicleDeviceResult.cc
  73. 95 0
      iot/src/model/TestSwitchRequest.cc
  74. 72 0
      iot/src/model/TestSwitchResult.cc
  75. 22 0
      iot/src/model/UpdateProductTopicRequest.cc
  76. 44 0
      iot/src/model/UpdateTopicConfigRequest.cc
  77. 4 4
      iot/src/model/UpdateTopicConfigResult.cc

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1564
+1.36.1565

+ 24 - 0
iot/CMakeLists.txt

@@ -25,6 +25,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/AddDataForApiSourceResult.h
 	include/alibabacloud/iot/model/AddShareTaskDeviceRequest.h
 	include/alibabacloud/iot/model/AddShareTaskDeviceResult.h
+	include/alibabacloud/iot/model/AsyncRRpcRequest.h
+	include/alibabacloud/iot/model/AsyncRRpcResult.h
 	include/alibabacloud/iot/model/AttachDestinationRequest.h
 	include/alibabacloud/iot/model/AttachDestinationResult.h
 	include/alibabacloud/iot/model/AttachParserDataSourceRequest.h
@@ -73,6 +75,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/BatchGetEdgeInstanceDeviceDriverResult.h
 	include/alibabacloud/iot/model/BatchGetEdgeInstanceDriverConfigsRequest.h
 	include/alibabacloud/iot/model/BatchGetEdgeInstanceDriverConfigsResult.h
+	include/alibabacloud/iot/model/BatchGrayMigrationDeviceRequest.h
+	include/alibabacloud/iot/model/BatchGrayMigrationDeviceResult.h
 	include/alibabacloud/iot/model/BatchImportDeviceRequest.h
 	include/alibabacloud/iot/model/BatchImportDeviceResult.h
 	include/alibabacloud/iot/model/BatchImportVehicleDeviceRequest.h
@@ -221,6 +225,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/CreateThingModelResult.h
 	include/alibabacloud/iot/model/CreateThingScriptRequest.h
 	include/alibabacloud/iot/model/CreateThingScriptResult.h
+	include/alibabacloud/iot/model/CreateTopicConfigRequest.h
+	include/alibabacloud/iot/model/CreateTopicConfigResult.h
 	include/alibabacloud/iot/model/CreateTopicRouteTableRequest.h
 	include/alibabacloud/iot/model/CreateTopicRouteTableResult.h
 	include/alibabacloud/iot/model/DeleteClientIdsRequest.h
@@ -297,6 +303,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/DeleteSubscribeRelationResult.h
 	include/alibabacloud/iot/model/DeleteThingModelRequest.h
 	include/alibabacloud/iot/model/DeleteThingModelResult.h
+	include/alibabacloud/iot/model/DeleteTopicConfigRequest.h
+	include/alibabacloud/iot/model/DeleteTopicConfigResult.h
 	include/alibabacloud/iot/model/DeleteTopicRouteTableRequest.h
 	include/alibabacloud/iot/model/DeleteTopicRouteTableResult.h
 	include/alibabacloud/iot/model/DetachDestinationRequest.h
@@ -669,6 +677,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/QueryThingModelExtendConfigPublishedResult.h
 	include/alibabacloud/iot/model/QueryThingModelPublishedRequest.h
 	include/alibabacloud/iot/model/QueryThingModelPublishedResult.h
+	include/alibabacloud/iot/model/QueryTopicConfigRequest.h
+	include/alibabacloud/iot/model/QueryTopicConfigResult.h
 	include/alibabacloud/iot/model/QueryTopicReverseRouteTableRequest.h
 	include/alibabacloud/iot/model/QueryTopicReverseRouteTableResult.h
 	include/alibabacloud/iot/model/QueryTopicRouteTableRequest.h
@@ -747,6 +757,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/SyncSpeechByCombinationResult.h
 	include/alibabacloud/iot/model/TestSpeechRequest.h
 	include/alibabacloud/iot/model/TestSpeechResult.h
+	include/alibabacloud/iot/model/TestSwitchRequest.h
+	include/alibabacloud/iot/model/TestSwitchResult.h
 	include/alibabacloud/iot/model/TransformClientIdRequest.h
 	include/alibabacloud/iot/model/TransformClientIdResult.h
 	include/alibabacloud/iot/model/TriggerSceneRuleRequest.h
@@ -826,6 +838,8 @@ set(iot_src
 	src/model/AddDataForApiSourceResult.cc
 	src/model/AddShareTaskDeviceRequest.cc
 	src/model/AddShareTaskDeviceResult.cc
+	src/model/AsyncRRpcRequest.cc
+	src/model/AsyncRRpcResult.cc
 	src/model/AttachDestinationRequest.cc
 	src/model/AttachDestinationResult.cc
 	src/model/AttachParserDataSourceRequest.cc
@@ -874,6 +888,8 @@ set(iot_src
 	src/model/BatchGetEdgeInstanceDeviceDriverResult.cc
 	src/model/BatchGetEdgeInstanceDriverConfigsRequest.cc
 	src/model/BatchGetEdgeInstanceDriverConfigsResult.cc
+	src/model/BatchGrayMigrationDeviceRequest.cc
+	src/model/BatchGrayMigrationDeviceResult.cc
 	src/model/BatchImportDeviceRequest.cc
 	src/model/BatchImportDeviceResult.cc
 	src/model/BatchImportVehicleDeviceRequest.cc
@@ -1022,6 +1038,8 @@ set(iot_src
 	src/model/CreateThingModelResult.cc
 	src/model/CreateThingScriptRequest.cc
 	src/model/CreateThingScriptResult.cc
+	src/model/CreateTopicConfigRequest.cc
+	src/model/CreateTopicConfigResult.cc
 	src/model/CreateTopicRouteTableRequest.cc
 	src/model/CreateTopicRouteTableResult.cc
 	src/model/DeleteClientIdsRequest.cc
@@ -1098,6 +1116,8 @@ set(iot_src
 	src/model/DeleteSubscribeRelationResult.cc
 	src/model/DeleteThingModelRequest.cc
 	src/model/DeleteThingModelResult.cc
+	src/model/DeleteTopicConfigRequest.cc
+	src/model/DeleteTopicConfigResult.cc
 	src/model/DeleteTopicRouteTableRequest.cc
 	src/model/DeleteTopicRouteTableResult.cc
 	src/model/DetachDestinationRequest.cc
@@ -1470,6 +1490,8 @@ set(iot_src
 	src/model/QueryThingModelExtendConfigPublishedResult.cc
 	src/model/QueryThingModelPublishedRequest.cc
 	src/model/QueryThingModelPublishedResult.cc
+	src/model/QueryTopicConfigRequest.cc
+	src/model/QueryTopicConfigResult.cc
 	src/model/QueryTopicReverseRouteTableRequest.cc
 	src/model/QueryTopicReverseRouteTableResult.cc
 	src/model/QueryTopicRouteTableRequest.cc
@@ -1548,6 +1570,8 @@ set(iot_src
 	src/model/SyncSpeechByCombinationResult.cc
 	src/model/TestSpeechRequest.cc
 	src/model/TestSpeechResult.cc
+	src/model/TestSwitchRequest.cc
+	src/model/TestSwitchResult.cc
 	src/model/TransformClientIdRequest.cc
 	src/model/TransformClientIdResult.cc
 	src/model/TriggerSceneRuleRequest.cc

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

@@ -26,6 +26,8 @@
 #include "model/AddDataForApiSourceResult.h"
 #include "model/AddShareTaskDeviceRequest.h"
 #include "model/AddShareTaskDeviceResult.h"
+#include "model/AsyncRRpcRequest.h"
+#include "model/AsyncRRpcResult.h"
 #include "model/AttachDestinationRequest.h"
 #include "model/AttachDestinationResult.h"
 #include "model/AttachParserDataSourceRequest.h"
@@ -74,6 +76,8 @@
 #include "model/BatchGetEdgeInstanceDeviceDriverResult.h"
 #include "model/BatchGetEdgeInstanceDriverConfigsRequest.h"
 #include "model/BatchGetEdgeInstanceDriverConfigsResult.h"
+#include "model/BatchGrayMigrationDeviceRequest.h"
+#include "model/BatchGrayMigrationDeviceResult.h"
 #include "model/BatchImportDeviceRequest.h"
 #include "model/BatchImportDeviceResult.h"
 #include "model/BatchImportVehicleDeviceRequest.h"
@@ -222,6 +226,8 @@
 #include "model/CreateThingModelResult.h"
 #include "model/CreateThingScriptRequest.h"
 #include "model/CreateThingScriptResult.h"
+#include "model/CreateTopicConfigRequest.h"
+#include "model/CreateTopicConfigResult.h"
 #include "model/CreateTopicRouteTableRequest.h"
 #include "model/CreateTopicRouteTableResult.h"
 #include "model/DeleteClientIdsRequest.h"
@@ -298,6 +304,8 @@
 #include "model/DeleteSubscribeRelationResult.h"
 #include "model/DeleteThingModelRequest.h"
 #include "model/DeleteThingModelResult.h"
+#include "model/DeleteTopicConfigRequest.h"
+#include "model/DeleteTopicConfigResult.h"
 #include "model/DeleteTopicRouteTableRequest.h"
 #include "model/DeleteTopicRouteTableResult.h"
 #include "model/DetachDestinationRequest.h"
@@ -670,6 +678,8 @@
 #include "model/QueryThingModelExtendConfigPublishedResult.h"
 #include "model/QueryThingModelPublishedRequest.h"
 #include "model/QueryThingModelPublishedResult.h"
+#include "model/QueryTopicConfigRequest.h"
+#include "model/QueryTopicConfigResult.h"
 #include "model/QueryTopicReverseRouteTableRequest.h"
 #include "model/QueryTopicReverseRouteTableResult.h"
 #include "model/QueryTopicRouteTableRequest.h"
@@ -748,6 +758,8 @@
 #include "model/SyncSpeechByCombinationResult.h"
 #include "model/TestSpeechRequest.h"
 #include "model/TestSpeechResult.h"
+#include "model/TestSwitchRequest.h"
+#include "model/TestSwitchResult.h"
 #include "model/TransformClientIdRequest.h"
 #include "model/TransformClientIdResult.h"
 #include "model/TriggerSceneRuleRequest.h"
@@ -835,6 +847,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::AddShareTaskDeviceResult> AddShareTaskDeviceOutcome;
 			typedef std::future<AddShareTaskDeviceOutcome> AddShareTaskDeviceOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::AddShareTaskDeviceRequest&, const AddShareTaskDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddShareTaskDeviceAsyncHandler;
+			typedef Outcome<Error, Model::AsyncRRpcResult> AsyncRRpcOutcome;
+			typedef std::future<AsyncRRpcOutcome> AsyncRRpcOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::AsyncRRpcRequest&, const AsyncRRpcOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AsyncRRpcAsyncHandler;
 			typedef Outcome<Error, Model::AttachDestinationResult> AttachDestinationOutcome;
 			typedef std::future<AttachDestinationOutcome> AttachDestinationOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::AttachDestinationRequest&, const AttachDestinationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AttachDestinationAsyncHandler;
@@ -907,6 +922,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::BatchGetEdgeInstanceDriverConfigsResult> BatchGetEdgeInstanceDriverConfigsOutcome;
 			typedef std::future<BatchGetEdgeInstanceDriverConfigsOutcome> BatchGetEdgeInstanceDriverConfigsOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::BatchGetEdgeInstanceDriverConfigsRequest&, const BatchGetEdgeInstanceDriverConfigsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchGetEdgeInstanceDriverConfigsAsyncHandler;
+			typedef Outcome<Error, Model::BatchGrayMigrationDeviceResult> BatchGrayMigrationDeviceOutcome;
+			typedef std::future<BatchGrayMigrationDeviceOutcome> BatchGrayMigrationDeviceOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::BatchGrayMigrationDeviceRequest&, const BatchGrayMigrationDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchGrayMigrationDeviceAsyncHandler;
 			typedef Outcome<Error, Model::BatchImportDeviceResult> BatchImportDeviceOutcome;
 			typedef std::future<BatchImportDeviceOutcome> BatchImportDeviceOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::BatchImportDeviceRequest&, const BatchImportDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchImportDeviceAsyncHandler;
@@ -1129,6 +1147,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateThingScriptResult> CreateThingScriptOutcome;
 			typedef std::future<CreateThingScriptOutcome> CreateThingScriptOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CreateThingScriptRequest&, const CreateThingScriptOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateThingScriptAsyncHandler;
+			typedef Outcome<Error, Model::CreateTopicConfigResult> CreateTopicConfigOutcome;
+			typedef std::future<CreateTopicConfigOutcome> CreateTopicConfigOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::CreateTopicConfigRequest&, const CreateTopicConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateTopicConfigAsyncHandler;
 			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;
@@ -1243,6 +1264,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteThingModelResult> DeleteThingModelOutcome;
 			typedef std::future<DeleteThingModelOutcome> DeleteThingModelOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteThingModelRequest&, const DeleteThingModelOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteThingModelAsyncHandler;
+			typedef Outcome<Error, Model::DeleteTopicConfigResult> DeleteTopicConfigOutcome;
+			typedef std::future<DeleteTopicConfigOutcome> DeleteTopicConfigOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::DeleteTopicConfigRequest&, const DeleteTopicConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTopicConfigAsyncHandler;
 			typedef Outcome<Error, Model::DeleteTopicRouteTableResult> DeleteTopicRouteTableOutcome;
 			typedef std::future<DeleteTopicRouteTableOutcome> DeleteTopicRouteTableOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteTopicRouteTableRequest&, const DeleteTopicRouteTableOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTopicRouteTableAsyncHandler;
@@ -1801,6 +1825,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::QueryThingModelPublishedResult> QueryThingModelPublishedOutcome;
 			typedef std::future<QueryThingModelPublishedOutcome> QueryThingModelPublishedOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryThingModelPublishedRequest&, const QueryThingModelPublishedOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryThingModelPublishedAsyncHandler;
+			typedef Outcome<Error, Model::QueryTopicConfigResult> QueryTopicConfigOutcome;
+			typedef std::future<QueryTopicConfigOutcome> QueryTopicConfigOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::QueryTopicConfigRequest&, const QueryTopicConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryTopicConfigAsyncHandler;
 			typedef Outcome<Error, Model::QueryTopicReverseRouteTableResult> QueryTopicReverseRouteTableOutcome;
 			typedef std::future<QueryTopicReverseRouteTableOutcome> QueryTopicReverseRouteTableOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryTopicReverseRouteTableRequest&, const QueryTopicReverseRouteTableOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryTopicReverseRouteTableAsyncHandler;
@@ -1918,6 +1945,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::TestSpeechResult> TestSpeechOutcome;
 			typedef std::future<TestSpeechOutcome> TestSpeechOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::TestSpeechRequest&, const TestSpeechOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> TestSpeechAsyncHandler;
+			typedef Outcome<Error, Model::TestSwitchResult> TestSwitchOutcome;
+			typedef std::future<TestSwitchOutcome> TestSwitchOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::TestSwitchRequest&, const TestSwitchOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> TestSwitchAsyncHandler;
 			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;
@@ -2037,6 +2067,9 @@ namespace AlibabaCloud
 			AddShareTaskDeviceOutcome addShareTaskDevice(const Model::AddShareTaskDeviceRequest &request)const;
 			void addShareTaskDeviceAsync(const Model::AddShareTaskDeviceRequest& request, const AddShareTaskDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AddShareTaskDeviceOutcomeCallable addShareTaskDeviceCallable(const Model::AddShareTaskDeviceRequest& request) const;
+			AsyncRRpcOutcome asyncRRpc(const Model::AsyncRRpcRequest &request)const;
+			void asyncRRpcAsync(const Model::AsyncRRpcRequest& request, const AsyncRRpcAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			AsyncRRpcOutcomeCallable asyncRRpcCallable(const Model::AsyncRRpcRequest& request) const;
 			AttachDestinationOutcome attachDestination(const Model::AttachDestinationRequest &request)const;
 			void attachDestinationAsync(const Model::AttachDestinationRequest& request, const AttachDestinationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AttachDestinationOutcomeCallable attachDestinationCallable(const Model::AttachDestinationRequest& request) const;
@@ -2109,6 +2142,9 @@ namespace AlibabaCloud
 			BatchGetEdgeInstanceDriverConfigsOutcome batchGetEdgeInstanceDriverConfigs(const Model::BatchGetEdgeInstanceDriverConfigsRequest &request)const;
 			void batchGetEdgeInstanceDriverConfigsAsync(const Model::BatchGetEdgeInstanceDriverConfigsRequest& request, const BatchGetEdgeInstanceDriverConfigsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			BatchGetEdgeInstanceDriverConfigsOutcomeCallable batchGetEdgeInstanceDriverConfigsCallable(const Model::BatchGetEdgeInstanceDriverConfigsRequest& request) const;
+			BatchGrayMigrationDeviceOutcome batchGrayMigrationDevice(const Model::BatchGrayMigrationDeviceRequest &request)const;
+			void batchGrayMigrationDeviceAsync(const Model::BatchGrayMigrationDeviceRequest& request, const BatchGrayMigrationDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			BatchGrayMigrationDeviceOutcomeCallable batchGrayMigrationDeviceCallable(const Model::BatchGrayMigrationDeviceRequest& request) const;
 			BatchImportDeviceOutcome batchImportDevice(const Model::BatchImportDeviceRequest &request)const;
 			void batchImportDeviceAsync(const Model::BatchImportDeviceRequest& request, const BatchImportDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			BatchImportDeviceOutcomeCallable batchImportDeviceCallable(const Model::BatchImportDeviceRequest& request) const;
@@ -2331,6 +2367,9 @@ namespace AlibabaCloud
 			CreateThingScriptOutcome createThingScript(const Model::CreateThingScriptRequest &request)const;
 			void createThingScriptAsync(const Model::CreateThingScriptRequest& request, const CreateThingScriptAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateThingScriptOutcomeCallable createThingScriptCallable(const Model::CreateThingScriptRequest& request) const;
+			CreateTopicConfigOutcome createTopicConfig(const Model::CreateTopicConfigRequest &request)const;
+			void createTopicConfigAsync(const Model::CreateTopicConfigRequest& request, const CreateTopicConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateTopicConfigOutcomeCallable createTopicConfigCallable(const Model::CreateTopicConfigRequest& request) const;
 			CreateTopicRouteTableOutcome createTopicRouteTable(const Model::CreateTopicRouteTableRequest &request)const;
 			void createTopicRouteTableAsync(const Model::CreateTopicRouteTableRequest& request, const CreateTopicRouteTableAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateTopicRouteTableOutcomeCallable createTopicRouteTableCallable(const Model::CreateTopicRouteTableRequest& request) const;
@@ -2445,6 +2484,9 @@ namespace AlibabaCloud
 			DeleteThingModelOutcome deleteThingModel(const Model::DeleteThingModelRequest &request)const;
 			void deleteThingModelAsync(const Model::DeleteThingModelRequest& request, const DeleteThingModelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteThingModelOutcomeCallable deleteThingModelCallable(const Model::DeleteThingModelRequest& request) const;
+			DeleteTopicConfigOutcome deleteTopicConfig(const Model::DeleteTopicConfigRequest &request)const;
+			void deleteTopicConfigAsync(const Model::DeleteTopicConfigRequest& request, const DeleteTopicConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteTopicConfigOutcomeCallable deleteTopicConfigCallable(const Model::DeleteTopicConfigRequest& request) const;
 			DeleteTopicRouteTableOutcome deleteTopicRouteTable(const Model::DeleteTopicRouteTableRequest &request)const;
 			void deleteTopicRouteTableAsync(const Model::DeleteTopicRouteTableRequest& request, const DeleteTopicRouteTableAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteTopicRouteTableOutcomeCallable deleteTopicRouteTableCallable(const Model::DeleteTopicRouteTableRequest& request) const;
@@ -3003,6 +3045,9 @@ namespace AlibabaCloud
 			QueryThingModelPublishedOutcome queryThingModelPublished(const Model::QueryThingModelPublishedRequest &request)const;
 			void queryThingModelPublishedAsync(const Model::QueryThingModelPublishedRequest& request, const QueryThingModelPublishedAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryThingModelPublishedOutcomeCallable queryThingModelPublishedCallable(const Model::QueryThingModelPublishedRequest& request) const;
+			QueryTopicConfigOutcome queryTopicConfig(const Model::QueryTopicConfigRequest &request)const;
+			void queryTopicConfigAsync(const Model::QueryTopicConfigRequest& request, const QueryTopicConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryTopicConfigOutcomeCallable queryTopicConfigCallable(const Model::QueryTopicConfigRequest& request) const;
 			QueryTopicReverseRouteTableOutcome queryTopicReverseRouteTable(const Model::QueryTopicReverseRouteTableRequest &request)const;
 			void queryTopicReverseRouteTableAsync(const Model::QueryTopicReverseRouteTableRequest& request, const QueryTopicReverseRouteTableAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryTopicReverseRouteTableOutcomeCallable queryTopicReverseRouteTableCallable(const Model::QueryTopicReverseRouteTableRequest& request) const;
@@ -3120,6 +3165,9 @@ namespace AlibabaCloud
 			TestSpeechOutcome testSpeech(const Model::TestSpeechRequest &request)const;
 			void testSpeechAsync(const Model::TestSpeechRequest& request, const TestSpeechAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			TestSpeechOutcomeCallable testSpeechCallable(const Model::TestSpeechRequest& request) const;
+			TestSwitchOutcome testSwitch(const Model::TestSwitchRequest &request)const;
+			void testSwitchAsync(const Model::TestSwitchRequest& request, const TestSwitchAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			TestSwitchOutcomeCallable testSwitchCallable(const Model::TestSwitchRequest& 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;

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

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_ASYNCRRPCREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_ASYNCRRPCREQUEST_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 AsyncRRpcRequest : public RpcServiceRequest
+			{
+
+			public:
+				AsyncRRpcRequest();
+				~AsyncRRpcRequest();
+
+				std::string getMessageContent()const;
+				void setMessageContent(const std::string& messageContent);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getExtInfo()const;
+				void setExtInfo(const std::string& extInfo);
+				std::string getTopicFullName()const;
+				void setTopicFullName(const std::string& topicFullName);
+				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 messageContent_;
+				std::string accessKeyId_;
+				std::string iotInstanceId_;
+				std::string extInfo_;
+				std::string topicFullName_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string deviceName_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_ASYNCRRPCREQUEST_H_

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

+ 8 - 0
iot/include/alibabacloud/iot/model/BatchCheckDeviceNamesResult.h

@@ -34,8 +34,16 @@ namespace AlibabaCloud
 			public:
 				struct Data
 				{
+					struct InvalidDetailListItem
+					{
+						std::string errorMsg;
+						std::string nickName;
+						std::string deviceName;
+					};
 					std::vector<std::string> invalidDeviceNameList;
 					long applyId;
+					std::vector<InvalidDetailListItem> invalidDetailList;
+					std::vector<std::string> repeatedDeviceNameList;
 					std::vector<std::string> invalidDeviceNicknameList;
 				};
 

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

@@ -42,8 +42,6 @@ namespace AlibabaCloud
 				BatchCheckImportDeviceRequest();
 				~BatchCheckImportDeviceRequest();
 
-				std::string getAccessKeyId()const;
-				void setAccessKeyId(const std::string& accessKeyId);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getProductKey()const;
@@ -56,7 +54,6 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 
             private:
-				std::string accessKeyId_;
 				std::string iotInstanceId_;
 				std::string productKey_;
 				std::vector<DeviceList> deviceList_;

+ 8 - 0
iot/include/alibabacloud/iot/model/BatchCheckImportDeviceResult.h

@@ -34,7 +34,15 @@ namespace AlibabaCloud
 			public:
 				struct Data
 				{
+					struct InvalidDetailListItem
+					{
+						std::string deviceSecret;
+						std::string errorMsg;
+						std::string sn;
+						std::string deviceName;
+					};
 					std::vector<std::string> invalidDeviceNameList;
+					std::vector<InvalidDetailListItem> invalidDetailList;
 					std::vector<std::string> repeatedDeviceNameList;
 					std::vector<std::string> invalidDeviceSecretList;
 					std::vector<std::string> invalidSnList;

+ 1 - 3
iot/include/alibabacloud/iot/model/BatchCheckVehicleDeviceRequest.h

@@ -33,6 +33,7 @@ namespace AlibabaCloud
 			public:
 				struct DeviceList
 				{
+					std::string deviceName;
 					std::string deviceId;
 					std::string manufacturer;
 					std::string deviceModel;
@@ -42,8 +43,6 @@ namespace AlibabaCloud
 				BatchCheckVehicleDeviceRequest();
 				~BatchCheckVehicleDeviceRequest();
 
-				std::string getAccessKeyId()const;
-				void setAccessKeyId(const std::string& accessKeyId);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getProductKey()const;
@@ -56,7 +55,6 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 
             private:
-				std::string accessKeyId_;
 				std::string iotInstanceId_;
 				std::string productKey_;
 				std::vector<DeviceList> deviceList_;

+ 11 - 0
iot/include/alibabacloud/iot/model/BatchCheckVehicleDeviceResult.h

@@ -34,9 +34,20 @@ namespace AlibabaCloud
 			public:
 				struct Data
 				{
+					struct InvalidDetailListItem
+					{
+						std::string deviceModel;
+						std::string deviceId;
+						std::string manufacturer;
+						std::string errorMsg;
+						std::string deviceName;
+					};
+					std::vector<std::string> invalidDeviceNameList;
 					std::vector<std::string> invalidDeviceIdList;
 					std::vector<std::string> repeatedDeviceIdList;
 					std::vector<std::string> invalidManufacturerList;
+					std::vector<InvalidDetailListItem> invalidDetailList;
+					std::vector<std::string> repeatedDeviceNameList;
 					std::vector<std::string> invalidDeviceModelList;
 				};
 

+ 57 - 0
iot/include/alibabacloud/iot/model/BatchGrayMigrationDeviceRequest.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_BATCHGRAYMIGRATIONDEVICEREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_BATCHGRAYMIGRATIONDEVICEREQUEST_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 BatchGrayMigrationDeviceRequest : public RpcServiceRequest
+			{
+
+			public:
+				BatchGrayMigrationDeviceRequest();
+				~BatchGrayMigrationDeviceRequest();
+
+				std::vector<std::string> getDeviceNames()const;
+				void setDeviceNames(const std::vector<std::string>& deviceNames);
+				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);
+
+            private:
+				std::vector<std::string> deviceNames_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_BATCHGRAYMIGRATIONDEVICEREQUEST_H_

+ 68 - 0
iot/include/alibabacloud/iot/model/BatchGrayMigrationDeviceResult.h

@@ -0,0 +1,68 @@
+/*
+ * 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_BATCHGRAYMIGRATIONDEVICERESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_BATCHGRAYMIGRATIONDEVICERESULT_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 BatchGrayMigrationDeviceResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct Item
+					{
+						std::string status;
+						std::string message;
+						int code;
+						std::string deviceName;
+					};
+					std::vector<Item> details;
+				};
+
+
+				BatchGrayMigrationDeviceResult();
+				explicit BatchGrayMigrationDeviceResult(const std::string &payload);
+				~BatchGrayMigrationDeviceResult();
+				Data getData()const;
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Data data_;
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_BATCHGRAYMIGRATIONDEVICERESULT_H_

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

@@ -42,8 +42,6 @@ namespace AlibabaCloud
 				BatchImportDeviceRequest();
 				~BatchImportDeviceRequest();
 
-				std::string getAccessKeyId()const;
-				void setAccessKeyId(const std::string& accessKeyId);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getProductKey()const;
@@ -56,7 +54,6 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 
             private:
-				std::string accessKeyId_;
 				std::string iotInstanceId_;
 				std::string productKey_;
 				std::vector<DeviceList> deviceList_;

+ 8 - 0
iot/include/alibabacloud/iot/model/BatchImportDeviceResult.h

@@ -34,8 +34,16 @@ namespace AlibabaCloud
 			public:
 				struct Data
 				{
+					struct InvalidDetailListItem
+					{
+						std::string deviceSecret;
+						std::string errorMsg;
+						std::string sn;
+						std::string deviceName;
+					};
 					std::vector<std::string> invalidDeviceNameList;
 					long applyId;
+					std::vector<InvalidDetailListItem> invalidDetailList;
 					std::vector<std::string> repeatedDeviceNameList;
 					std::vector<std::string> invalidDeviceSecretList;
 					std::vector<std::string> invalidSnList;

+ 1 - 3
iot/include/alibabacloud/iot/model/BatchImportVehicleDeviceRequest.h

@@ -33,6 +33,7 @@ namespace AlibabaCloud
 			public:
 				struct DeviceList
 				{
+					std::string deviceName;
 					std::string deviceId;
 					std::string manufacturer;
 					std::string deviceModel;
@@ -42,8 +43,6 @@ namespace AlibabaCloud
 				BatchImportVehicleDeviceRequest();
 				~BatchImportVehicleDeviceRequest();
 
-				std::string getAccessKeyId()const;
-				void setAccessKeyId(const std::string& accessKeyId);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getProductKey()const;
@@ -56,7 +55,6 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 
             private:
-				std::string accessKeyId_;
 				std::string iotInstanceId_;
 				std::string productKey_;
 				std::vector<DeviceList> deviceList_;

+ 15 - 0
iot/include/alibabacloud/iot/model/BatchImportVehicleDeviceResult.h

@@ -34,7 +34,22 @@ namespace AlibabaCloud
 			public:
 				struct Data
 				{
+					struct InvalidDetailListItem
+					{
+						std::string deviceModel;
+						std::string deviceId;
+						std::string manufacturer;
+						std::string errorMsg;
+						std::string deviceName;
+					};
+					std::vector<std::string> invalidDeviceNameList;
+					std::vector<std::string> invalidDeviceIdList;
+					std::vector<std::string> repeatedDeviceIdList;
 					long applyId;
+					std::vector<std::string> invalidManufacturerList;
+					std::vector<InvalidDetailListItem> invalidDetailList;
+					std::vector<std::string> repeatedDeviceNameList;
+					std::vector<std::string> invalidDeviceModelList;
 				};
 
 

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

@@ -37,12 +37,16 @@ namespace AlibabaCloud
 
 				std::string getRealTenantId()const;
 				void setRealTenantId(const std::string& realTenantId);
+				std::string getType()const;
+				void setType(const std::string& type);
 				std::string getRealTripartiteKey()const;
 				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getGroupName()const;
 				void setGroupName(const std::string& groupName);
+				std::string getSubBizCode()const;
+				void setSubBizCode(const std::string& subBizCode);
 				std::string getApiProduct()const;
 				void setApiProduct(const std::string& apiProduct);
 				std::string getApiRevision()const;
@@ -50,9 +54,11 @@ namespace AlibabaCloud
 
             private:
 				std::string realTenantId_;
+				std::string type_;
 				std::string realTripartiteKey_;
 				std::string iotInstanceId_;
 				std::string groupName_;
+				std::string subBizCode_;
 				std::string apiProduct_;
 				std::string apiRevision_;
 

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

@@ -45,8 +45,12 @@ namespace AlibabaCloud
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getTopicShortName()const;
 				void setTopicShortName(const std::string& topicShortName);
+				bool getEnableProxySubscribe()const;
+				void setEnableProxySubscribe(bool enableProxySubscribe);
 				std::string getProductKey()const;
 				void setProductKey(const std::string& productKey);
+				std::string getCodec()const;
+				void setCodec(const std::string& codec);
 				std::string getApiProduct()const;
 				void setApiProduct(const std::string& apiProduct);
 				std::string getApiRevision()const;
@@ -62,7 +66,9 @@ namespace AlibabaCloud
 				std::string realTripartiteKey_;
 				std::string iotInstanceId_;
 				std::string topicShortName_;
+				bool enableProxySubscribe_;
 				std::string productKey_;
+				std::string codec_;
 				std::string apiProduct_;
 				std::string apiRevision_;
 				std::string operation_;

+ 75 - 0
iot/include/alibabacloud/iot/model/CreateTopicConfigRequest.h

@@ -0,0 +1,75 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_CREATETOPICCONFIGREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATETOPICCONFIGREQUEST_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 CreateTopicConfigRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateTopicConfigRequest();
+				~CreateTopicConfigRequest();
+
+				std::string getDescription()const;
+				void setDescription(const std::string& description);
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getTopicFullName()const;
+				void setTopicFullName(const std::string& topicFullName);
+				bool getEnableBroadcast()const;
+				void setEnableBroadcast(bool enableBroadcast);
+				bool getEnableProxySubscribe()const;
+				void setEnableProxySubscribe(bool enableProxySubscribe);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getCodec()const;
+				void setCodec(const std::string& codec);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getOperation()const;
+				void setOperation(const std::string& operation);
+
+            private:
+				std::string description_;
+				std::string iotInstanceId_;
+				std::string topicFullName_;
+				bool enableBroadcast_;
+				bool enableProxySubscribe_;
+				std::string productKey_;
+				std::string codec_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string operation_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CREATETOPICCONFIGREQUEST_H_

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

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_CREATETOPICCONFIGRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATETOPICCONFIGRESULT_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 CreateTopicConfigResult : public ServiceResult
+			{
+			public:
+
+
+				CreateTopicConfigResult();
+				explicit CreateTopicConfigResult(const std::string &payload);
+				~CreateTopicConfigResult();
+				std::string getMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CREATETOPICCONFIGRESULT_H_

+ 60 - 0
iot/include/alibabacloud/iot/model/DeleteTopicConfigRequest.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_DELETETOPICCONFIGREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_DELETETOPICCONFIGREQUEST_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 DeleteTopicConfigRequest : public RpcServiceRequest
+			{
+
+			public:
+				DeleteTopicConfigRequest();
+				~DeleteTopicConfigRequest();
+
+				std::string getIotInstanceId()const;
+				void setIotInstanceId(const std::string& iotInstanceId);
+				std::string getTopicFullName()const;
+				void setTopicFullName(const std::string& topicFullName);
+				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);
+
+            private:
+				std::string iotInstanceId_;
+				std::string topicFullName_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DELETETOPICCONFIGREQUEST_H_

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

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_DELETETOPICCONFIGRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_DELETETOPICCONFIGRESULT_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 DeleteTopicConfigResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteTopicConfigResult();
+				explicit DeleteTopicConfigResult(const std::string &payload);
+				~DeleteTopicConfigResult();
+				std::string getMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DELETETOPICCONFIGRESULT_H_

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

@@ -43,6 +43,8 @@ namespace AlibabaCloud
 
 				std::string getRealTenantId()const;
 				void setRealTenantId(const std::string& realTenantId);
+				std::string getDTInstanceId()const;
+				void setDTInstanceId(const std::string& dTInstanceId);
 				std::string getRealTripartiteKey()const;
 				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::string getIotInstanceId()const;
@@ -58,6 +60,7 @@ namespace AlibabaCloud
 
             private:
 				std::string realTenantId_;
+				std::string dTInstanceId_;
 				std::string realTripartiteKey_;
 				std::string iotInstanceId_;
 				std::string productKey_;

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

@@ -53,6 +53,8 @@ namespace AlibabaCloud
 				void setApiRevision(const std::string& apiRevision);
 				std::string getTargetUid()const;
 				void setTargetUid(const std::string& targetUid);
+				std::string getSourceRegion()const;
+				void setSourceRegion(const std::string& sourceRegion);
 				int getStatus()const;
 				void setStatus(int status);
 
@@ -66,6 +68,7 @@ namespace AlibabaCloud
 				std::string apiProduct_;
 				std::string apiRevision_;
 				std::string targetUid_;
+				std::string sourceRegion_;
 				int status_;
 
 			};

+ 7 - 0
iot/include/alibabacloud/iot/model/QueryBatchRegisterDeviceStatusResult.h

@@ -34,9 +34,16 @@ namespace AlibabaCloud
 			public:
 				struct Data
 				{
+					struct InvalidDetailListItem
+					{
+						std::string errorMsg;
+						std::string nickName;
+						std::string deviceName;
+					};
 					std::string status;
 					std::vector<std::string> invalidList;
 					std::vector<std::string> validList;
+					std::vector<InvalidDetailListItem> invalidDetailList;
 				};
 
 

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

@@ -37,6 +37,8 @@ namespace AlibabaCloud
 
 				std::string getRealTenantId()const;
 				void setRealTenantId(const std::string& realTenantId);
+				std::string getType()const;
+				void setType(const std::string& type);
 				std::string getRealTripartiteKey()const;
 				void setRealTripartiteKey(const std::string& realTripartiteKey);
 				std::string getIotInstanceId()const;
@@ -49,6 +51,8 @@ namespace AlibabaCloud
 				void setCurrentPage(int currentPage);
 				std::string getGroupName()const;
 				void setGroupName(const std::string& groupName);
+				std::string getSubBizCode()const;
+				void setSubBizCode(const std::string& subBizCode);
 				std::string getApiProduct()const;
 				void setApiProduct(const std::string& apiProduct);
 				std::string getApiRevision()const;
@@ -56,12 +60,14 @@ namespace AlibabaCloud
 
             private:
 				std::string realTenantId_;
+				std::string type_;
 				std::string realTripartiteKey_;
 				std::string iotInstanceId_;
 				int pageSize_;
 				bool fuzzy_;
 				int currentPage_;
 				std::string groupName_;
+				std::string subBizCode_;
 				std::string apiProduct_;
 				std::string apiRevision_;
 

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

@@ -57,6 +57,8 @@ namespace AlibabaCloud
 				void setProductKey(const std::string& productKey);
 				int getAsc()const;
 				void setAsc(int asc);
+				bool getNeedIopsCheck()const;
+				void setNeedIopsCheck(bool needIopsCheck);
 				std::string getApiProduct()const;
 				void setApiProduct(const std::string& apiProduct);
 				std::string getApiRevision()const;
@@ -78,6 +80,7 @@ namespace AlibabaCloud
 				long endTime_;
 				std::string productKey_;
 				int asc_;
+				bool needIopsCheck_;
 				std::string apiProduct_;
 				std::string apiRevision_;
 				std::string deviceName_;

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

@@ -57,6 +57,8 @@ namespace AlibabaCloud
 				void setProductKey(const std::string& productKey);
 				int getAsc()const;
 				void setAsc(int asc);
+				bool getNeedIopsCheck()const;
+				void setNeedIopsCheck(bool needIopsCheck);
 				std::string getApiProduct()const;
 				void setApiProduct(const std::string& apiProduct);
 				std::string getApiRevision()const;
@@ -76,6 +78,7 @@ namespace AlibabaCloud
 				long endTime_;
 				std::string productKey_;
 				int asc_;
+				bool needIopsCheck_;
 				std::string apiProduct_;
 				std::string apiRevision_;
 				std::string deviceName_;

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

@@ -57,6 +57,8 @@ namespace AlibabaCloud
 				void setProductKey(const std::string& productKey);
 				int getAsc()const;
 				void setAsc(int asc);
+				bool getNeedIopsCheck()const;
+				void setNeedIopsCheck(bool needIopsCheck);
 				std::string getApiProduct()const;
 				void setApiProduct(const std::string& apiProduct);
 				std::string getApiRevision()const;
@@ -76,6 +78,7 @@ namespace AlibabaCloud
 				long endTime_;
 				std::string productKey_;
 				int asc_;
+				bool needIopsCheck_;
 				std::string apiProduct_;
 				std::string apiRevision_;
 				std::string deviceName_;

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

@@ -35,7 +35,9 @@ namespace AlibabaCloud
 				struct ProductTopicInfo
 				{
 					std::string desc;
+					std::string codec;
 					std::string topicShortName;
+					bool enableProxySubscribe;
 					std::string operation;
 					std::string id;
 					std::string productKey;

+ 57 - 0
iot/include/alibabacloud/iot/model/QueryTopicConfigRequest.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_QUERYTOPICCONFIGREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYTOPICCONFIGREQUEST_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 QueryTopicConfigRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryTopicConfigRequest();
+				~QueryTopicConfigRequest();
+
+				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);
+
+            private:
+				std::string iotInstanceId_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYTOPICCONFIGREQUEST_H_

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

@@ -0,0 +1,67 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_QUERYTOPICCONFIGRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYTOPICCONFIGRESULT_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 QueryTopicConfigResult : public ServiceResult
+			{
+			public:
+				struct TopicConfigInfo
+				{
+					std::string codec;
+					std::string description;
+					bool enableProxySubscribe;
+					std::string operation;
+					std::string productKey;
+					bool enableBroadcast;
+					std::string topicFullName;
+				};
+
+
+				QueryTopicConfigResult();
+				explicit QueryTopicConfigResult(const std::string &payload);
+				~QueryTopicConfigResult();
+				std::string getMessage()const;
+				std::vector<TopicConfigInfo> getData()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::vector<TopicConfigInfo> data_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYTOPICCONFIGRESULT_H_

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

@@ -37,8 +37,6 @@ namespace AlibabaCloud
 
 				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;
@@ -54,7 +52,6 @@ namespace AlibabaCloud
 
             private:
 				std::string realTenantId_;
-				std::string accessKeyId_;
 				std::string realTripartiteKey_;
 				std::string iotInstanceId_;
 				std::string productKey_;

+ 16 - 11
iot/include/alibabacloud/iot/model/QueryVehicleDeviceResult.h

@@ -34,20 +34,25 @@ namespace AlibabaCloud
 			public:
 				struct Data
 				{
-					std::string deviceModel;
-					std::string status;
-					std::string authCode;
-					std::string deviceId;
-					long createTime;
-					std::string vehicleColour;
-					std::string city;
-					std::string province;
+					struct JtProtocolDeviceData
+					{
+						std::string deviceModel;
+						std::string status;
+						std::string registerTime;
+						std::string authCode;
+						std::string deviceId;
+						std::string manufacturer;
+						std::string vehicleColour;
+						std::string city;
+						std::string province;
+						std::string vehicleNumber;
+					};
 					std::string iotId;
-					long registerTime;
 					long modifiedTime;
-					std::string manufacturer;
+					JtProtocolDeviceData jtProtocolDeviceData;
+					long createTime;
+					std::string protocol;
 					std::string productKey;
-					std::string vehicleNumber;
 					std::string deviceName;
 				};
 

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

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

+ 57 - 0
iot/include/alibabacloud/iot/model/TestSwitchResult.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_TESTSWITCHRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_TESTSWITCHRESULT_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 TestSwitchResult : public ServiceResult
+			{
+			public:
+
+
+				TestSwitchResult();
+				explicit TestSwitchResult(const std::string &payload);
+				~TestSwitchResult();
+				std::string getIotId()const;
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string iotId_;
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_TESTSWITCHRESULT_H_

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

@@ -43,6 +43,10 @@ namespace AlibabaCloud
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getTopicShortName()const;
 				void setTopicShortName(const std::string& topicShortName);
+				bool getEnableProxySubscribe()const;
+				void setEnableProxySubscribe(bool enableProxySubscribe);
+				std::string getCodec()const;
+				void setCodec(const std::string& codec);
 				std::string getApiProduct()const;
 				void setApiProduct(const std::string& apiProduct);
 				std::string getApiRevision()const;
@@ -57,6 +61,8 @@ namespace AlibabaCloud
 				std::string topicId_;
 				std::string iotInstanceId_;
 				std::string topicShortName_;
+				bool enableProxySubscribe_;
+				std::string codec_;
 				std::string apiProduct_;
 				std::string apiRevision_;
 				std::string operation_;

+ 12 - 0
iot/include/alibabacloud/iot/model/UpdateTopicConfigRequest.h

@@ -35,26 +35,38 @@ namespace AlibabaCloud
 				UpdateTopicConfigRequest();
 				~UpdateTopicConfigRequest();
 
+				std::string getDescription()const;
+				void setDescription(const std::string& description);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
 				std::string getTopicFullName()const;
 				void setTopicFullName(const std::string& topicFullName);
 				bool getEnableBroadcast()const;
 				void setEnableBroadcast(bool enableBroadcast);
+				bool getEnableProxySubscribe()const;
+				void setEnableProxySubscribe(bool enableProxySubscribe);
 				std::string getProductKey()const;
 				void setProductKey(const std::string& productKey);
+				std::string getCodec()const;
+				void setCodec(const std::string& codec);
 				std::string getApiProduct()const;
 				void setApiProduct(const std::string& apiProduct);
 				std::string getApiRevision()const;
 				void setApiRevision(const std::string& apiRevision);
+				std::string getOperation()const;
+				void setOperation(const std::string& operation);
 
             private:
+				std::string description_;
 				std::string iotInstanceId_;
 				std::string topicFullName_;
 				bool enableBroadcast_;
+				bool enableProxySubscribe_;
 				std::string productKey_;
+				std::string codec_;
 				std::string apiProduct_;
 				std::string apiRevision_;
+				std::string operation_;
 
 			};
 		}

+ 2 - 2
iot/include/alibabacloud/iot/model/UpdateTopicConfigResult.h

@@ -37,14 +37,14 @@ namespace AlibabaCloud
 				UpdateTopicConfigResult();
 				explicit UpdateTopicConfigResult(const std::string &payload);
 				~UpdateTopicConfigResult();
-				std::string getErrorMessage()const;
+				std::string getMessage()const;
 				std::string getCode()const;
 				bool getSuccess()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
-				std::string errorMessage_;
+				std::string message_;
 				std::string code_;
 				bool success_;
 

+ 216 - 0
iot/src/IotClient.cc

@@ -123,6 +123,42 @@ IotClient::AddShareTaskDeviceOutcomeCallable IotClient::addShareTaskDeviceCallab
 	return task->get_future();
 }
 
+IotClient::AsyncRRpcOutcome IotClient::asyncRRpc(const AsyncRRpcRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return AsyncRRpcOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return AsyncRRpcOutcome(AsyncRRpcResult(outcome.result()));
+	else
+		return AsyncRRpcOutcome(outcome.error());
+}
+
+void IotClient::asyncRRpcAsync(const AsyncRRpcRequest& request, const AsyncRRpcAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, asyncRRpc(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::AsyncRRpcOutcomeCallable IotClient::asyncRRpcCallable(const AsyncRRpcRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<AsyncRRpcOutcome()>>(
+			[this, request]()
+			{
+			return this->asyncRRpc(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::AttachDestinationOutcome IotClient::attachDestination(const AttachDestinationRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -987,6 +1023,42 @@ IotClient::BatchGetEdgeInstanceDriverConfigsOutcomeCallable IotClient::batchGetE
 	return task->get_future();
 }
 
+IotClient::BatchGrayMigrationDeviceOutcome IotClient::batchGrayMigrationDevice(const BatchGrayMigrationDeviceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return BatchGrayMigrationDeviceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return BatchGrayMigrationDeviceOutcome(BatchGrayMigrationDeviceResult(outcome.result()));
+	else
+		return BatchGrayMigrationDeviceOutcome(outcome.error());
+}
+
+void IotClient::batchGrayMigrationDeviceAsync(const BatchGrayMigrationDeviceRequest& request, const BatchGrayMigrationDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, batchGrayMigrationDevice(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::BatchGrayMigrationDeviceOutcomeCallable IotClient::batchGrayMigrationDeviceCallable(const BatchGrayMigrationDeviceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<BatchGrayMigrationDeviceOutcome()>>(
+			[this, request]()
+			{
+			return this->batchGrayMigrationDevice(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::BatchImportDeviceOutcome IotClient::batchImportDevice(const BatchImportDeviceRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -3651,6 +3723,42 @@ IotClient::CreateThingScriptOutcomeCallable IotClient::createThingScriptCallable
 	return task->get_future();
 }
 
+IotClient::CreateTopicConfigOutcome IotClient::createTopicConfig(const CreateTopicConfigRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateTopicConfigOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateTopicConfigOutcome(CreateTopicConfigResult(outcome.result()));
+	else
+		return CreateTopicConfigOutcome(outcome.error());
+}
+
+void IotClient::createTopicConfigAsync(const CreateTopicConfigRequest& request, const CreateTopicConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createTopicConfig(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::CreateTopicConfigOutcomeCallable IotClient::createTopicConfigCallable(const CreateTopicConfigRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateTopicConfigOutcome()>>(
+			[this, request]()
+			{
+			return this->createTopicConfig(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::CreateTopicRouteTableOutcome IotClient::createTopicRouteTable(const CreateTopicRouteTableRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -5019,6 +5127,42 @@ IotClient::DeleteThingModelOutcomeCallable IotClient::deleteThingModelCallable(c
 	return task->get_future();
 }
 
+IotClient::DeleteTopicConfigOutcome IotClient::deleteTopicConfig(const DeleteTopicConfigRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteTopicConfigOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteTopicConfigOutcome(DeleteTopicConfigResult(outcome.result()));
+	else
+		return DeleteTopicConfigOutcome(outcome.error());
+}
+
+void IotClient::deleteTopicConfigAsync(const DeleteTopicConfigRequest& request, const DeleteTopicConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteTopicConfig(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::DeleteTopicConfigOutcomeCallable IotClient::deleteTopicConfigCallable(const DeleteTopicConfigRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteTopicConfigOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteTopicConfig(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::DeleteTopicRouteTableOutcome IotClient::deleteTopicRouteTable(const DeleteTopicRouteTableRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -11715,6 +11859,42 @@ IotClient::QueryThingModelPublishedOutcomeCallable IotClient::queryThingModelPub
 	return task->get_future();
 }
 
+IotClient::QueryTopicConfigOutcome IotClient::queryTopicConfig(const QueryTopicConfigRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryTopicConfigOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryTopicConfigOutcome(QueryTopicConfigResult(outcome.result()));
+	else
+		return QueryTopicConfigOutcome(outcome.error());
+}
+
+void IotClient::queryTopicConfigAsync(const QueryTopicConfigRequest& request, const QueryTopicConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryTopicConfig(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::QueryTopicConfigOutcomeCallable IotClient::queryTopicConfigCallable(const QueryTopicConfigRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryTopicConfigOutcome()>>(
+			[this, request]()
+			{
+			return this->queryTopicConfig(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::QueryTopicReverseRouteTableOutcome IotClient::queryTopicReverseRouteTable(const QueryTopicReverseRouteTableRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -13119,6 +13299,42 @@ IotClient::TestSpeechOutcomeCallable IotClient::testSpeechCallable(const TestSpe
 	return task->get_future();
 }
 
+IotClient::TestSwitchOutcome IotClient::testSwitch(const TestSwitchRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return TestSwitchOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return TestSwitchOutcome(TestSwitchResult(outcome.result()));
+	else
+		return TestSwitchOutcome(outcome.error());
+}
+
+void IotClient::testSwitchAsync(const TestSwitchRequest& request, const TestSwitchAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, testSwitch(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::TestSwitchOutcomeCallable IotClient::testSwitchCallable(const TestSwitchRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<TestSwitchOutcome()>>(
+			[this, request]()
+			{
+			return this->testSwitch(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::TransformClientIdOutcome IotClient::transformClientId(const TransformClientIdRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 128 - 0
iot/src/model/AsyncRRpcRequest.cc

@@ -0,0 +1,128 @@
+/*
+ * 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/AsyncRRpcRequest.h>
+
+using AlibabaCloud::Iot::Model::AsyncRRpcRequest;
+
+AsyncRRpcRequest::AsyncRRpcRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "AsyncRRpc")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+AsyncRRpcRequest::~AsyncRRpcRequest()
+{}
+
+std::string AsyncRRpcRequest::getMessageContent()const
+{
+	return messageContent_;
+}
+
+void AsyncRRpcRequest::setMessageContent(const std::string& messageContent)
+{
+	messageContent_ = messageContent;
+	setBodyParameter("MessageContent", messageContent);
+}
+
+std::string AsyncRRpcRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void AsyncRRpcRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string AsyncRRpcRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void AsyncRRpcRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string AsyncRRpcRequest::getExtInfo()const
+{
+	return extInfo_;
+}
+
+void AsyncRRpcRequest::setExtInfo(const std::string& extInfo)
+{
+	extInfo_ = extInfo;
+	setParameter("ExtInfo", extInfo);
+}
+
+std::string AsyncRRpcRequest::getTopicFullName()const
+{
+	return topicFullName_;
+}
+
+void AsyncRRpcRequest::setTopicFullName(const std::string& topicFullName)
+{
+	topicFullName_ = topicFullName;
+	setParameter("TopicFullName", topicFullName);
+}
+
+std::string AsyncRRpcRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void AsyncRRpcRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string AsyncRRpcRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void AsyncRRpcRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string AsyncRRpcRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void AsyncRRpcRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string AsyncRRpcRequest::getDeviceName()const
+{
+	return deviceName_;
+}
+
+void AsyncRRpcRequest::setDeviceName(const std::string& deviceName)
+{
+	deviceName_ = deviceName;
+	setParameter("DeviceName", deviceName);
+}
+

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

+ 1 - 1
iot/src/model/BatchCheckDeviceNamesRequest.cc

@@ -129,7 +129,7 @@ void BatchCheckDeviceNamesRequest::setDeviceName(const std::vector<std::string>&
 {
 	deviceName_ = deviceName;
 	for(int dep1 = 0; dep1!= deviceName.size(); dep1++) {
-		setParameter("DeviceName."+ std::to_string(dep1), deviceName.at(dep1));
+		setBodyParameter("DeviceName."+ std::to_string(dep1), deviceName.at(dep1));
 	}
 }
 

+ 15 - 0
iot/src/model/BatchCheckDeviceNamesResult.cc

@@ -42,12 +42,27 @@ void BatchCheckDeviceNamesResult::parse(const std::string &payload)
 	auto dataNode = value["Data"];
 	if(!dataNode["ApplyId"].isNull())
 		data_.applyId = std::stol(dataNode["ApplyId"].asString());
+	auto allInvalidDetailListNode = dataNode["InvalidDetailList"]["InvalidDetailListItem"];
+	for (auto dataNodeInvalidDetailListInvalidDetailListItem : allInvalidDetailListNode)
+	{
+		Data::InvalidDetailListItem invalidDetailListItemObject;
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["DeviceName"].isNull())
+			invalidDetailListItemObject.deviceName = dataNodeInvalidDetailListInvalidDetailListItem["DeviceName"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["NickName"].isNull())
+			invalidDetailListItemObject.nickName = dataNodeInvalidDetailListInvalidDetailListItem["NickName"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["ErrorMsg"].isNull())
+			invalidDetailListItemObject.errorMsg = dataNodeInvalidDetailListInvalidDetailListItem["ErrorMsg"].asString();
+		data_.invalidDetailList.push_back(invalidDetailListItemObject);
+	}
 		auto allInvalidDeviceNameList = dataNode["InvalidDeviceNameList"]["InvalidDeviceName"];
 		for (auto value : allInvalidDeviceNameList)
 			data_.invalidDeviceNameList.push_back(value.asString());
 		auto allInvalidDeviceNicknameList = dataNode["InvalidDeviceNicknameList"]["InvalidDeviceNickname"];
 		for (auto value : allInvalidDeviceNicknameList)
 			data_.invalidDeviceNicknameList.push_back(value.asString());
+		auto allRepeatedDeviceNameList = dataNode["RepeatedDeviceNameList"]["RepeatDevieNameList"];
+		for (auto value : allRepeatedDeviceNameList)
+			data_.repeatedDeviceNameList.push_back(value.asString());
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())

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

@@ -27,17 +27,6 @@ BatchCheckImportDeviceRequest::BatchCheckImportDeviceRequest() :
 BatchCheckImportDeviceRequest::~BatchCheckImportDeviceRequest()
 {}
 
-std::string BatchCheckImportDeviceRequest::getAccessKeyId()const
-{
-	return accessKeyId_;
-}
-
-void BatchCheckImportDeviceRequest::setAccessKeyId(const std::string& accessKeyId)
-{
-	accessKeyId_ = accessKeyId;
-	setParameter("AccessKeyId", accessKeyId);
-}
-
 std::string BatchCheckImportDeviceRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;

+ 14 - 0
iot/src/model/BatchCheckImportDeviceResult.cc

@@ -40,6 +40,20 @@ void BatchCheckImportDeviceResult::parse(const std::string &payload)
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
 	auto dataNode = value["Data"];
+	auto allInvalidDetailListNode = dataNode["InvalidDetailList"]["InvalidDetailListItem"];
+	for (auto dataNodeInvalidDetailListInvalidDetailListItem : allInvalidDetailListNode)
+	{
+		Data::InvalidDetailListItem invalidDetailListItemObject;
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["DeviceName"].isNull())
+			invalidDetailListItemObject.deviceName = dataNodeInvalidDetailListInvalidDetailListItem["DeviceName"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["DeviceSecret"].isNull())
+			invalidDetailListItemObject.deviceSecret = dataNodeInvalidDetailListInvalidDetailListItem["DeviceSecret"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["Sn"].isNull())
+			invalidDetailListItemObject.sn = dataNodeInvalidDetailListInvalidDetailListItem["Sn"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["ErrorMsg"].isNull())
+			invalidDetailListItemObject.errorMsg = dataNodeInvalidDetailListInvalidDetailListItem["ErrorMsg"].asString();
+		data_.invalidDetailList.push_back(invalidDetailListItemObject);
+	}
 		auto allInvalidDeviceNameList = dataNode["InvalidDeviceNameList"]["invalidDeviceName"];
 		for (auto value : allInvalidDeviceNameList)
 			data_.invalidDeviceNameList.push_back(value.asString());

+ 1 - 11
iot/src/model/BatchCheckVehicleDeviceRequest.cc

@@ -27,17 +27,6 @@ BatchCheckVehicleDeviceRequest::BatchCheckVehicleDeviceRequest() :
 BatchCheckVehicleDeviceRequest::~BatchCheckVehicleDeviceRequest()
 {}
 
-std::string BatchCheckVehicleDeviceRequest::getAccessKeyId()const
-{
-	return accessKeyId_;
-}
-
-void BatchCheckVehicleDeviceRequest::setAccessKeyId(const std::string& accessKeyId)
-{
-	accessKeyId_ = accessKeyId;
-	setParameter("AccessKeyId", accessKeyId);
-}
-
 std::string BatchCheckVehicleDeviceRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;
@@ -71,6 +60,7 @@ void BatchCheckVehicleDeviceRequest::setDeviceList(const std::vector<DeviceList>
 	for(int dep1 = 0; dep1!= deviceList.size(); dep1++) {
 		auto deviceListObj = deviceList.at(dep1);
 		std::string deviceListObjStr = "DeviceList." + std::to_string(dep1 + 1);
+		setParameter(deviceListObjStr + ".DeviceName", deviceListObj.deviceName);
 		setParameter(deviceListObjStr + ".DeviceId", deviceListObj.deviceId);
 		setParameter(deviceListObjStr + ".Manufacturer", deviceListObj.manufacturer);
 		setParameter(deviceListObjStr + ".DeviceModel", deviceListObj.deviceModel);

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

@@ -40,6 +40,22 @@ void BatchCheckVehicleDeviceResult::parse(const std::string &payload)
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
 	auto dataNode = value["Data"];
+	auto allInvalidDetailListNode = dataNode["InvalidDetailList"]["InvalidDetailListItem"];
+	for (auto dataNodeInvalidDetailListInvalidDetailListItem : allInvalidDetailListNode)
+	{
+		Data::InvalidDetailListItem invalidDetailListItemObject;
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["Manufacturer"].isNull())
+			invalidDetailListItemObject.manufacturer = dataNodeInvalidDetailListInvalidDetailListItem["Manufacturer"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["DeviceModel"].isNull())
+			invalidDetailListItemObject.deviceModel = dataNodeInvalidDetailListInvalidDetailListItem["DeviceModel"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["DeviceId"].isNull())
+			invalidDetailListItemObject.deviceId = dataNodeInvalidDetailListInvalidDetailListItem["DeviceId"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["DeviceName"].isNull())
+			invalidDetailListItemObject.deviceName = dataNodeInvalidDetailListInvalidDetailListItem["DeviceName"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["ErrorMsg"].isNull())
+			invalidDetailListItemObject.errorMsg = dataNodeInvalidDetailListInvalidDetailListItem["ErrorMsg"].asString();
+		data_.invalidDetailList.push_back(invalidDetailListItemObject);
+	}
 		auto allInvalidManufacturerList = dataNode["InvalidManufacturerList"]["invalidManufacturerList"];
 		for (auto value : allInvalidManufacturerList)
 			data_.invalidManufacturerList.push_back(value.asString());
@@ -52,6 +68,12 @@ void BatchCheckVehicleDeviceResult::parse(const std::string &payload)
 		auto allRepeatedDeviceIdList = dataNode["RepeatedDeviceIdList"]["repeatedDeviceIdList"];
 		for (auto value : allRepeatedDeviceIdList)
 			data_.repeatedDeviceIdList.push_back(value.asString());
+		auto allInvalidDeviceNameList = dataNode["InvalidDeviceNameList"]["InvalidDeviceNameList"];
+		for (auto value : allInvalidDeviceNameList)
+			data_.invalidDeviceNameList.push_back(value.asString());
+		auto allRepeatedDeviceNameList = dataNode["RepeatedDeviceNameList"]["RepeatedDeviceNameList"];
+		for (auto value : allRepeatedDeviceNameList)
+			data_.repeatedDeviceNameList.push_back(value.asString());
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())

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

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

+ 85 - 0
iot/src/model/BatchGrayMigrationDeviceResult.cc

@@ -0,0 +1,85 @@
+/*
+ * 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/BatchGrayMigrationDeviceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+BatchGrayMigrationDeviceResult::BatchGrayMigrationDeviceResult() :
+	ServiceResult()
+{}
+
+BatchGrayMigrationDeviceResult::BatchGrayMigrationDeviceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+BatchGrayMigrationDeviceResult::~BatchGrayMigrationDeviceResult()
+{}
+
+void BatchGrayMigrationDeviceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	auto allDetailsNode = dataNode["Details"]["item"];
+	for (auto dataNodeDetailsitem : allDetailsNode)
+	{
+		Data::Item itemObject;
+		if(!dataNodeDetailsitem["DeviceName"].isNull())
+			itemObject.deviceName = dataNodeDetailsitem["DeviceName"].asString();
+		if(!dataNodeDetailsitem["Status"].isNull())
+			itemObject.status = dataNodeDetailsitem["Status"].asString();
+		if(!dataNodeDetailsitem["Code"].isNull())
+			itemObject.code = std::stoi(dataNodeDetailsitem["Code"].asString());
+		if(!dataNodeDetailsitem["Message"].isNull())
+			itemObject.message = dataNodeDetailsitem["Message"].asString();
+		data_.details.push_back(itemObject);
+	}
+	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();
+
+}
+
+BatchGrayMigrationDeviceResult::Data BatchGrayMigrationDeviceResult::getData()const
+{
+	return data_;
+}
+
+std::string BatchGrayMigrationDeviceResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string BatchGrayMigrationDeviceResult::getCode()const
+{
+	return code_;
+}
+
+bool BatchGrayMigrationDeviceResult::getSuccess()const
+{
+	return success_;
+}
+

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

@@ -27,17 +27,6 @@ BatchImportDeviceRequest::BatchImportDeviceRequest() :
 BatchImportDeviceRequest::~BatchImportDeviceRequest()
 {}
 
-std::string BatchImportDeviceRequest::getAccessKeyId()const
-{
-	return accessKeyId_;
-}
-
-void BatchImportDeviceRequest::setAccessKeyId(const std::string& accessKeyId)
-{
-	accessKeyId_ = accessKeyId;
-	setParameter("AccessKeyId", accessKeyId);
-}
-
 std::string BatchImportDeviceRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;

+ 14 - 0
iot/src/model/BatchImportDeviceResult.cc

@@ -42,6 +42,20 @@ void BatchImportDeviceResult::parse(const std::string &payload)
 	auto dataNode = value["Data"];
 	if(!dataNode["ApplyId"].isNull())
 		data_.applyId = std::stol(dataNode["ApplyId"].asString());
+	auto allInvalidDetailListNode = dataNode["InvalidDetailList"]["InvalidDetailListItem"];
+	for (auto dataNodeInvalidDetailListInvalidDetailListItem : allInvalidDetailListNode)
+	{
+		Data::InvalidDetailListItem invalidDetailListItemObject;
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["DeviceName"].isNull())
+			invalidDetailListItemObject.deviceName = dataNodeInvalidDetailListInvalidDetailListItem["DeviceName"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["DeviceSecret"].isNull())
+			invalidDetailListItemObject.deviceSecret = dataNodeInvalidDetailListInvalidDetailListItem["DeviceSecret"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["Sn"].isNull())
+			invalidDetailListItemObject.sn = dataNodeInvalidDetailListInvalidDetailListItem["Sn"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["ErrorMsg"].isNull())
+			invalidDetailListItemObject.errorMsg = dataNodeInvalidDetailListInvalidDetailListItem["ErrorMsg"].asString();
+		data_.invalidDetailList.push_back(invalidDetailListItemObject);
+	}
 		auto allRepeatedDeviceNameList = dataNode["RepeatedDeviceNameList"]["repeatedDeviceName"];
 		for (auto value : allRepeatedDeviceNameList)
 			data_.repeatedDeviceNameList.push_back(value.asString());

+ 1 - 11
iot/src/model/BatchImportVehicleDeviceRequest.cc

@@ -27,17 +27,6 @@ BatchImportVehicleDeviceRequest::BatchImportVehicleDeviceRequest() :
 BatchImportVehicleDeviceRequest::~BatchImportVehicleDeviceRequest()
 {}
 
-std::string BatchImportVehicleDeviceRequest::getAccessKeyId()const
-{
-	return accessKeyId_;
-}
-
-void BatchImportVehicleDeviceRequest::setAccessKeyId(const std::string& accessKeyId)
-{
-	accessKeyId_ = accessKeyId;
-	setParameter("AccessKeyId", accessKeyId);
-}
-
 std::string BatchImportVehicleDeviceRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;
@@ -71,6 +60,7 @@ void BatchImportVehicleDeviceRequest::setDeviceList(const std::vector<DeviceList
 	for(int dep1 = 0; dep1!= deviceList.size(); dep1++) {
 		auto deviceListObj = deviceList.at(dep1);
 		std::string deviceListObjStr = "DeviceList." + std::to_string(dep1 + 1);
+		setParameter(deviceListObjStr + ".DeviceName", deviceListObj.deviceName);
 		setParameter(deviceListObjStr + ".DeviceId", deviceListObj.deviceId);
 		setParameter(deviceListObjStr + ".Manufacturer", deviceListObj.manufacturer);
 		setParameter(deviceListObjStr + ".DeviceModel", deviceListObj.deviceModel);

+ 34 - 0
iot/src/model/BatchImportVehicleDeviceResult.cc

@@ -42,6 +42,40 @@ void BatchImportVehicleDeviceResult::parse(const std::string &payload)
 	auto dataNode = value["Data"];
 	if(!dataNode["ApplyId"].isNull())
 		data_.applyId = std::stol(dataNode["ApplyId"].asString());
+	auto allInvalidDetailListNode = dataNode["InvalidDetailList"]["InvalidDetailListItem"];
+	for (auto dataNodeInvalidDetailListInvalidDetailListItem : allInvalidDetailListNode)
+	{
+		Data::InvalidDetailListItem invalidDetailListItemObject;
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["Manufacturer"].isNull())
+			invalidDetailListItemObject.manufacturer = dataNodeInvalidDetailListInvalidDetailListItem["Manufacturer"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["DeviceModel"].isNull())
+			invalidDetailListItemObject.deviceModel = dataNodeInvalidDetailListInvalidDetailListItem["DeviceModel"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["DeviceId"].isNull())
+			invalidDetailListItemObject.deviceId = dataNodeInvalidDetailListInvalidDetailListItem["DeviceId"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["DeviceName"].isNull())
+			invalidDetailListItemObject.deviceName = dataNodeInvalidDetailListInvalidDetailListItem["DeviceName"].asString();
+		if(!dataNodeInvalidDetailListInvalidDetailListItem["ErrorMsg"].isNull())
+			invalidDetailListItemObject.errorMsg = dataNodeInvalidDetailListInvalidDetailListItem["ErrorMsg"].asString();
+		data_.invalidDetailList.push_back(invalidDetailListItemObject);
+	}
+		auto allInvalidManufacturerList = dataNode["InvalidManufacturerList"]["invalidManufacturerList"];
+		for (auto value : allInvalidManufacturerList)
+			data_.invalidManufacturerList.push_back(value.asString());
+		auto allInvalidDeviceModelList = dataNode["InvalidDeviceModelList"]["invalidDeviceModelList"];
+		for (auto value : allInvalidDeviceModelList)
+			data_.invalidDeviceModelList.push_back(value.asString());
+		auto allInvalidDeviceIdList = dataNode["InvalidDeviceIdList"]["invalidDeviceIdList"];
+		for (auto value : allInvalidDeviceIdList)
+			data_.invalidDeviceIdList.push_back(value.asString());
+		auto allRepeatedDeviceIdList = dataNode["RepeatedDeviceIdList"]["repeatedDeviceIdList"];
+		for (auto value : allRepeatedDeviceIdList)
+			data_.repeatedDeviceIdList.push_back(value.asString());
+		auto allInvalidDeviceNameList = dataNode["InvalidDeviceNameList"]["InvalidDeviceNameList"];
+		for (auto value : allInvalidDeviceNameList)
+			data_.invalidDeviceNameList.push_back(value.asString());
+		auto allRepeatedDeviceNameList = dataNode["RepeatedDeviceNameList"]["RepeatedDeviceNameList"];
+		for (auto value : allRepeatedDeviceNameList)
+			data_.repeatedDeviceNameList.push_back(value.asString());
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())

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

@@ -38,6 +38,17 @@ void CreateConsumerGroupRequest::setRealTenantId(const std::string& realTenantId
 	setParameter("RealTenantId", realTenantId);
 }
 
+std::string CreateConsumerGroupRequest::getType()const
+{
+	return type_;
+}
+
+void CreateConsumerGroupRequest::setType(const std::string& type)
+{
+	type_ = type;
+	setParameter("Type", type);
+}
+
 std::string CreateConsumerGroupRequest::getRealTripartiteKey()const
 {
 	return realTripartiteKey_;
@@ -71,6 +82,17 @@ void CreateConsumerGroupRequest::setGroupName(const std::string& groupName)
 	setParameter("GroupName", groupName);
 }
 
+std::string CreateConsumerGroupRequest::getSubBizCode()const
+{
+	return subBizCode_;
+}
+
+void CreateConsumerGroupRequest::setSubBizCode(const std::string& subBizCode)
+{
+	subBizCode_ = subBizCode;
+	setParameter("SubBizCode", subBizCode);
+}
+
 std::string CreateConsumerGroupRequest::getApiProduct()const
 {
 	return apiProduct_;

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

@@ -82,6 +82,17 @@ void CreateProductTopicRequest::setTopicShortName(const std::string& topicShortN
 	setParameter("TopicShortName", topicShortName);
 }
 
+bool CreateProductTopicRequest::getEnableProxySubscribe()const
+{
+	return enableProxySubscribe_;
+}
+
+void CreateProductTopicRequest::setEnableProxySubscribe(bool enableProxySubscribe)
+{
+	enableProxySubscribe_ = enableProxySubscribe;
+	setParameter("EnableProxySubscribe", enableProxySubscribe ? "true" : "false");
+}
+
 std::string CreateProductTopicRequest::getProductKey()const
 {
 	return productKey_;
@@ -93,6 +104,17 @@ void CreateProductTopicRequest::setProductKey(const std::string& productKey)
 	setParameter("ProductKey", productKey);
 }
 
+std::string CreateProductTopicRequest::getCodec()const
+{
+	return codec_;
+}
+
+void CreateProductTopicRequest::setCodec(const std::string& codec)
+{
+	codec_ = codec;
+	setParameter("Codec", codec);
+}
+
 std::string CreateProductTopicRequest::getApiProduct()const
 {
 	return apiProduct_;

+ 139 - 0
iot/src/model/CreateTopicConfigRequest.cc

@@ -0,0 +1,139 @@
+/*
+ * 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/CreateTopicConfigRequest.h>
+
+using AlibabaCloud::Iot::Model::CreateTopicConfigRequest;
+
+CreateTopicConfigRequest::CreateTopicConfigRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "CreateTopicConfig")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CreateTopicConfigRequest::~CreateTopicConfigRequest()
+{}
+
+std::string CreateTopicConfigRequest::getDescription()const
+{
+	return description_;
+}
+
+void CreateTopicConfigRequest::setDescription(const std::string& description)
+{
+	description_ = description;
+	setParameter("Description", description);
+}
+
+std::string CreateTopicConfigRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void CreateTopicConfigRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string CreateTopicConfigRequest::getTopicFullName()const
+{
+	return topicFullName_;
+}
+
+void CreateTopicConfigRequest::setTopicFullName(const std::string& topicFullName)
+{
+	topicFullName_ = topicFullName;
+	setParameter("TopicFullName", topicFullName);
+}
+
+bool CreateTopicConfigRequest::getEnableBroadcast()const
+{
+	return enableBroadcast_;
+}
+
+void CreateTopicConfigRequest::setEnableBroadcast(bool enableBroadcast)
+{
+	enableBroadcast_ = enableBroadcast;
+	setParameter("EnableBroadcast", enableBroadcast ? "true" : "false");
+}
+
+bool CreateTopicConfigRequest::getEnableProxySubscribe()const
+{
+	return enableProxySubscribe_;
+}
+
+void CreateTopicConfigRequest::setEnableProxySubscribe(bool enableProxySubscribe)
+{
+	enableProxySubscribe_ = enableProxySubscribe;
+	setParameter("EnableProxySubscribe", enableProxySubscribe ? "true" : "false");
+}
+
+std::string CreateTopicConfigRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void CreateTopicConfigRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string CreateTopicConfigRequest::getCodec()const
+{
+	return codec_;
+}
+
+void CreateTopicConfigRequest::setCodec(const std::string& codec)
+{
+	codec_ = codec;
+	setParameter("Codec", codec);
+}
+
+std::string CreateTopicConfigRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void CreateTopicConfigRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string CreateTopicConfigRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void CreateTopicConfigRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string CreateTopicConfigRequest::getOperation()const
+{
+	return operation_;
+}
+
+void CreateTopicConfigRequest::setOperation(const std::string& operation)
+{
+	operation_ = operation;
+	setParameter("Operation", operation);
+}
+

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

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

+ 84 - 0
iot/src/model/DeleteTopicConfigRequest.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/DeleteTopicConfigRequest.h>
+
+using AlibabaCloud::Iot::Model::DeleteTopicConfigRequest;
+
+DeleteTopicConfigRequest::DeleteTopicConfigRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "DeleteTopicConfig")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DeleteTopicConfigRequest::~DeleteTopicConfigRequest()
+{}
+
+std::string DeleteTopicConfigRequest::getIotInstanceId()const
+{
+	return iotInstanceId_;
+}
+
+void DeleteTopicConfigRequest::setIotInstanceId(const std::string& iotInstanceId)
+{
+	iotInstanceId_ = iotInstanceId;
+	setParameter("IotInstanceId", iotInstanceId);
+}
+
+std::string DeleteTopicConfigRequest::getTopicFullName()const
+{
+	return topicFullName_;
+}
+
+void DeleteTopicConfigRequest::setTopicFullName(const std::string& topicFullName)
+{
+	topicFullName_ = topicFullName;
+	setParameter("TopicFullName", topicFullName);
+}
+
+std::string DeleteTopicConfigRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void DeleteTopicConfigRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string DeleteTopicConfigRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void DeleteTopicConfigRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string DeleteTopicConfigRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void DeleteTopicConfigRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+

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

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

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

@@ -38,6 +38,17 @@ void ImportDTDataRequest::setRealTenantId(const std::string& realTenantId)
 	setBodyParameter("RealTenantId", realTenantId);
 }
 
+std::string ImportDTDataRequest::getDTInstanceId()const
+{
+	return dTInstanceId_;
+}
+
+void ImportDTDataRequest::setDTInstanceId(const std::string& dTInstanceId)
+{
+	dTInstanceId_ = dTInstanceId;
+	setParameter("DTInstanceId", dTInstanceId);
+}
+
 std::string ImportDTDataRequest::getRealTripartiteKey()const
 {
 	return realTripartiteKey_;

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

@@ -126,6 +126,17 @@ void ListDeviceDistributeJobRequest::setTargetUid(const std::string& targetUid)
 	setParameter("TargetUid", targetUid);
 }
 
+std::string ListDeviceDistributeJobRequest::getSourceRegion()const
+{
+	return sourceRegion_;
+}
+
+void ListDeviceDistributeJobRequest::setSourceRegion(const std::string& sourceRegion)
+{
+	sourceRegion_ = sourceRegion;
+	setParameter("SourceRegion", sourceRegion);
+}
+
 int ListDeviceDistributeJobRequest::getStatus()const
 {
 	return status_;

+ 12 - 0
iot/src/model/QueryBatchRegisterDeviceStatusResult.cc

@@ -42,6 +42,18 @@ void QueryBatchRegisterDeviceStatusResult::parse(const std::string &payload)
 	auto dataNode = value["Data"];
 	if(!dataNode["Status"].isNull())
 		data_.status = dataNode["Status"].asString();
+	auto allInvalidDetailListNode = dataNode["InvalidDetailList"]["invalidDetailListItem"];
+	for (auto dataNodeInvalidDetailListinvalidDetailListItem : allInvalidDetailListNode)
+	{
+		Data::InvalidDetailListItem invalidDetailListItemObject;
+		if(!dataNodeInvalidDetailListinvalidDetailListItem["DeviceName"].isNull())
+			invalidDetailListItemObject.deviceName = dataNodeInvalidDetailListinvalidDetailListItem["DeviceName"].asString();
+		if(!dataNodeInvalidDetailListinvalidDetailListItem["ErrorMsg"].isNull())
+			invalidDetailListItemObject.errorMsg = dataNodeInvalidDetailListinvalidDetailListItem["ErrorMsg"].asString();
+		if(!dataNodeInvalidDetailListinvalidDetailListItem["NickName"].isNull())
+			invalidDetailListItemObject.nickName = dataNodeInvalidDetailListinvalidDetailListItem["NickName"].asString();
+		data_.invalidDetailList.push_back(invalidDetailListItemObject);
+	}
 		auto allValidList = dataNode["ValidList"]["Name"];
 		for (auto value : allValidList)
 			data_.validList.push_back(value.asString());

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

@@ -38,6 +38,17 @@ void QueryConsumerGroupListRequest::setRealTenantId(const std::string& realTenan
 	setParameter("RealTenantId", realTenantId);
 }
 
+std::string QueryConsumerGroupListRequest::getType()const
+{
+	return type_;
+}
+
+void QueryConsumerGroupListRequest::setType(const std::string& type)
+{
+	type_ = type;
+	setParameter("Type", type);
+}
+
 std::string QueryConsumerGroupListRequest::getRealTripartiteKey()const
 {
 	return realTripartiteKey_;
@@ -104,6 +115,17 @@ void QueryConsumerGroupListRequest::setGroupName(const std::string& groupName)
 	setParameter("GroupName", groupName);
 }
 
+std::string QueryConsumerGroupListRequest::getSubBizCode()const
+{
+	return subBizCode_;
+}
+
+void QueryConsumerGroupListRequest::setSubBizCode(const std::string& subBizCode)
+{
+	subBizCode_ = subBizCode;
+	setParameter("SubBizCode", subBizCode);
+}
+
 std::string QueryConsumerGroupListRequest::getApiProduct()const
 {
 	return apiProduct_;

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

@@ -148,6 +148,17 @@ void QueryDeviceEventDataRequest::setAsc(int asc)
 	setParameter("Asc", std::to_string(asc));
 }
 
+bool QueryDeviceEventDataRequest::getNeedIopsCheck()const
+{
+	return needIopsCheck_;
+}
+
+void QueryDeviceEventDataRequest::setNeedIopsCheck(bool needIopsCheck)
+{
+	needIopsCheck_ = needIopsCheck;
+	setParameter("NeedIopsCheck", needIopsCheck ? "true" : "false");
+}
+
 std::string QueryDeviceEventDataRequest::getApiProduct()const
 {
 	return apiProduct_;

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

@@ -148,6 +148,17 @@ void QueryDevicePropertyDataRequest::setAsc(int asc)
 	setParameter("Asc", std::to_string(asc));
 }
 
+bool QueryDevicePropertyDataRequest::getNeedIopsCheck()const
+{
+	return needIopsCheck_;
+}
+
+void QueryDevicePropertyDataRequest::setNeedIopsCheck(bool needIopsCheck)
+{
+	needIopsCheck_ = needIopsCheck;
+	setParameter("NeedIopsCheck", needIopsCheck ? "true" : "false");
+}
+
 std::string QueryDevicePropertyDataRequest::getApiProduct()const
 {
 	return apiProduct_;

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

@@ -148,6 +148,17 @@ void QueryDeviceServiceDataRequest::setAsc(int asc)
 	setParameter("Asc", std::to_string(asc));
 }
 
+bool QueryDeviceServiceDataRequest::getNeedIopsCheck()const
+{
+	return needIopsCheck_;
+}
+
+void QueryDeviceServiceDataRequest::setNeedIopsCheck(bool needIopsCheck)
+{
+	needIopsCheck_ = needIopsCheck;
+	setParameter("NeedIopsCheck", needIopsCheck ? "true" : "false");
+}
+
 std::string QueryDeviceServiceDataRequest::getApiProduct()const
 {
 	return apiProduct_;

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

@@ -53,6 +53,10 @@ void QueryProductTopicResult::parse(const std::string &payload)
 			dataObject.desc = valueDataProductTopicInfo["Desc"].asString();
 		if(!valueDataProductTopicInfo["Id"].isNull())
 			dataObject.id = valueDataProductTopicInfo["Id"].asString();
+		if(!valueDataProductTopicInfo["EnableProxySubscribe"].isNull())
+			dataObject.enableProxySubscribe = valueDataProductTopicInfo["EnableProxySubscribe"].asString() == "true";
+		if(!valueDataProductTopicInfo["Codec"].isNull())
+			dataObject.codec = valueDataProductTopicInfo["Codec"].asString();
 		data_.push_back(dataObject);
 	}
 	if(!value["Success"].isNull())

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

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

+ 90 - 0
iot/src/model/QueryTopicConfigResult.cc

@@ -0,0 +1,90 @@
+/*
+ * 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/QueryTopicConfigResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+QueryTopicConfigResult::QueryTopicConfigResult() :
+	ServiceResult()
+{}
+
+QueryTopicConfigResult::QueryTopicConfigResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryTopicConfigResult::~QueryTopicConfigResult()
+{}
+
+void QueryTopicConfigResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allDataNode = value["Data"]["TopicConfigInfo"];
+	for (auto valueDataTopicConfigInfo : allDataNode)
+	{
+		TopicConfigInfo dataObject;
+		if(!valueDataTopicConfigInfo["ProductKey"].isNull())
+			dataObject.productKey = valueDataTopicConfigInfo["ProductKey"].asString();
+		if(!valueDataTopicConfigInfo["TopicFullName"].isNull())
+			dataObject.topicFullName = valueDataTopicConfigInfo["TopicFullName"].asString();
+		if(!valueDataTopicConfigInfo["Operation"].isNull())
+			dataObject.operation = valueDataTopicConfigInfo["Operation"].asString();
+		if(!valueDataTopicConfigInfo["Description"].isNull())
+			dataObject.description = valueDataTopicConfigInfo["Description"].asString();
+		if(!valueDataTopicConfigInfo["EnableBroadcast"].isNull())
+			dataObject.enableBroadcast = valueDataTopicConfigInfo["EnableBroadcast"].asString() == "true";
+		if(!valueDataTopicConfigInfo["EnableProxySubscribe"].isNull())
+			dataObject.enableProxySubscribe = valueDataTopicConfigInfo["EnableProxySubscribe"].asString() == "true";
+		if(!valueDataTopicConfigInfo["Codec"].isNull())
+			dataObject.codec = valueDataTopicConfigInfo["Codec"].asString();
+		data_.push_back(dataObject);
+	}
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string QueryTopicConfigResult::getMessage()const
+{
+	return message_;
+}
+
+std::vector<QueryTopicConfigResult::TopicConfigInfo> QueryTopicConfigResult::getData()const
+{
+	return data_;
+}
+
+std::string QueryTopicConfigResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryTopicConfigResult::getSuccess()const
+{
+	return success_;
+}
+

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

@@ -38,17 +38,6 @@ void QueryVehicleDeviceRequest::setRealTenantId(const std::string& realTenantId)
 	setParameter("RealTenantId", realTenantId);
 }
 
-std::string QueryVehicleDeviceRequest::getAccessKeyId()const
-{
-	return accessKeyId_;
-}
-
-void QueryVehicleDeviceRequest::setAccessKeyId(const std::string& accessKeyId)
-{
-	accessKeyId_ = accessKeyId;
-	setParameter("AccessKeyId", accessKeyId);
-}
-
 std::string QueryVehicleDeviceRequest::getRealTripartiteKey()const
 {
 	return realTripartiteKey_;

+ 23 - 20
iot/src/model/QueryVehicleDeviceResult.cc

@@ -46,30 +46,33 @@ void QueryVehicleDeviceResult::parse(const std::string &payload)
 		data_.productKey = dataNode["ProductKey"].asString();
 	if(!dataNode["DeviceName"].isNull())
 		data_.deviceName = dataNode["DeviceName"].asString();
-	if(!dataNode["Manufacturer"].isNull())
-		data_.manufacturer = dataNode["Manufacturer"].asString();
-	if(!dataNode["DeviceModel"].isNull())
-		data_.deviceModel = dataNode["DeviceModel"].asString();
-	if(!dataNode["DeviceId"].isNull())
-		data_.deviceId = dataNode["DeviceId"].asString();
-	if(!dataNode["Status"].isNull())
-		data_.status = dataNode["Status"].asString();
-	if(!dataNode["AuthCode"].isNull())
-		data_.authCode = dataNode["AuthCode"].asString();
-	if(!dataNode["Province"].isNull())
-		data_.province = dataNode["Province"].asString();
-	if(!dataNode["City"].isNull())
-		data_.city = dataNode["City"].asString();
-	if(!dataNode["VehicleColour"].isNull())
-		data_.vehicleColour = dataNode["VehicleColour"].asString();
-	if(!dataNode["VehicleNumber"].isNull())
-		data_.vehicleNumber = dataNode["VehicleNumber"].asString();
 	if(!dataNode["CreateTime"].isNull())
 		data_.createTime = std::stol(dataNode["CreateTime"].asString());
 	if(!dataNode["ModifiedTime"].isNull())
 		data_.modifiedTime = std::stol(dataNode["ModifiedTime"].asString());
-	if(!dataNode["RegisterTime"].isNull())
-		data_.registerTime = std::stol(dataNode["RegisterTime"].asString());
+	if(!dataNode["Protocol"].isNull())
+		data_.protocol = dataNode["Protocol"].asString();
+	auto jtProtocolDeviceDataNode = dataNode["JtProtocolDeviceData"];
+	if(!jtProtocolDeviceDataNode["Manufacturer"].isNull())
+		data_.jtProtocolDeviceData.manufacturer = jtProtocolDeviceDataNode["Manufacturer"].asString();
+	if(!jtProtocolDeviceDataNode["DeviceModel"].isNull())
+		data_.jtProtocolDeviceData.deviceModel = jtProtocolDeviceDataNode["DeviceModel"].asString();
+	if(!jtProtocolDeviceDataNode["DeviceId"].isNull())
+		data_.jtProtocolDeviceData.deviceId = jtProtocolDeviceDataNode["DeviceId"].asString();
+	if(!jtProtocolDeviceDataNode["Status"].isNull())
+		data_.jtProtocolDeviceData.status = jtProtocolDeviceDataNode["Status"].asString();
+	if(!jtProtocolDeviceDataNode["AuthCode"].isNull())
+		data_.jtProtocolDeviceData.authCode = jtProtocolDeviceDataNode["AuthCode"].asString();
+	if(!jtProtocolDeviceDataNode["Province"].isNull())
+		data_.jtProtocolDeviceData.province = jtProtocolDeviceDataNode["Province"].asString();
+	if(!jtProtocolDeviceDataNode["City"].isNull())
+		data_.jtProtocolDeviceData.city = jtProtocolDeviceDataNode["City"].asString();
+	if(!jtProtocolDeviceDataNode["VehicleColour"].isNull())
+		data_.jtProtocolDeviceData.vehicleColour = jtProtocolDeviceDataNode["VehicleColour"].asString();
+	if(!jtProtocolDeviceDataNode["VehicleNumber"].isNull())
+		data_.jtProtocolDeviceData.vehicleNumber = jtProtocolDeviceDataNode["VehicleNumber"].asString();
+	if(!jtProtocolDeviceDataNode["RegisterTime"].isNull())
+		data_.jtProtocolDeviceData.registerTime = jtProtocolDeviceDataNode["RegisterTime"].asString();
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())

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

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

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

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

@@ -71,6 +71,28 @@ void UpdateProductTopicRequest::setTopicShortName(const std::string& topicShortN
 	setParameter("TopicShortName", topicShortName);
 }
 
+bool UpdateProductTopicRequest::getEnableProxySubscribe()const
+{
+	return enableProxySubscribe_;
+}
+
+void UpdateProductTopicRequest::setEnableProxySubscribe(bool enableProxySubscribe)
+{
+	enableProxySubscribe_ = enableProxySubscribe;
+	setParameter("EnableProxySubscribe", enableProxySubscribe ? "true" : "false");
+}
+
+std::string UpdateProductTopicRequest::getCodec()const
+{
+	return codec_;
+}
+
+void UpdateProductTopicRequest::setCodec(const std::string& codec)
+{
+	codec_ = codec;
+	setParameter("Codec", codec);
+}
+
 std::string UpdateProductTopicRequest::getApiProduct()const
 {
 	return apiProduct_;

+ 44 - 0
iot/src/model/UpdateTopicConfigRequest.cc

@@ -27,6 +27,17 @@ UpdateTopicConfigRequest::UpdateTopicConfigRequest() :
 UpdateTopicConfigRequest::~UpdateTopicConfigRequest()
 {}
 
+std::string UpdateTopicConfigRequest::getDescription()const
+{
+	return description_;
+}
+
+void UpdateTopicConfigRequest::setDescription(const std::string& description)
+{
+	description_ = description;
+	setParameter("Description", description);
+}
+
 std::string UpdateTopicConfigRequest::getIotInstanceId()const
 {
 	return iotInstanceId_;
@@ -60,6 +71,17 @@ void UpdateTopicConfigRequest::setEnableBroadcast(bool enableBroadcast)
 	setParameter("EnableBroadcast", enableBroadcast ? "true" : "false");
 }
 
+bool UpdateTopicConfigRequest::getEnableProxySubscribe()const
+{
+	return enableProxySubscribe_;
+}
+
+void UpdateTopicConfigRequest::setEnableProxySubscribe(bool enableProxySubscribe)
+{
+	enableProxySubscribe_ = enableProxySubscribe;
+	setParameter("EnableProxySubscribe", enableProxySubscribe ? "true" : "false");
+}
+
 std::string UpdateTopicConfigRequest::getProductKey()const
 {
 	return productKey_;
@@ -71,6 +93,17 @@ void UpdateTopicConfigRequest::setProductKey(const std::string& productKey)
 	setParameter("ProductKey", productKey);
 }
 
+std::string UpdateTopicConfigRequest::getCodec()const
+{
+	return codec_;
+}
+
+void UpdateTopicConfigRequest::setCodec(const std::string& codec)
+{
+	codec_ = codec;
+	setParameter("Codec", codec);
+}
+
 std::string UpdateTopicConfigRequest::getApiProduct()const
 {
 	return apiProduct_;
@@ -93,3 +126,14 @@ void UpdateTopicConfigRequest::setApiRevision(const std::string& apiRevision)
 	setBodyParameter("ApiRevision", apiRevision);
 }
 
+std::string UpdateTopicConfigRequest::getOperation()const
+{
+	return operation_;
+}
+
+void UpdateTopicConfigRequest::setOperation(const std::string& operation)
+{
+	operation_ = operation;
+	setParameter("Operation", operation);
+}
+

+ 4 - 4
iot/src/model/UpdateTopicConfigResult.cc

@@ -43,14 +43,14 @@ void UpdateTopicConfigResult::parse(const std::string &payload)
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())
 		code_ = value["Code"].asString();
-	if(!value["ErrorMessage"].isNull())
-		errorMessage_ = value["ErrorMessage"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
 
 }
 
-std::string UpdateTopicConfigResult::getErrorMessage()const
+std::string UpdateTopicConfigResult::getMessage()const
 {
-	return errorMessage_;
+	return message_;
 }
 
 std::string UpdateTopicConfigResult::getCode()const