Prechádzať zdrojové kódy

Add a set of api to support device distribution management, including CreateProductDistributeJob, CreateDeviceDistributeJob, QueryDeviceDistributeJob, ListDeviceDistributeJob, QueryDeviceDistributeDetail, DeleteDeviceDistributeJob, ListDistributedDevice, ListDistributedProduct etc.

sdk-team 5 rokov pred
rodič
commit
a81d0c4daa
36 zmenil súbory, kde vykonal 2912 pridanie a 0 odobranie
  1. 3 0
      CHANGELOG
  2. 32 0
      iot/CMakeLists.txt
  3. 64 0
      iot/include/alibabacloud/iot/IotClient.h
  4. 80 0
      iot/include/alibabacloud/iot/model/CreateDeviceDistributeJobRequest.h
  5. 57 0
      iot/include/alibabacloud/iot/model/CreateDeviceDistributeJobResult.h
  6. 69 0
      iot/include/alibabacloud/iot/model/CreateProductDistributeJobRequest.h
  7. 57 0
      iot/include/alibabacloud/iot/model/CreateProductDistributeJobResult.h
  8. 54 0
      iot/include/alibabacloud/iot/model/DeleteDeviceDistributeJobRequest.h
  9. 55 0
      iot/include/alibabacloud/iot/model/DeleteDeviceDistributeJobResult.h
  10. 63 0
      iot/include/alibabacloud/iot/model/ListDeviceDistributeJobRequest.h
  11. 79 0
      iot/include/alibabacloud/iot/model/ListDeviceDistributeJobResult.h
  12. 72 0
      iot/include/alibabacloud/iot/model/ListDistributedDeviceRequest.h
  13. 78 0
      iot/include/alibabacloud/iot/model/ListDistributedDeviceResult.h
  14. 69 0
      iot/include/alibabacloud/iot/model/ListDistributedProductRequest.h
  15. 76 0
      iot/include/alibabacloud/iot/model/ListDistributedProductResult.h
  16. 54 0
      iot/include/alibabacloud/iot/model/QueryDeviceDistributeDetailRequest.h
  17. 57 0
      iot/include/alibabacloud/iot/model/QueryDeviceDistributeDetailResult.h
  18. 54 0
      iot/include/alibabacloud/iot/model/QueryDeviceDistributeJobRequest.h
  19. 74 0
      iot/include/alibabacloud/iot/model/QueryDeviceDistributeJobResult.h
  20. 288 0
      iot/src/IotClient.cc
  21. 145 0
      iot/src/model/CreateDeviceDistributeJobRequest.cc
  22. 72 0
      iot/src/model/CreateDeviceDistributeJobResult.cc
  23. 117 0
      iot/src/model/CreateProductDistributeJobRequest.cc
  24. 72 0
      iot/src/model/CreateProductDistributeJobResult.cc
  25. 62 0
      iot/src/model/DeleteDeviceDistributeJobRequest.cc
  26. 65 0
      iot/src/model/DeleteDeviceDistributeJobResult.cc
  27. 95 0
      iot/src/model/ListDeviceDistributeJobRequest.cc
  28. 105 0
      iot/src/model/ListDeviceDistributeJobResult.cc
  29. 128 0
      iot/src/model/ListDistributedDeviceRequest.cc
  30. 105 0
      iot/src/model/ListDistributedDeviceResult.cc
  31. 117 0
      iot/src/model/ListDistributedProductRequest.cc
  32. 101 0
      iot/src/model/ListDistributedProductResult.cc
  33. 62 0
      iot/src/model/QueryDeviceDistributeDetailRequest.cc
  34. 72 0
      iot/src/model/QueryDeviceDistributeDetailResult.cc
  35. 62 0
      iot/src/model/QueryDeviceDistributeJobRequest.cc
  36. 97 0
      iot/src/model/QueryDeviceDistributeJobResult.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2021-01-18 Version: patch
+- Add a set of api to support device distribution management, including CreateProductDistributeJob, CreateDeviceDistributeJob, QueryDeviceDistributeJob, ListDeviceDistributeJob, QueryDeviceDistributeDetail, DeleteDeviceDistributeJob, ListDistributedDevice, ListDistributedProduct etc.
+
 2021-01-18 Version: patch
 - Add ListMergeRequests api.
 - Add protected branch api, CreateRepositoryProtectedBranch and DeleteRepositoryProtectedBranch.

+ 32 - 0
iot/CMakeLists.txt

@@ -97,6 +97,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/CreateConsumerGroupSubscribeRelationResult.h
 	include/alibabacloud/iot/model/CreateDataAPIServiceRequest.h
 	include/alibabacloud/iot/model/CreateDataAPIServiceResult.h
+	include/alibabacloud/iot/model/CreateDeviceDistributeJobRequest.h
+	include/alibabacloud/iot/model/CreateDeviceDistributeJobResult.h
 	include/alibabacloud/iot/model/CreateDeviceGroupRequest.h
 	include/alibabacloud/iot/model/CreateDeviceGroupResult.h
 	include/alibabacloud/iot/model/CreateEdgeDriverRequest.h
@@ -127,6 +129,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/CreateOTAVerifyJobResult.h
 	include/alibabacloud/iot/model/CreateProductRequest.h
 	include/alibabacloud/iot/model/CreateProductResult.h
+	include/alibabacloud/iot/model/CreateProductDistributeJobRequest.h
+	include/alibabacloud/iot/model/CreateProductDistributeJobResult.h
 	include/alibabacloud/iot/model/CreateProductTagsRequest.h
 	include/alibabacloud/iot/model/CreateProductTagsResult.h
 	include/alibabacloud/iot/model/CreateProductTopicRequest.h
@@ -153,6 +157,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/DeleteConsumerGroupSubscribeRelationResult.h
 	include/alibabacloud/iot/model/DeleteDeviceRequest.h
 	include/alibabacloud/iot/model/DeleteDeviceResult.h
+	include/alibabacloud/iot/model/DeleteDeviceDistributeJobRequest.h
+	include/alibabacloud/iot/model/DeleteDeviceDistributeJobResult.h
 	include/alibabacloud/iot/model/DeleteDeviceFileRequest.h
 	include/alibabacloud/iot/model/DeleteDeviceFileResult.h
 	include/alibabacloud/iot/model/DeleteDeviceGroupRequest.h
@@ -245,6 +251,12 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/InvokeThingServiceResult.h
 	include/alibabacloud/iot/model/InvokeThingsServiceRequest.h
 	include/alibabacloud/iot/model/InvokeThingsServiceResult.h
+	include/alibabacloud/iot/model/ListDeviceDistributeJobRequest.h
+	include/alibabacloud/iot/model/ListDeviceDistributeJobResult.h
+	include/alibabacloud/iot/model/ListDistributedDeviceRequest.h
+	include/alibabacloud/iot/model/ListDistributedDeviceResult.h
+	include/alibabacloud/iot/model/ListDistributedProductRequest.h
+	include/alibabacloud/iot/model/ListDistributedProductResult.h
 	include/alibabacloud/iot/model/ListJobRequest.h
 	include/alibabacloud/iot/model/ListJobResult.h
 	include/alibabacloud/iot/model/ListOTAFirmwareRequest.h
@@ -313,6 +325,10 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/QueryDeviceDesiredPropertyResult.h
 	include/alibabacloud/iot/model/QueryDeviceDetailRequest.h
 	include/alibabacloud/iot/model/QueryDeviceDetailResult.h
+	include/alibabacloud/iot/model/QueryDeviceDistributeDetailRequest.h
+	include/alibabacloud/iot/model/QueryDeviceDistributeDetailResult.h
+	include/alibabacloud/iot/model/QueryDeviceDistributeJobRequest.h
+	include/alibabacloud/iot/model/QueryDeviceDistributeJobResult.h
 	include/alibabacloud/iot/model/QueryDeviceEventDataRequest.h
 	include/alibabacloud/iot/model/QueryDeviceEventDataResult.h
 	include/alibabacloud/iot/model/QueryDeviceFileRequest.h
@@ -576,6 +592,8 @@ set(iot_src
 	src/model/CreateConsumerGroupSubscribeRelationResult.cc
 	src/model/CreateDataAPIServiceRequest.cc
 	src/model/CreateDataAPIServiceResult.cc
+	src/model/CreateDeviceDistributeJobRequest.cc
+	src/model/CreateDeviceDistributeJobResult.cc
 	src/model/CreateDeviceGroupRequest.cc
 	src/model/CreateDeviceGroupResult.cc
 	src/model/CreateEdgeDriverRequest.cc
@@ -606,6 +624,8 @@ set(iot_src
 	src/model/CreateOTAVerifyJobResult.cc
 	src/model/CreateProductRequest.cc
 	src/model/CreateProductResult.cc
+	src/model/CreateProductDistributeJobRequest.cc
+	src/model/CreateProductDistributeJobResult.cc
 	src/model/CreateProductTagsRequest.cc
 	src/model/CreateProductTagsResult.cc
 	src/model/CreateProductTopicRequest.cc
@@ -632,6 +652,8 @@ set(iot_src
 	src/model/DeleteConsumerGroupSubscribeRelationResult.cc
 	src/model/DeleteDeviceRequest.cc
 	src/model/DeleteDeviceResult.cc
+	src/model/DeleteDeviceDistributeJobRequest.cc
+	src/model/DeleteDeviceDistributeJobResult.cc
 	src/model/DeleteDeviceFileRequest.cc
 	src/model/DeleteDeviceFileResult.cc
 	src/model/DeleteDeviceGroupRequest.cc
@@ -724,6 +746,12 @@ set(iot_src
 	src/model/InvokeThingServiceResult.cc
 	src/model/InvokeThingsServiceRequest.cc
 	src/model/InvokeThingsServiceResult.cc
+	src/model/ListDeviceDistributeJobRequest.cc
+	src/model/ListDeviceDistributeJobResult.cc
+	src/model/ListDistributedDeviceRequest.cc
+	src/model/ListDistributedDeviceResult.cc
+	src/model/ListDistributedProductRequest.cc
+	src/model/ListDistributedProductResult.cc
 	src/model/ListJobRequest.cc
 	src/model/ListJobResult.cc
 	src/model/ListOTAFirmwareRequest.cc
@@ -792,6 +820,10 @@ set(iot_src
 	src/model/QueryDeviceDesiredPropertyResult.cc
 	src/model/QueryDeviceDetailRequest.cc
 	src/model/QueryDeviceDetailResult.cc
+	src/model/QueryDeviceDistributeDetailRequest.cc
+	src/model/QueryDeviceDistributeDetailResult.cc
+	src/model/QueryDeviceDistributeJobRequest.cc
+	src/model/QueryDeviceDistributeJobResult.cc
 	src/model/QueryDeviceEventDataRequest.cc
 	src/model/QueryDeviceEventDataResult.cc
 	src/model/QueryDeviceFileRequest.cc

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

@@ -98,6 +98,8 @@
 #include "model/CreateConsumerGroupSubscribeRelationResult.h"
 #include "model/CreateDataAPIServiceRequest.h"
 #include "model/CreateDataAPIServiceResult.h"
+#include "model/CreateDeviceDistributeJobRequest.h"
+#include "model/CreateDeviceDistributeJobResult.h"
 #include "model/CreateDeviceGroupRequest.h"
 #include "model/CreateDeviceGroupResult.h"
 #include "model/CreateEdgeDriverRequest.h"
@@ -128,6 +130,8 @@
 #include "model/CreateOTAVerifyJobResult.h"
 #include "model/CreateProductRequest.h"
 #include "model/CreateProductResult.h"
+#include "model/CreateProductDistributeJobRequest.h"
+#include "model/CreateProductDistributeJobResult.h"
 #include "model/CreateProductTagsRequest.h"
 #include "model/CreateProductTagsResult.h"
 #include "model/CreateProductTopicRequest.h"
@@ -154,6 +158,8 @@
 #include "model/DeleteConsumerGroupSubscribeRelationResult.h"
 #include "model/DeleteDeviceRequest.h"
 #include "model/DeleteDeviceResult.h"
+#include "model/DeleteDeviceDistributeJobRequest.h"
+#include "model/DeleteDeviceDistributeJobResult.h"
 #include "model/DeleteDeviceFileRequest.h"
 #include "model/DeleteDeviceFileResult.h"
 #include "model/DeleteDeviceGroupRequest.h"
@@ -246,6 +252,12 @@
 #include "model/InvokeThingServiceResult.h"
 #include "model/InvokeThingsServiceRequest.h"
 #include "model/InvokeThingsServiceResult.h"
+#include "model/ListDeviceDistributeJobRequest.h"
+#include "model/ListDeviceDistributeJobResult.h"
+#include "model/ListDistributedDeviceRequest.h"
+#include "model/ListDistributedDeviceResult.h"
+#include "model/ListDistributedProductRequest.h"
+#include "model/ListDistributedProductResult.h"
 #include "model/ListJobRequest.h"
 #include "model/ListJobResult.h"
 #include "model/ListOTAFirmwareRequest.h"
@@ -314,6 +326,10 @@
 #include "model/QueryDeviceDesiredPropertyResult.h"
 #include "model/QueryDeviceDetailRequest.h"
 #include "model/QueryDeviceDetailResult.h"
+#include "model/QueryDeviceDistributeDetailRequest.h"
+#include "model/QueryDeviceDistributeDetailResult.h"
+#include "model/QueryDeviceDistributeJobRequest.h"
+#include "model/QueryDeviceDistributeJobResult.h"
 #include "model/QueryDeviceEventDataRequest.h"
 #include "model/QueryDeviceEventDataResult.h"
 #include "model/QueryDeviceFileRequest.h"
@@ -621,6 +637,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateDataAPIServiceResult> CreateDataAPIServiceOutcome;
 			typedef std::future<CreateDataAPIServiceOutcome> CreateDataAPIServiceOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CreateDataAPIServiceRequest&, const CreateDataAPIServiceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateDataAPIServiceAsyncHandler;
+			typedef Outcome<Error, Model::CreateDeviceDistributeJobResult> CreateDeviceDistributeJobOutcome;
+			typedef std::future<CreateDeviceDistributeJobOutcome> CreateDeviceDistributeJobOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::CreateDeviceDistributeJobRequest&, const CreateDeviceDistributeJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateDeviceDistributeJobAsyncHandler;
 			typedef Outcome<Error, Model::CreateDeviceGroupResult> CreateDeviceGroupOutcome;
 			typedef std::future<CreateDeviceGroupOutcome> CreateDeviceGroupOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CreateDeviceGroupRequest&, const CreateDeviceGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateDeviceGroupAsyncHandler;
@@ -666,6 +685,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateProductResult> CreateProductOutcome;
 			typedef std::future<CreateProductOutcome> CreateProductOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CreateProductRequest&, const CreateProductOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateProductAsyncHandler;
+			typedef Outcome<Error, Model::CreateProductDistributeJobResult> CreateProductDistributeJobOutcome;
+			typedef std::future<CreateProductDistributeJobOutcome> CreateProductDistributeJobOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::CreateProductDistributeJobRequest&, const CreateProductDistributeJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateProductDistributeJobAsyncHandler;
 			typedef Outcome<Error, Model::CreateProductTagsResult> CreateProductTagsOutcome;
 			typedef std::future<CreateProductTagsOutcome> CreateProductTagsOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::CreateProductTagsRequest&, const CreateProductTagsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateProductTagsAsyncHandler;
@@ -705,6 +727,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteDeviceResult> DeleteDeviceOutcome;
 			typedef std::future<DeleteDeviceOutcome> DeleteDeviceOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteDeviceRequest&, const DeleteDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDeviceAsyncHandler;
+			typedef Outcome<Error, Model::DeleteDeviceDistributeJobResult> DeleteDeviceDistributeJobOutcome;
+			typedef std::future<DeleteDeviceDistributeJobOutcome> DeleteDeviceDistributeJobOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::DeleteDeviceDistributeJobRequest&, const DeleteDeviceDistributeJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDeviceDistributeJobAsyncHandler;
 			typedef Outcome<Error, Model::DeleteDeviceFileResult> DeleteDeviceFileOutcome;
 			typedef std::future<DeleteDeviceFileOutcome> DeleteDeviceFileOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::DeleteDeviceFileRequest&, const DeleteDeviceFileOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDeviceFileAsyncHandler;
@@ -843,6 +868,15 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::InvokeThingsServiceResult> InvokeThingsServiceOutcome;
 			typedef std::future<InvokeThingsServiceOutcome> InvokeThingsServiceOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::InvokeThingsServiceRequest&, const InvokeThingsServiceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> InvokeThingsServiceAsyncHandler;
+			typedef Outcome<Error, Model::ListDeviceDistributeJobResult> ListDeviceDistributeJobOutcome;
+			typedef std::future<ListDeviceDistributeJobOutcome> ListDeviceDistributeJobOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::ListDeviceDistributeJobRequest&, const ListDeviceDistributeJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListDeviceDistributeJobAsyncHandler;
+			typedef Outcome<Error, Model::ListDistributedDeviceResult> ListDistributedDeviceOutcome;
+			typedef std::future<ListDistributedDeviceOutcome> ListDistributedDeviceOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::ListDistributedDeviceRequest&, const ListDistributedDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListDistributedDeviceAsyncHandler;
+			typedef Outcome<Error, Model::ListDistributedProductResult> ListDistributedProductOutcome;
+			typedef std::future<ListDistributedProductOutcome> ListDistributedProductOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::ListDistributedProductRequest&, const ListDistributedProductOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListDistributedProductAsyncHandler;
 			typedef Outcome<Error, Model::ListJobResult> ListJobOutcome;
 			typedef std::future<ListJobOutcome> ListJobOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::ListJobRequest&, const ListJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListJobAsyncHandler;
@@ -945,6 +979,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::QueryDeviceDetailResult> QueryDeviceDetailOutcome;
 			typedef std::future<QueryDeviceDetailOutcome> QueryDeviceDetailOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryDeviceDetailRequest&, const QueryDeviceDetailOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceDetailAsyncHandler;
+			typedef Outcome<Error, Model::QueryDeviceDistributeDetailResult> QueryDeviceDistributeDetailOutcome;
+			typedef std::future<QueryDeviceDistributeDetailOutcome> QueryDeviceDistributeDetailOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::QueryDeviceDistributeDetailRequest&, const QueryDeviceDistributeDetailOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceDistributeDetailAsyncHandler;
+			typedef Outcome<Error, Model::QueryDeviceDistributeJobResult> QueryDeviceDistributeJobOutcome;
+			typedef std::future<QueryDeviceDistributeJobOutcome> QueryDeviceDistributeJobOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::QueryDeviceDistributeJobRequest&, const QueryDeviceDistributeJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceDistributeJobAsyncHandler;
 			typedef Outcome<Error, Model::QueryDeviceEventDataResult> QueryDeviceEventDataOutcome;
 			typedef std::future<QueryDeviceEventDataOutcome> QueryDeviceEventDataOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryDeviceEventDataRequest&, const QueryDeviceEventDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceEventDataAsyncHandler;
@@ -1340,6 +1380,9 @@ namespace AlibabaCloud
 			CreateDataAPIServiceOutcome createDataAPIService(const Model::CreateDataAPIServiceRequest &request)const;
 			void createDataAPIServiceAsync(const Model::CreateDataAPIServiceRequest& request, const CreateDataAPIServiceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateDataAPIServiceOutcomeCallable createDataAPIServiceCallable(const Model::CreateDataAPIServiceRequest& request) const;
+			CreateDeviceDistributeJobOutcome createDeviceDistributeJob(const Model::CreateDeviceDistributeJobRequest &request)const;
+			void createDeviceDistributeJobAsync(const Model::CreateDeviceDistributeJobRequest& request, const CreateDeviceDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateDeviceDistributeJobOutcomeCallable createDeviceDistributeJobCallable(const Model::CreateDeviceDistributeJobRequest& request) const;
 			CreateDeviceGroupOutcome createDeviceGroup(const Model::CreateDeviceGroupRequest &request)const;
 			void createDeviceGroupAsync(const Model::CreateDeviceGroupRequest& request, const CreateDeviceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateDeviceGroupOutcomeCallable createDeviceGroupCallable(const Model::CreateDeviceGroupRequest& request) const;
@@ -1385,6 +1428,9 @@ namespace AlibabaCloud
 			CreateProductOutcome createProduct(const Model::CreateProductRequest &request)const;
 			void createProductAsync(const Model::CreateProductRequest& request, const CreateProductAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateProductOutcomeCallable createProductCallable(const Model::CreateProductRequest& request) const;
+			CreateProductDistributeJobOutcome createProductDistributeJob(const Model::CreateProductDistributeJobRequest &request)const;
+			void createProductDistributeJobAsync(const Model::CreateProductDistributeJobRequest& request, const CreateProductDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateProductDistributeJobOutcomeCallable createProductDistributeJobCallable(const Model::CreateProductDistributeJobRequest& request) const;
 			CreateProductTagsOutcome createProductTags(const Model::CreateProductTagsRequest &request)const;
 			void createProductTagsAsync(const Model::CreateProductTagsRequest& request, const CreateProductTagsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateProductTagsOutcomeCallable createProductTagsCallable(const Model::CreateProductTagsRequest& request) const;
@@ -1424,6 +1470,9 @@ namespace AlibabaCloud
 			DeleteDeviceOutcome deleteDevice(const Model::DeleteDeviceRequest &request)const;
 			void deleteDeviceAsync(const Model::DeleteDeviceRequest& request, const DeleteDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteDeviceOutcomeCallable deleteDeviceCallable(const Model::DeleteDeviceRequest& request) const;
+			DeleteDeviceDistributeJobOutcome deleteDeviceDistributeJob(const Model::DeleteDeviceDistributeJobRequest &request)const;
+			void deleteDeviceDistributeJobAsync(const Model::DeleteDeviceDistributeJobRequest& request, const DeleteDeviceDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteDeviceDistributeJobOutcomeCallable deleteDeviceDistributeJobCallable(const Model::DeleteDeviceDistributeJobRequest& request) const;
 			DeleteDeviceFileOutcome deleteDeviceFile(const Model::DeleteDeviceFileRequest &request)const;
 			void deleteDeviceFileAsync(const Model::DeleteDeviceFileRequest& request, const DeleteDeviceFileAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteDeviceFileOutcomeCallable deleteDeviceFileCallable(const Model::DeleteDeviceFileRequest& request) const;
@@ -1562,6 +1611,15 @@ namespace AlibabaCloud
 			InvokeThingsServiceOutcome invokeThingsService(const Model::InvokeThingsServiceRequest &request)const;
 			void invokeThingsServiceAsync(const Model::InvokeThingsServiceRequest& request, const InvokeThingsServiceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			InvokeThingsServiceOutcomeCallable invokeThingsServiceCallable(const Model::InvokeThingsServiceRequest& request) const;
+			ListDeviceDistributeJobOutcome listDeviceDistributeJob(const Model::ListDeviceDistributeJobRequest &request)const;
+			void listDeviceDistributeJobAsync(const Model::ListDeviceDistributeJobRequest& request, const ListDeviceDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListDeviceDistributeJobOutcomeCallable listDeviceDistributeJobCallable(const Model::ListDeviceDistributeJobRequest& request) const;
+			ListDistributedDeviceOutcome listDistributedDevice(const Model::ListDistributedDeviceRequest &request)const;
+			void listDistributedDeviceAsync(const Model::ListDistributedDeviceRequest& request, const ListDistributedDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListDistributedDeviceOutcomeCallable listDistributedDeviceCallable(const Model::ListDistributedDeviceRequest& request) const;
+			ListDistributedProductOutcome listDistributedProduct(const Model::ListDistributedProductRequest &request)const;
+			void listDistributedProductAsync(const Model::ListDistributedProductRequest& request, const ListDistributedProductAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListDistributedProductOutcomeCallable listDistributedProductCallable(const Model::ListDistributedProductRequest& request) const;
 			ListJobOutcome listJob(const Model::ListJobRequest &request)const;
 			void listJobAsync(const Model::ListJobRequest& request, const ListJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListJobOutcomeCallable listJobCallable(const Model::ListJobRequest& request) const;
@@ -1664,6 +1722,12 @@ namespace AlibabaCloud
 			QueryDeviceDetailOutcome queryDeviceDetail(const Model::QueryDeviceDetailRequest &request)const;
 			void queryDeviceDetailAsync(const Model::QueryDeviceDetailRequest& request, const QueryDeviceDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryDeviceDetailOutcomeCallable queryDeviceDetailCallable(const Model::QueryDeviceDetailRequest& request) const;
+			QueryDeviceDistributeDetailOutcome queryDeviceDistributeDetail(const Model::QueryDeviceDistributeDetailRequest &request)const;
+			void queryDeviceDistributeDetailAsync(const Model::QueryDeviceDistributeDetailRequest& request, const QueryDeviceDistributeDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryDeviceDistributeDetailOutcomeCallable queryDeviceDistributeDetailCallable(const Model::QueryDeviceDistributeDetailRequest& request) const;
+			QueryDeviceDistributeJobOutcome queryDeviceDistributeJob(const Model::QueryDeviceDistributeJobRequest &request)const;
+			void queryDeviceDistributeJobAsync(const Model::QueryDeviceDistributeJobRequest& request, const QueryDeviceDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryDeviceDistributeJobOutcomeCallable queryDeviceDistributeJobCallable(const Model::QueryDeviceDistributeJobRequest& request) const;
 			QueryDeviceEventDataOutcome queryDeviceEventData(const Model::QueryDeviceEventDataRequest &request)const;
 			void queryDeviceEventDataAsync(const Model::QueryDeviceEventDataRequest& request, const QueryDeviceEventDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryDeviceEventDataOutcomeCallable queryDeviceEventDataCallable(const Model::QueryDeviceEventDataRequest& request) const;

+ 80 - 0
iot/include/alibabacloud/iot/model/CreateDeviceDistributeJobRequest.h

@@ -0,0 +1,80 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_CREATEDEVICEDISTRIBUTEJOBREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATEDEVICEDISTRIBUTEJOBREQUEST_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 CreateDeviceDistributeJobRequest : public RpcServiceRequest
+			{
+			public:
+				struct TargetInstanceConfig
+				{
+					std::string targetInstanceId;
+				};
+
+			public:
+				CreateDeviceDistributeJobRequest();
+				~CreateDeviceDistributeJobRequest();
+
+				std::string getCaptcha()const;
+				void setCaptcha(const std::string& captcha);
+				std::string getSourceInstanceId()const;
+				void setSourceInstanceId(const std::string& sourceInstanceId);
+				std::string getTargetAliyunId()const;
+				void setTargetAliyunId(const std::string& targetAliyunId);
+				std::vector<TargetInstanceConfig> getTargetInstanceConfig()const;
+				void setTargetInstanceConfig(const std::vector<TargetInstanceConfig>& targetInstanceConfig);
+				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::vector<std::string> getDeviceName()const;
+				void setDeviceName(const std::vector<std::string>& deviceName);
+				std::string getTargetUid()const;
+				void setTargetUid(const std::string& targetUid);
+				int getStrategy()const;
+				void setStrategy(int strategy);
+
+            private:
+				std::string captcha_;
+				std::string sourceInstanceId_;
+				std::string targetAliyunId_;
+				std::vector<TargetInstanceConfig> targetInstanceConfig_;
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::vector<std::string> deviceName_;
+				std::string targetUid_;
+				int strategy_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CREATEDEVICEDISTRIBUTEJOBREQUEST_H_

+ 57 - 0
iot/include/alibabacloud/iot/model/CreateDeviceDistributeJobResult.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_CREATEDEVICEDISTRIBUTEJOBRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATEDEVICEDISTRIBUTEJOBRESULT_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 CreateDeviceDistributeJobResult : public ServiceResult
+			{
+			public:
+
+
+				CreateDeviceDistributeJobResult();
+				explicit CreateDeviceDistributeJobResult(const std::string &payload);
+				~CreateDeviceDistributeJobResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+				std::string getJobId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+				std::string jobId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CREATEDEVICEDISTRIBUTEJOBRESULT_H_

+ 69 - 0
iot/include/alibabacloud/iot/model/CreateProductDistributeJobRequest.h

@@ -0,0 +1,69 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_CREATEPRODUCTDISTRIBUTEJOBREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATEPRODUCTDISTRIBUTEJOBREQUEST_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 CreateProductDistributeJobRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateProductDistributeJobRequest();
+				~CreateProductDistributeJobRequest();
+
+				std::string getCaptcha()const;
+				void setCaptcha(const std::string& captcha);
+				std::string getSourceInstanceId()const;
+				void setSourceInstanceId(const std::string& sourceInstanceId);
+				std::string getTargetAliyunId()const;
+				void setTargetAliyunId(const std::string& targetAliyunId);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getTargetInstanceId()const;
+				void setTargetInstanceId(const std::string& targetInstanceId);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getTargetUid()const;
+				void setTargetUid(const std::string& targetUid);
+
+            private:
+				std::string captcha_;
+				std::string sourceInstanceId_;
+				std::string targetAliyunId_;
+				std::string productKey_;
+				std::string targetInstanceId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string targetUid_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CREATEPRODUCTDISTRIBUTEJOBREQUEST_H_

+ 57 - 0
iot/include/alibabacloud/iot/model/CreateProductDistributeJobResult.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_CREATEPRODUCTDISTRIBUTEJOBRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_CREATEPRODUCTDISTRIBUTEJOBRESULT_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 CreateProductDistributeJobResult : public ServiceResult
+			{
+			public:
+
+
+				CreateProductDistributeJobResult();
+				explicit CreateProductDistributeJobResult(const std::string &payload);
+				~CreateProductDistributeJobResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+				std::string getJobId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+				std::string jobId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_CREATEPRODUCTDISTRIBUTEJOBRESULT_H_

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

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

+ 55 - 0
iot/include/alibabacloud/iot/model/DeleteDeviceDistributeJobResult.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_DELETEDEVICEDISTRIBUTEJOBRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_DELETEDEVICEDISTRIBUTEJOBRESULT_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 DeleteDeviceDistributeJobResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteDeviceDistributeJobResult();
+				explicit DeleteDeviceDistributeJobResult(const std::string &payload);
+				~DeleteDeviceDistributeJobResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_DELETEDEVICEDISTRIBUTEJOBRESULT_H_

+ 63 - 0
iot/include/alibabacloud/iot/model/ListDeviceDistributeJobRequest.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_LISTDEVICEDISTRIBUTEJOBREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_LISTDEVICEDISTRIBUTEJOBREQUEST_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 ListDeviceDistributeJobRequest : public RpcServiceRequest
+			{
+
+			public:
+				ListDeviceDistributeJobRequest();
+				~ListDeviceDistributeJobRequest();
+
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				int getCurrentPage()const;
+				void setCurrentPage(int currentPage);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getTargetUid()const;
+				void setTargetUid(const std::string& targetUid);
+				int getStatus()const;
+				void setStatus(int status);
+
+            private:
+				int pageSize_;
+				int currentPage_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string targetUid_;
+				int status_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_LISTDEVICEDISTRIBUTEJOBREQUEST_H_

+ 79 - 0
iot/include/alibabacloud/iot/model/ListDeviceDistributeJobResult.h

@@ -0,0 +1,79 @@
+/*
+ * 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_LISTDEVICEDISTRIBUTEJOBRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_LISTDEVICEDISTRIBUTEJOBRESULT_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 ListDeviceDistributeJobResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct Items
+					{
+						struct TargetInstanceConfigsItem
+						{
+							std::string targetInstanceId;
+						};
+						int status;
+						long gmtCreate;
+						std::string sourceUid;
+						int total;
+						int strategy;
+						std::string targetUid;
+						std::vector<Items::TargetInstanceConfigsItem> targetInstanceConfigs;
+						std::string sourceInstanceId;
+						std::string jobId;
+						std::string productKey;
+					};
+					std::vector<Items> jobInfo;
+					int total;
+				};
+
+
+				ListDeviceDistributeJobResult();
+				explicit ListDeviceDistributeJobResult(const std::string &payload);
+				~ListDeviceDistributeJobResult();
+				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_LISTDEVICEDISTRIBUTEJOBRESULT_H_

+ 72 - 0
iot/include/alibabacloud/iot/model/ListDistributedDeviceRequest.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_LISTDISTRIBUTEDDEVICEREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_LISTDISTRIBUTEDDEVICEREQUEST_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 ListDistributedDeviceRequest : public RpcServiceRequest
+			{
+
+			public:
+				ListDistributedDeviceRequest();
+				~ListDistributedDeviceRequest();
+
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				std::string getSourceInstanceId()const;
+				void setSourceInstanceId(const std::string& sourceInstanceId);
+				int getCurrentPage()const;
+				void setCurrentPage(int currentPage);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getTargetInstanceId()const;
+				void setTargetInstanceId(const std::string& targetInstanceId);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getDeviceName()const;
+				void setDeviceName(const std::string& deviceName);
+				std::string getTargetUid()const;
+				void setTargetUid(const std::string& targetUid);
+
+            private:
+				int pageSize_;
+				std::string sourceInstanceId_;
+				int currentPage_;
+				std::string productKey_;
+				std::string targetInstanceId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string deviceName_;
+				std::string targetUid_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_LISTDISTRIBUTEDDEVICEREQUEST_H_

+ 78 - 0
iot/include/alibabacloud/iot/model/ListDistributedDeviceResult.h

@@ -0,0 +1,78 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_LISTDISTRIBUTEDDEVICERESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_LISTDISTRIBUTEDDEVICERESULT_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 ListDistributedDeviceResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct Items
+					{
+						std::string targetRegion;
+						std::string targetAliyunId;
+						std::string sourceInstanceName;
+						std::string sourceUid;
+						long gmtModified;
+						std::string targetInstanceId;
+						std::string targetUid;
+						std::string sourceInstanceId;
+						std::string sourceRegion;
+						long gmtCreate;
+						std::string targetInstanceName;
+						std::string productKey;
+						std::string deviceName;
+					};
+					int total;
+					std::vector<Items> info;
+				};
+
+
+				ListDistributedDeviceResult();
+				explicit ListDistributedDeviceResult(const std::string &payload);
+				~ListDistributedDeviceResult();
+				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_LISTDISTRIBUTEDDEVICERESULT_H_

+ 69 - 0
iot/include/alibabacloud/iot/model/ListDistributedProductRequest.h

@@ -0,0 +1,69 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_IOT_MODEL_LISTDISTRIBUTEDPRODUCTREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_LISTDISTRIBUTEDPRODUCTREQUEST_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 ListDistributedProductRequest : public RpcServiceRequest
+			{
+
+			public:
+				ListDistributedProductRequest();
+				~ListDistributedProductRequest();
+
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				std::string getSourceInstanceId()const;
+				void setSourceInstanceId(const std::string& sourceInstanceId);
+				int getCurrentPage()const;
+				void setCurrentPage(int currentPage);
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getTargetInstanceId()const;
+				void setTargetInstanceId(const std::string& targetInstanceId);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getTargetUid()const;
+				void setTargetUid(const std::string& targetUid);
+
+            private:
+				int pageSize_;
+				std::string sourceInstanceId_;
+				int currentPage_;
+				std::string productKey_;
+				std::string targetInstanceId_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string targetUid_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_LISTDISTRIBUTEDPRODUCTREQUEST_H_

+ 76 - 0
iot/include/alibabacloud/iot/model/ListDistributedProductResult.h

@@ -0,0 +1,76 @@
+/*
+ * 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_LISTDISTRIBUTEDPRODUCTRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_LISTDISTRIBUTEDPRODUCTRESULT_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 ListDistributedProductResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct Items
+					{
+						std::string targetRegion;
+						std::string targetAliyunId;
+						std::string sourceInstanceName;
+						int gmtCreate;
+						std::string sourceUid;
+						std::string targetInstanceName;
+						std::string targetInstanceId;
+						std::string targetUid;
+						std::string sourceInstanceId;
+						std::string sourceRegion;
+						std::string productKey;
+					};
+					int total;
+					std::vector<Items> info;
+				};
+
+
+				ListDistributedProductResult();
+				explicit ListDistributedProductResult(const std::string &payload);
+				~ListDistributedProductResult();
+				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_LISTDISTRIBUTEDPRODUCTRESULT_H_

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

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

+ 57 - 0
iot/include/alibabacloud/iot/model/QueryDeviceDistributeDetailResult.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_QUERYDEVICEDISTRIBUTEDETAILRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDEVICEDISTRIBUTEDETAILRESULT_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 QueryDeviceDistributeDetailResult : public ServiceResult
+			{
+			public:
+
+
+				QueryDeviceDistributeDetailResult();
+				explicit QueryDeviceDistributeDetailResult(const std::string &payload);
+				~QueryDeviceDistributeDetailResult();
+				std::string getErrorMessage()const;
+				std::string getCode()const;
+				std::string getFile()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string errorMessage_;
+				std::string code_;
+				std::string file_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYDEVICEDISTRIBUTEDETAILRESULT_H_

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

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

+ 74 - 0
iot/include/alibabacloud/iot/model/QueryDeviceDistributeJobResult.h

@@ -0,0 +1,74 @@
+/*
+ * 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_QUERYDEVICEDISTRIBUTEJOBRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDEVICEDISTRIBUTEJOBRESULT_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 QueryDeviceDistributeJobResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct TargetInstanceConfigsItem
+					{
+						std::string targetInstanceId;
+					};
+					int status;
+					long gmtCreate;
+					std::string sourceUid;
+					int total;
+					int strategy;
+					std::string targetUid;
+					std::vector<TargetInstanceConfigsItem> targetInstanceConfigs;
+					std::string sourceInstanceId;
+					std::string jobId;
+					std::string productKey;
+				};
+
+
+				QueryDeviceDistributeJobResult();
+				explicit QueryDeviceDistributeJobResult(const std::string &payload);
+				~QueryDeviceDistributeJobResult();
+				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_QUERYDEVICEDISTRIBUTEJOBRESULT_H_

+ 288 - 0
iot/src/IotClient.cc

@@ -1419,6 +1419,42 @@ IotClient::CreateDataAPIServiceOutcomeCallable IotClient::createDataAPIServiceCa
 	return task->get_future();
 }
 
+IotClient::CreateDeviceDistributeJobOutcome IotClient::createDeviceDistributeJob(const CreateDeviceDistributeJobRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateDeviceDistributeJobOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateDeviceDistributeJobOutcome(CreateDeviceDistributeJobResult(outcome.result()));
+	else
+		return CreateDeviceDistributeJobOutcome(outcome.error());
+}
+
+void IotClient::createDeviceDistributeJobAsync(const CreateDeviceDistributeJobRequest& request, const CreateDeviceDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createDeviceDistributeJob(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::CreateDeviceDistributeJobOutcomeCallable IotClient::createDeviceDistributeJobCallable(const CreateDeviceDistributeJobRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateDeviceDistributeJobOutcome()>>(
+			[this, request]()
+			{
+			return this->createDeviceDistributeJob(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::CreateDeviceGroupOutcome IotClient::createDeviceGroup(const CreateDeviceGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1959,6 +1995,42 @@ IotClient::CreateProductOutcomeCallable IotClient::createProductCallable(const C
 	return task->get_future();
 }
 
+IotClient::CreateProductDistributeJobOutcome IotClient::createProductDistributeJob(const CreateProductDistributeJobRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateProductDistributeJobOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateProductDistributeJobOutcome(CreateProductDistributeJobResult(outcome.result()));
+	else
+		return CreateProductDistributeJobOutcome(outcome.error());
+}
+
+void IotClient::createProductDistributeJobAsync(const CreateProductDistributeJobRequest& request, const CreateProductDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createProductDistributeJob(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::CreateProductDistributeJobOutcomeCallable IotClient::createProductDistributeJobCallable(const CreateProductDistributeJobRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateProductDistributeJobOutcome()>>(
+			[this, request]()
+			{
+			return this->createProductDistributeJob(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::CreateProductTagsOutcome IotClient::createProductTags(const CreateProductTagsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2427,6 +2499,42 @@ IotClient::DeleteDeviceOutcomeCallable IotClient::deleteDeviceCallable(const Del
 	return task->get_future();
 }
 
+IotClient::DeleteDeviceDistributeJobOutcome IotClient::deleteDeviceDistributeJob(const DeleteDeviceDistributeJobRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteDeviceDistributeJobOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteDeviceDistributeJobOutcome(DeleteDeviceDistributeJobResult(outcome.result()));
+	else
+		return DeleteDeviceDistributeJobOutcome(outcome.error());
+}
+
+void IotClient::deleteDeviceDistributeJobAsync(const DeleteDeviceDistributeJobRequest& request, const DeleteDeviceDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteDeviceDistributeJob(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::DeleteDeviceDistributeJobOutcomeCallable IotClient::deleteDeviceDistributeJobCallable(const DeleteDeviceDistributeJobRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteDeviceDistributeJobOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteDeviceDistributeJob(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::DeleteDeviceFileOutcome IotClient::deleteDeviceFile(const DeleteDeviceFileRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -4083,6 +4191,114 @@ IotClient::InvokeThingsServiceOutcomeCallable IotClient::invokeThingsServiceCall
 	return task->get_future();
 }
 
+IotClient::ListDeviceDistributeJobOutcome IotClient::listDeviceDistributeJob(const ListDeviceDistributeJobRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListDeviceDistributeJobOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListDeviceDistributeJobOutcome(ListDeviceDistributeJobResult(outcome.result()));
+	else
+		return ListDeviceDistributeJobOutcome(outcome.error());
+}
+
+void IotClient::listDeviceDistributeJobAsync(const ListDeviceDistributeJobRequest& request, const ListDeviceDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listDeviceDistributeJob(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::ListDeviceDistributeJobOutcomeCallable IotClient::listDeviceDistributeJobCallable(const ListDeviceDistributeJobRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListDeviceDistributeJobOutcome()>>(
+			[this, request]()
+			{
+			return this->listDeviceDistributeJob(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+IotClient::ListDistributedDeviceOutcome IotClient::listDistributedDevice(const ListDistributedDeviceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListDistributedDeviceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListDistributedDeviceOutcome(ListDistributedDeviceResult(outcome.result()));
+	else
+		return ListDistributedDeviceOutcome(outcome.error());
+}
+
+void IotClient::listDistributedDeviceAsync(const ListDistributedDeviceRequest& request, const ListDistributedDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listDistributedDevice(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::ListDistributedDeviceOutcomeCallable IotClient::listDistributedDeviceCallable(const ListDistributedDeviceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListDistributedDeviceOutcome()>>(
+			[this, request]()
+			{
+			return this->listDistributedDevice(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+IotClient::ListDistributedProductOutcome IotClient::listDistributedProduct(const ListDistributedProductRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListDistributedProductOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListDistributedProductOutcome(ListDistributedProductResult(outcome.result()));
+	else
+		return ListDistributedProductOutcome(outcome.error());
+}
+
+void IotClient::listDistributedProductAsync(const ListDistributedProductRequest& request, const ListDistributedProductAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listDistributedProduct(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::ListDistributedProductOutcomeCallable IotClient::listDistributedProductCallable(const ListDistributedProductRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListDistributedProductOutcome()>>(
+			[this, request]()
+			{
+			return this->listDistributedProduct(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::ListJobOutcome IotClient::listJob(const ListJobRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -5307,6 +5523,78 @@ IotClient::QueryDeviceDetailOutcomeCallable IotClient::queryDeviceDetailCallable
 	return task->get_future();
 }
 
+IotClient::QueryDeviceDistributeDetailOutcome IotClient::queryDeviceDistributeDetail(const QueryDeviceDistributeDetailRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryDeviceDistributeDetailOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryDeviceDistributeDetailOutcome(QueryDeviceDistributeDetailResult(outcome.result()));
+	else
+		return QueryDeviceDistributeDetailOutcome(outcome.error());
+}
+
+void IotClient::queryDeviceDistributeDetailAsync(const QueryDeviceDistributeDetailRequest& request, const QueryDeviceDistributeDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryDeviceDistributeDetail(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::QueryDeviceDistributeDetailOutcomeCallable IotClient::queryDeviceDistributeDetailCallable(const QueryDeviceDistributeDetailRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryDeviceDistributeDetailOutcome()>>(
+			[this, request]()
+			{
+			return this->queryDeviceDistributeDetail(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+IotClient::QueryDeviceDistributeJobOutcome IotClient::queryDeviceDistributeJob(const QueryDeviceDistributeJobRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryDeviceDistributeJobOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryDeviceDistributeJobOutcome(QueryDeviceDistributeJobResult(outcome.result()));
+	else
+		return QueryDeviceDistributeJobOutcome(outcome.error());
+}
+
+void IotClient::queryDeviceDistributeJobAsync(const QueryDeviceDistributeJobRequest& request, const QueryDeviceDistributeJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryDeviceDistributeJob(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::QueryDeviceDistributeJobOutcomeCallable IotClient::queryDeviceDistributeJobCallable(const QueryDeviceDistributeJobRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryDeviceDistributeJobOutcome()>>(
+			[this, request]()
+			{
+			return this->queryDeviceDistributeJob(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::QueryDeviceEventDataOutcome IotClient::queryDeviceEventData(const QueryDeviceEventDataRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 145 - 0
iot/src/model/CreateDeviceDistributeJobRequest.cc

@@ -0,0 +1,145 @@
+/*
+ * 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/CreateDeviceDistributeJobRequest.h>
+
+using AlibabaCloud::Iot::Model::CreateDeviceDistributeJobRequest;
+
+CreateDeviceDistributeJobRequest::CreateDeviceDistributeJobRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "CreateDeviceDistributeJob")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CreateDeviceDistributeJobRequest::~CreateDeviceDistributeJobRequest()
+{}
+
+std::string CreateDeviceDistributeJobRequest::getCaptcha()const
+{
+	return captcha_;
+}
+
+void CreateDeviceDistributeJobRequest::setCaptcha(const std::string& captcha)
+{
+	captcha_ = captcha;
+	setBodyParameter("Captcha", captcha);
+}
+
+std::string CreateDeviceDistributeJobRequest::getSourceInstanceId()const
+{
+	return sourceInstanceId_;
+}
+
+void CreateDeviceDistributeJobRequest::setSourceInstanceId(const std::string& sourceInstanceId)
+{
+	sourceInstanceId_ = sourceInstanceId;
+	setBodyParameter("SourceInstanceId", sourceInstanceId);
+}
+
+std::string CreateDeviceDistributeJobRequest::getTargetAliyunId()const
+{
+	return targetAliyunId_;
+}
+
+void CreateDeviceDistributeJobRequest::setTargetAliyunId(const std::string& targetAliyunId)
+{
+	targetAliyunId_ = targetAliyunId;
+	setBodyParameter("TargetAliyunId", targetAliyunId);
+}
+
+std::vector<CreateDeviceDistributeJobRequest::TargetInstanceConfig> CreateDeviceDistributeJobRequest::getTargetInstanceConfig()const
+{
+	return targetInstanceConfig_;
+}
+
+void CreateDeviceDistributeJobRequest::setTargetInstanceConfig(const std::vector<TargetInstanceConfig>& targetInstanceConfig)
+{
+	targetInstanceConfig_ = targetInstanceConfig;
+	for(int dep1 = 0; dep1!= targetInstanceConfig.size(); dep1++) {
+		auto targetInstanceConfigObj = targetInstanceConfig.at(dep1);
+		std::string targetInstanceConfigObjStr = "TargetInstanceConfig." + std::to_string(dep1 + 1);
+		setParameter(targetInstanceConfigObjStr + ".TargetInstanceId", targetInstanceConfigObj.targetInstanceId);
+	}
+}
+
+std::string CreateDeviceDistributeJobRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void CreateDeviceDistributeJobRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setBodyParameter("ProductKey", productKey);
+}
+
+std::string CreateDeviceDistributeJobRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void CreateDeviceDistributeJobRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string CreateDeviceDistributeJobRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void CreateDeviceDistributeJobRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::vector<std::string> CreateDeviceDistributeJobRequest::getDeviceName()const
+{
+	return deviceName_;
+}
+
+void CreateDeviceDistributeJobRequest::setDeviceName(const std::vector<std::string>& deviceName)
+{
+	deviceName_ = deviceName;
+	for(int dep1 = 0; dep1!= deviceName.size(); dep1++) {
+		setBodyParameter("DeviceName."+ std::to_string(dep1), deviceName.at(dep1));
+	}
+}
+
+std::string CreateDeviceDistributeJobRequest::getTargetUid()const
+{
+	return targetUid_;
+}
+
+void CreateDeviceDistributeJobRequest::setTargetUid(const std::string& targetUid)
+{
+	targetUid_ = targetUid;
+	setBodyParameter("TargetUid", targetUid);
+}
+
+int CreateDeviceDistributeJobRequest::getStrategy()const
+{
+	return strategy_;
+}
+
+void CreateDeviceDistributeJobRequest::setStrategy(int strategy)
+{
+	strategy_ = strategy;
+	setBodyParameter("Strategy", std::to_string(strategy));
+}
+

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

+ 117 - 0
iot/src/model/CreateProductDistributeJobRequest.cc

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

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

+ 62 - 0
iot/src/model/DeleteDeviceDistributeJobRequest.cc

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

+ 65 - 0
iot/src/model/DeleteDeviceDistributeJobResult.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/DeleteDeviceDistributeJobResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+DeleteDeviceDistributeJobResult::DeleteDeviceDistributeJobResult() :
+	ServiceResult()
+{}
+
+DeleteDeviceDistributeJobResult::DeleteDeviceDistributeJobResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteDeviceDistributeJobResult::~DeleteDeviceDistributeJobResult()
+{}
+
+void DeleteDeviceDistributeJobResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["ErrorMessage"].isNull())
+		errorMessage_ = value["ErrorMessage"].asString();
+
+}
+
+std::string DeleteDeviceDistributeJobResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string DeleteDeviceDistributeJobResult::getCode()const
+{
+	return code_;
+}
+
+bool DeleteDeviceDistributeJobResult::getSuccess()const
+{
+	return success_;
+}
+

+ 95 - 0
iot/src/model/ListDeviceDistributeJobRequest.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/ListDeviceDistributeJobRequest.h>
+
+using AlibabaCloud::Iot::Model::ListDeviceDistributeJobRequest;
+
+ListDeviceDistributeJobRequest::ListDeviceDistributeJobRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "ListDeviceDistributeJob")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+ListDeviceDistributeJobRequest::~ListDeviceDistributeJobRequest()
+{}
+
+int ListDeviceDistributeJobRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void ListDeviceDistributeJobRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+int ListDeviceDistributeJobRequest::getCurrentPage()const
+{
+	return currentPage_;
+}
+
+void ListDeviceDistributeJobRequest::setCurrentPage(int currentPage)
+{
+	currentPage_ = currentPage;
+	setParameter("CurrentPage", std::to_string(currentPage));
+}
+
+std::string ListDeviceDistributeJobRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void ListDeviceDistributeJobRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string ListDeviceDistributeJobRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void ListDeviceDistributeJobRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string ListDeviceDistributeJobRequest::getTargetUid()const
+{
+	return targetUid_;
+}
+
+void ListDeviceDistributeJobRequest::setTargetUid(const std::string& targetUid)
+{
+	targetUid_ = targetUid;
+	setParameter("TargetUid", targetUid);
+}
+
+int ListDeviceDistributeJobRequest::getStatus()const
+{
+	return status_;
+}
+
+void ListDeviceDistributeJobRequest::setStatus(int status)
+{
+	status_ = status;
+	setParameter("Status", std::to_string(status));
+}
+

+ 105 - 0
iot/src/model/ListDeviceDistributeJobResult.cc

@@ -0,0 +1,105 @@
+/*
+ * 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/ListDeviceDistributeJobResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+ListDeviceDistributeJobResult::ListDeviceDistributeJobResult() :
+	ServiceResult()
+{}
+
+ListDeviceDistributeJobResult::ListDeviceDistributeJobResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListDeviceDistributeJobResult::~ListDeviceDistributeJobResult()
+{}
+
+void ListDeviceDistributeJobResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Total"].isNull())
+		data_.total = std::stoi(dataNode["Total"].asString());
+	auto allJobInfoNode = dataNode["JobInfo"]["items"];
+	for (auto dataNodeJobInfoitems : allJobInfoNode)
+	{
+		Data::Items itemsObject;
+		if(!dataNodeJobInfoitems["GmtCreate"].isNull())
+			itemsObject.gmtCreate = std::stol(dataNodeJobInfoitems["GmtCreate"].asString());
+		if(!dataNodeJobInfoitems["SourceUid"].isNull())
+			itemsObject.sourceUid = dataNodeJobInfoitems["SourceUid"].asString();
+		if(!dataNodeJobInfoitems["TargetUid"].isNull())
+			itemsObject.targetUid = dataNodeJobInfoitems["TargetUid"].asString();
+		if(!dataNodeJobInfoitems["JobId"].isNull())
+			itemsObject.jobId = dataNodeJobInfoitems["JobId"].asString();
+		if(!dataNodeJobInfoitems["SourceInstanceId"].isNull())
+			itemsObject.sourceInstanceId = dataNodeJobInfoitems["SourceInstanceId"].asString();
+		if(!dataNodeJobInfoitems["ProductKey"].isNull())
+			itemsObject.productKey = dataNodeJobInfoitems["ProductKey"].asString();
+		if(!dataNodeJobInfoitems["Total"].isNull())
+			itemsObject.total = std::stoi(dataNodeJobInfoitems["Total"].asString());
+		if(!dataNodeJobInfoitems["Status"].isNull())
+			itemsObject.status = std::stoi(dataNodeJobInfoitems["Status"].asString());
+		if(!dataNodeJobInfoitems["Strategy"].isNull())
+			itemsObject.strategy = std::stoi(dataNodeJobInfoitems["Strategy"].asString());
+		auto allTargetInstanceConfigsNode = dataNodeJobInfoitems["TargetInstanceConfigs"]["targetInstanceConfigsItem"];
+		for (auto dataNodeJobInfoitemsTargetInstanceConfigstargetInstanceConfigsItem : allTargetInstanceConfigsNode)
+		{
+			Data::Items::TargetInstanceConfigsItem targetInstanceConfigsObject;
+			if(!dataNodeJobInfoitemsTargetInstanceConfigstargetInstanceConfigsItem["TargetInstanceId"].isNull())
+				targetInstanceConfigsObject.targetInstanceId = dataNodeJobInfoitemsTargetInstanceConfigstargetInstanceConfigsItem["TargetInstanceId"].asString();
+			itemsObject.targetInstanceConfigs.push_back(targetInstanceConfigsObject);
+		}
+		data_.jobInfo.push_back(itemsObject);
+	}
+	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();
+
+}
+
+ListDeviceDistributeJobResult::Data ListDeviceDistributeJobResult::getData()const
+{
+	return data_;
+}
+
+std::string ListDeviceDistributeJobResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string ListDeviceDistributeJobResult::getCode()const
+{
+	return code_;
+}
+
+bool ListDeviceDistributeJobResult::getSuccess()const
+{
+	return success_;
+}
+

+ 128 - 0
iot/src/model/ListDistributedDeviceRequest.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/ListDistributedDeviceRequest.h>
+
+using AlibabaCloud::Iot::Model::ListDistributedDeviceRequest;
+
+ListDistributedDeviceRequest::ListDistributedDeviceRequest() :
+	RpcServiceRequest("iot", "2018-01-20", "ListDistributedDevice")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+ListDistributedDeviceRequest::~ListDistributedDeviceRequest()
+{}
+
+int ListDistributedDeviceRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void ListDistributedDeviceRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+std::string ListDistributedDeviceRequest::getSourceInstanceId()const
+{
+	return sourceInstanceId_;
+}
+
+void ListDistributedDeviceRequest::setSourceInstanceId(const std::string& sourceInstanceId)
+{
+	sourceInstanceId_ = sourceInstanceId;
+	setParameter("SourceInstanceId", sourceInstanceId);
+}
+
+int ListDistributedDeviceRequest::getCurrentPage()const
+{
+	return currentPage_;
+}
+
+void ListDistributedDeviceRequest::setCurrentPage(int currentPage)
+{
+	currentPage_ = currentPage;
+	setParameter("CurrentPage", std::to_string(currentPage));
+}
+
+std::string ListDistributedDeviceRequest::getProductKey()const
+{
+	return productKey_;
+}
+
+void ListDistributedDeviceRequest::setProductKey(const std::string& productKey)
+{
+	productKey_ = productKey;
+	setParameter("ProductKey", productKey);
+}
+
+std::string ListDistributedDeviceRequest::getTargetInstanceId()const
+{
+	return targetInstanceId_;
+}
+
+void ListDistributedDeviceRequest::setTargetInstanceId(const std::string& targetInstanceId)
+{
+	targetInstanceId_ = targetInstanceId;
+	setParameter("TargetInstanceId", targetInstanceId);
+}
+
+std::string ListDistributedDeviceRequest::getApiProduct()const
+{
+	return apiProduct_;
+}
+
+void ListDistributedDeviceRequest::setApiProduct(const std::string& apiProduct)
+{
+	apiProduct_ = apiProduct;
+	setBodyParameter("ApiProduct", apiProduct);
+}
+
+std::string ListDistributedDeviceRequest::getApiRevision()const
+{
+	return apiRevision_;
+}
+
+void ListDistributedDeviceRequest::setApiRevision(const std::string& apiRevision)
+{
+	apiRevision_ = apiRevision;
+	setBodyParameter("ApiRevision", apiRevision);
+}
+
+std::string ListDistributedDeviceRequest::getDeviceName()const
+{
+	return deviceName_;
+}
+
+void ListDistributedDeviceRequest::setDeviceName(const std::string& deviceName)
+{
+	deviceName_ = deviceName;
+	setParameter("DeviceName", deviceName);
+}
+
+std::string ListDistributedDeviceRequest::getTargetUid()const
+{
+	return targetUid_;
+}
+
+void ListDistributedDeviceRequest::setTargetUid(const std::string& targetUid)
+{
+	targetUid_ = targetUid;
+	setParameter("TargetUid", targetUid);
+}
+

+ 105 - 0
iot/src/model/ListDistributedDeviceResult.cc

@@ -0,0 +1,105 @@
+/*
+ * 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/ListDistributedDeviceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+ListDistributedDeviceResult::ListDistributedDeviceResult() :
+	ServiceResult()
+{}
+
+ListDistributedDeviceResult::ListDistributedDeviceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListDistributedDeviceResult::~ListDistributedDeviceResult()
+{}
+
+void ListDistributedDeviceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Total"].isNull())
+		data_.total = std::stoi(dataNode["Total"].asString());
+	auto allInfoNode = dataNode["Info"]["items"];
+	for (auto dataNodeInfoitems : allInfoNode)
+	{
+		Data::Items itemsObject;
+		if(!dataNodeInfoitems["SourceUid"].isNull())
+			itemsObject.sourceUid = dataNodeInfoitems["SourceUid"].asString();
+		if(!dataNodeInfoitems["TargetUid"].isNull())
+			itemsObject.targetUid = dataNodeInfoitems["TargetUid"].asString();
+		if(!dataNodeInfoitems["ProductKey"].isNull())
+			itemsObject.productKey = dataNodeInfoitems["ProductKey"].asString();
+		if(!dataNodeInfoitems["DeviceName"].isNull())
+			itemsObject.deviceName = dataNodeInfoitems["DeviceName"].asString();
+		if(!dataNodeInfoitems["SourceInstanceId"].isNull())
+			itemsObject.sourceInstanceId = dataNodeInfoitems["SourceInstanceId"].asString();
+		if(!dataNodeInfoitems["TargetInstanceId"].isNull())
+			itemsObject.targetInstanceId = dataNodeInfoitems["TargetInstanceId"].asString();
+		if(!dataNodeInfoitems["GmtCreate"].isNull())
+			itemsObject.gmtCreate = std::stol(dataNodeInfoitems["GmtCreate"].asString());
+		if(!dataNodeInfoitems["TargetAliyunId"].isNull())
+			itemsObject.targetAliyunId = dataNodeInfoitems["TargetAliyunId"].asString();
+		if(!dataNodeInfoitems["SourceRegion"].isNull())
+			itemsObject.sourceRegion = dataNodeInfoitems["SourceRegion"].asString();
+		if(!dataNodeInfoitems["TargetRegion"].isNull())
+			itemsObject.targetRegion = dataNodeInfoitems["TargetRegion"].asString();
+		if(!dataNodeInfoitems["SourceInstanceName"].isNull())
+			itemsObject.sourceInstanceName = dataNodeInfoitems["SourceInstanceName"].asString();
+		if(!dataNodeInfoitems["TargetInstanceName"].isNull())
+			itemsObject.targetInstanceName = dataNodeInfoitems["TargetInstanceName"].asString();
+		if(!dataNodeInfoitems["GmtModified"].isNull())
+			itemsObject.gmtModified = std::stol(dataNodeInfoitems["GmtModified"].asString());
+		data_.info.push_back(itemsObject);
+	}
+	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();
+
+}
+
+ListDistributedDeviceResult::Data ListDistributedDeviceResult::getData()const
+{
+	return data_;
+}
+
+std::string ListDistributedDeviceResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string ListDistributedDeviceResult::getCode()const
+{
+	return code_;
+}
+
+bool ListDistributedDeviceResult::getSuccess()const
+{
+	return success_;
+}
+

+ 117 - 0
iot/src/model/ListDistributedProductRequest.cc

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

+ 101 - 0
iot/src/model/ListDistributedProductResult.cc

@@ -0,0 +1,101 @@
+/*
+ * 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/ListDistributedProductResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+ListDistributedProductResult::ListDistributedProductResult() :
+	ServiceResult()
+{}
+
+ListDistributedProductResult::ListDistributedProductResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListDistributedProductResult::~ListDistributedProductResult()
+{}
+
+void ListDistributedProductResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Total"].isNull())
+		data_.total = std::stoi(dataNode["Total"].asString());
+	auto allInfoNode = dataNode["Info"]["items"];
+	for (auto dataNodeInfoitems : allInfoNode)
+	{
+		Data::Items itemsObject;
+		if(!dataNodeInfoitems["SourceUid"].isNull())
+			itemsObject.sourceUid = dataNodeInfoitems["SourceUid"].asString();
+		if(!dataNodeInfoitems["TargetUid"].isNull())
+			itemsObject.targetUid = dataNodeInfoitems["TargetUid"].asString();
+		if(!dataNodeInfoitems["ProductKey"].isNull())
+			itemsObject.productKey = dataNodeInfoitems["ProductKey"].asString();
+		if(!dataNodeInfoitems["SourceInstanceId"].isNull())
+			itemsObject.sourceInstanceId = dataNodeInfoitems["SourceInstanceId"].asString();
+		if(!dataNodeInfoitems["TargetInstanceId"].isNull())
+			itemsObject.targetInstanceId = dataNodeInfoitems["TargetInstanceId"].asString();
+		if(!dataNodeInfoitems["GmtCreate"].isNull())
+			itemsObject.gmtCreate = std::stoi(dataNodeInfoitems["GmtCreate"].asString());
+		if(!dataNodeInfoitems["TargetAliyunId"].isNull())
+			itemsObject.targetAliyunId = dataNodeInfoitems["TargetAliyunId"].asString();
+		if(!dataNodeInfoitems["SourceRegion"].isNull())
+			itemsObject.sourceRegion = dataNodeInfoitems["SourceRegion"].asString();
+		if(!dataNodeInfoitems["TargetRegion"].isNull())
+			itemsObject.targetRegion = dataNodeInfoitems["TargetRegion"].asString();
+		if(!dataNodeInfoitems["SourceInstanceName"].isNull())
+			itemsObject.sourceInstanceName = dataNodeInfoitems["SourceInstanceName"].asString();
+		if(!dataNodeInfoitems["TargetInstanceName"].isNull())
+			itemsObject.targetInstanceName = dataNodeInfoitems["TargetInstanceName"].asString();
+		data_.info.push_back(itemsObject);
+	}
+	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();
+
+}
+
+ListDistributedProductResult::Data ListDistributedProductResult::getData()const
+{
+	return data_;
+}
+
+std::string ListDistributedProductResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string ListDistributedProductResult::getCode()const
+{
+	return code_;
+}
+
+bool ListDistributedProductResult::getSuccess()const
+{
+	return success_;
+}
+

+ 62 - 0
iot/src/model/QueryDeviceDistributeDetailRequest.cc

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

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

+ 62 - 0
iot/src/model/QueryDeviceDistributeJobRequest.cc

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

+ 97 - 0
iot/src/model/QueryDeviceDistributeJobResult.cc

@@ -0,0 +1,97 @@
+/*
+ * 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/QueryDeviceDistributeJobResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+QueryDeviceDistributeJobResult::QueryDeviceDistributeJobResult() :
+	ServiceResult()
+{}
+
+QueryDeviceDistributeJobResult::QueryDeviceDistributeJobResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryDeviceDistributeJobResult::~QueryDeviceDistributeJobResult()
+{}
+
+void QueryDeviceDistributeJobResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["SourceUid"].isNull())
+		data_.sourceUid = dataNode["SourceUid"].asString();
+	if(!dataNode["TargetUid"].isNull())
+		data_.targetUid = dataNode["TargetUid"].asString();
+	if(!dataNode["SourceInstanceId"].isNull())
+		data_.sourceInstanceId = dataNode["SourceInstanceId"].asString();
+	if(!dataNode["JobId"].isNull())
+		data_.jobId = dataNode["JobId"].asString();
+	if(!dataNode["ProductKey"].isNull())
+		data_.productKey = dataNode["ProductKey"].asString();
+	if(!dataNode["Total"].isNull())
+		data_.total = std::stoi(dataNode["Total"].asString());
+	if(!dataNode["Status"].isNull())
+		data_.status = std::stoi(dataNode["Status"].asString());
+	if(!dataNode["GmtCreate"].isNull())
+		data_.gmtCreate = std::stol(dataNode["GmtCreate"].asString());
+	if(!dataNode["Strategy"].isNull())
+		data_.strategy = std::stoi(dataNode["Strategy"].asString());
+	auto allTargetInstanceConfigsNode = dataNode["TargetInstanceConfigs"]["targetInstanceConfigsItem"];
+	for (auto dataNodeTargetInstanceConfigstargetInstanceConfigsItem : allTargetInstanceConfigsNode)
+	{
+		Data::TargetInstanceConfigsItem targetInstanceConfigsItemObject;
+		if(!dataNodeTargetInstanceConfigstargetInstanceConfigsItem["TargetInstanceId"].isNull())
+			targetInstanceConfigsItemObject.targetInstanceId = dataNodeTargetInstanceConfigstargetInstanceConfigsItem["TargetInstanceId"].asString();
+		data_.targetInstanceConfigs.push_back(targetInstanceConfigsItemObject);
+	}
+	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();
+
+}
+
+QueryDeviceDistributeJobResult::Data QueryDeviceDistributeJobResult::getData()const
+{
+	return data_;
+}
+
+std::string QueryDeviceDistributeJobResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string QueryDeviceDistributeJobResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryDeviceDistributeJobResult::getSuccess()const
+{
+	return success_;
+}
+