Browse Source

Add a API QueryDeviceProvisioning to support query provisioning info for device.

sdk-team 3 years ago
parent
commit
f47daab733

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1481
+1.36.1482

+ 4 - 0
iot/CMakeLists.txt

@@ -541,6 +541,8 @@ set(iot_public_header_model
 	include/alibabacloud/iot/model/QueryDevicePropertyDataResult.h
 	include/alibabacloud/iot/model/QueryDevicePropertyStatusRequest.h
 	include/alibabacloud/iot/model/QueryDevicePropertyStatusResult.h
+	include/alibabacloud/iot/model/QueryDeviceProvisioningRequest.h
+	include/alibabacloud/iot/model/QueryDeviceProvisioningResult.h
 	include/alibabacloud/iot/model/QueryDeviceServiceDataRequest.h
 	include/alibabacloud/iot/model/QueryDeviceServiceDataResult.h
 	include/alibabacloud/iot/model/QueryDeviceSpeechRequest.h
@@ -1336,6 +1338,8 @@ set(iot_src
 	src/model/QueryDevicePropertyDataResult.cc
 	src/model/QueryDevicePropertyStatusRequest.cc
 	src/model/QueryDevicePropertyStatusResult.cc
+	src/model/QueryDeviceProvisioningRequest.cc
+	src/model/QueryDeviceProvisioningResult.cc
 	src/model/QueryDeviceServiceDataRequest.cc
 	src/model/QueryDeviceServiceDataResult.cc
 	src/model/QueryDeviceSpeechRequest.cc

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

@@ -542,6 +542,8 @@
 #include "model/QueryDevicePropertyDataResult.h"
 #include "model/QueryDevicePropertyStatusRequest.h"
 #include "model/QueryDevicePropertyStatusResult.h"
+#include "model/QueryDeviceProvisioningRequest.h"
+#include "model/QueryDeviceProvisioningResult.h"
 #include "model/QueryDeviceServiceDataRequest.h"
 #include "model/QueryDeviceServiceDataResult.h"
 #include "model/QueryDeviceSpeechRequest.h"
@@ -1603,6 +1605,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::QueryDevicePropertyStatusResult> QueryDevicePropertyStatusOutcome;
 			typedef std::future<QueryDevicePropertyStatusOutcome> QueryDevicePropertyStatusOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryDevicePropertyStatusRequest&, const QueryDevicePropertyStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDevicePropertyStatusAsyncHandler;
+			typedef Outcome<Error, Model::QueryDeviceProvisioningResult> QueryDeviceProvisioningOutcome;
+			typedef std::future<QueryDeviceProvisioningOutcome> QueryDeviceProvisioningOutcomeCallable;
+			typedef std::function<void(const IotClient*, const Model::QueryDeviceProvisioningRequest&, const QueryDeviceProvisioningOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceProvisioningAsyncHandler;
 			typedef Outcome<Error, Model::QueryDeviceServiceDataResult> QueryDeviceServiceDataOutcome;
 			typedef std::future<QueryDeviceServiceDataOutcome> QueryDeviceServiceDataOutcomeCallable;
 			typedef std::function<void(const IotClient*, const Model::QueryDeviceServiceDataRequest&, const QueryDeviceServiceDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryDeviceServiceDataAsyncHandler;
@@ -2796,6 +2801,9 @@ namespace AlibabaCloud
 			QueryDevicePropertyStatusOutcome queryDevicePropertyStatus(const Model::QueryDevicePropertyStatusRequest &request)const;
 			void queryDevicePropertyStatusAsync(const Model::QueryDevicePropertyStatusRequest& request, const QueryDevicePropertyStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryDevicePropertyStatusOutcomeCallable queryDevicePropertyStatusCallable(const Model::QueryDevicePropertyStatusRequest& request) const;
+			QueryDeviceProvisioningOutcome queryDeviceProvisioning(const Model::QueryDeviceProvisioningRequest &request)const;
+			void queryDeviceProvisioningAsync(const Model::QueryDeviceProvisioningRequest& request, const QueryDeviceProvisioningAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryDeviceProvisioningOutcomeCallable queryDeviceProvisioningCallable(const Model::QueryDeviceProvisioningRequest& request) const;
 			QueryDeviceServiceDataOutcome queryDeviceServiceData(const Model::QueryDeviceServiceDataRequest &request)const;
 			void queryDeviceServiceDataAsync(const Model::QueryDeviceServiceDataRequest& request, const QueryDeviceServiceDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryDeviceServiceDataOutcomeCallable queryDeviceServiceDataCallable(const Model::QueryDeviceServiceDataRequest& request) const;

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

@@ -41,8 +41,6 @@ namespace AlibabaCloud
 				void setFileConfig(const std::string& fileConfig);
 				std::string getIotInstanceId()const;
 				void setIotInstanceId(const std::string& iotInstanceId);
-				std::string getContext()const;
-				void setContext(const std::string& context);
 				std::string getTableName()const;
 				void setTableName(const std::string& tableName);
 				long getEndTime()const;
@@ -58,7 +56,6 @@ namespace AlibabaCloud
 				long startTime_;
 				std::string fileConfig_;
 				std::string iotInstanceId_;
-				std::string context_;
 				std::string tableName_;
 				long endTime_;
 				std::string downloadDataType_;

+ 1 - 41
iot/include/alibabacloud/iot/model/CreateDownloadDataJobResult.h

@@ -34,51 +34,11 @@ namespace AlibabaCloud
 			public:
 				struct Data
 				{
-					struct QuerySetting
-					{
-						struct SelectedHeadersItem
-						{
-							std::string geoClass;
-							std::string dimDateClass;
-							std::string alias;
-							std::string timeClass;
-							std::string fieldName;
-							std::string fieldType;
-						};
-						struct AstExprItem
-						{
-							std::string expr;
-							std::string exprType;
-						};
-						std::vector<AstExprItem> astExpr;
-						std::vector<SelectedHeadersItem> selectedHeaders;
-					};
-					struct HeaderItem
-					{
-						std::string geoClass;
-						std::string dimDateClass;
-						std::string alias;
-						std::string typeClass;
-						std::string timeClass;
-						std::string dataPrecision;
-						std::string fieldName;
-						std::string fieldType;
-					};
 					int status;
 					bool asyncExecute;
-					long endTime;
-					int pageSize;
+					std::string longJobId;
 					std::string csvUrl;
-					long beginTime;
 					std::string csvFileName;
-					std::string datasetId;
-					long totalCount;
-					std::vector<HeaderItem> header;
-					std::string longJobId;
-					std::string resultDataInString;
-					int pageNo;
-					QuerySetting querySetting;
-					int previewSize;
 				};
 
 

+ 57 - 0
iot/include/alibabacloud/iot/model/QueryDeviceProvisioningRequest.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_QUERYDEVICEPROVISIONINGREQUEST_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDEVICEPROVISIONINGREQUEST_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 QueryDeviceProvisioningRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryDeviceProvisioningRequest();
+				~QueryDeviceProvisioningRequest();
+
+				std::string getProductKey()const;
+				void setProductKey(const std::string& productKey);
+				std::string getApiProduct()const;
+				void setApiProduct(const std::string& apiProduct);
+				std::string getApiRevision()const;
+				void setApiRevision(const std::string& apiRevision);
+				std::string getDeviceName()const;
+				void setDeviceName(const std::string& deviceName);
+
+            private:
+				std::string productKey_;
+				std::string apiProduct_;
+				std::string apiRevision_;
+				std::string deviceName_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IOT_MODEL_QUERYDEVICEPROVISIONINGREQUEST_H_

+ 69 - 0
iot/include/alibabacloud/iot/model/QueryDeviceProvisioningResult.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_QUERYDEVICEPROVISIONINGRESULT_H_
+#define ALIBABACLOUD_IOT_MODEL_QUERYDEVICEPROVISIONINGRESULT_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 QueryDeviceProvisioningResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string targetRegion;
+					long gmtCreate;
+					std::string targetIotInstanceId;
+					std::string aliyunUid;
+					long gmtModified;
+					std::string sourceIotInstanceId;
+					std::string sourceRegion;
+					std::string productKey;
+					std::string deviceName;
+				};
+
+
+				QueryDeviceProvisioningResult();
+				explicit QueryDeviceProvisioningResult(const std::string &payload);
+				~QueryDeviceProvisioningResult();
+				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_QUERYDEVICEPROVISIONINGRESULT_H_

+ 39 - 3
iot/src/IotClient.cc

@@ -31,21 +31,21 @@ IotClient::IotClient(const Credentials &credentials, const ClientConfiguration &
 	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(credentials), configuration)
 {
 	auto locationClient = std::make_shared<LocationClient>(credentials, configuration);
-	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "iot");
 }
 
 IotClient::IotClient(const std::shared_ptr<CredentialsProvider>& credentialsProvider, const ClientConfiguration & configuration) :
 	RpcServiceClient(SERVICE_NAME, credentialsProvider, configuration)
 {
 	auto locationClient = std::make_shared<LocationClient>(credentialsProvider, configuration);
-	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "iot");
 }
 
 IotClient::IotClient(const std::string & accessKeyId, const std::string & accessKeySecret, const ClientConfiguration & configuration) :
 	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(accessKeyId, accessKeySecret), configuration)
 {
 	auto locationClient = std::make_shared<LocationClient>(accessKeyId, accessKeySecret, configuration);
-	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "iot");
 }
 
 IotClient::~IotClient()
@@ -9411,6 +9411,42 @@ IotClient::QueryDevicePropertyStatusOutcomeCallable IotClient::queryDeviceProper
 	return task->get_future();
 }
 
+IotClient::QueryDeviceProvisioningOutcome IotClient::queryDeviceProvisioning(const QueryDeviceProvisioningRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryDeviceProvisioningOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryDeviceProvisioningOutcome(QueryDeviceProvisioningResult(outcome.result()));
+	else
+		return QueryDeviceProvisioningOutcome(outcome.error());
+}
+
+void IotClient::queryDeviceProvisioningAsync(const QueryDeviceProvisioningRequest& request, const QueryDeviceProvisioningAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryDeviceProvisioning(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+IotClient::QueryDeviceProvisioningOutcomeCallable IotClient::queryDeviceProvisioningCallable(const QueryDeviceProvisioningRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryDeviceProvisioningOutcome()>>(
+			[this, request]()
+			{
+			return this->queryDeviceProvisioning(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 IotClient::QueryDeviceServiceDataOutcome IotClient::queryDeviceServiceData(const QueryDeviceServiceDataRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

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

@@ -60,17 +60,6 @@ void CreateDownloadDataJobRequest::setIotInstanceId(const std::string& iotInstan
 	setBodyParameter("IotInstanceId", iotInstanceId);
 }
 
-std::string CreateDownloadDataJobRequest::getContext()const
-{
-	return context_;
-}
-
-void CreateDownloadDataJobRequest::setContext(const std::string& context)
-{
-	context_ = context;
-	setBodyParameter("Context", context);
-}
-
 std::string CreateDownloadDataJobRequest::getTableName()const
 {
 	return tableName_;

+ 0 - 67
iot/src/model/CreateDownloadDataJobResult.cc

@@ -40,83 +40,16 @@ void CreateDownloadDataJobResult::parse(const std::string &payload)
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
 	auto dataNode = value["Data"];
-	if(!dataNode["PreviewSize"].isNull())
-		data_.previewSize = std::stoi(dataNode["PreviewSize"].asString());
 	if(!dataNode["CsvUrl"].isNull())
 		data_.csvUrl = dataNode["CsvUrl"].asString();
-	if(!dataNode["DatasetId"].isNull())
-		data_.datasetId = dataNode["DatasetId"].asString();
 	if(!dataNode["LongJobId"].isNull())
 		data_.longJobId = dataNode["LongJobId"].asString();
 	if(!dataNode["Status"].isNull())
 		data_.status = std::stoi(dataNode["Status"].asString());
-	if(!dataNode["BeginTime"].isNull())
-		data_.beginTime = std::stol(dataNode["BeginTime"].asString());
-	if(!dataNode["EndTime"].isNull())
-		data_.endTime = std::stol(dataNode["EndTime"].asString());
-	if(!dataNode["ResultDataInString"].isNull())
-		data_.resultDataInString = dataNode["ResultDataInString"].asString();
 	if(!dataNode["AsyncExecute"].isNull())
 		data_.asyncExecute = dataNode["AsyncExecute"].asString() == "true";
-	if(!dataNode["TotalCount"].isNull())
-		data_.totalCount = std::stol(dataNode["TotalCount"].asString());
-	if(!dataNode["PageNo"].isNull())
-		data_.pageNo = std::stoi(dataNode["PageNo"].asString());
-	if(!dataNode["PageSize"].isNull())
-		data_.pageSize = std::stoi(dataNode["PageSize"].asString());
 	if(!dataNode["CsvFileName"].isNull())
 		data_.csvFileName = dataNode["CsvFileName"].asString();
-	auto allHeaderNode = dataNode["Header"]["HeaderItem"];
-	for (auto dataNodeHeaderHeaderItem : allHeaderNode)
-	{
-		Data::HeaderItem headerItemObject;
-		if(!dataNodeHeaderHeaderItem["FieldName"].isNull())
-			headerItemObject.fieldName = dataNodeHeaderHeaderItem["FieldName"].asString();
-		if(!dataNodeHeaderHeaderItem["Alias"].isNull())
-			headerItemObject.alias = dataNodeHeaderHeaderItem["Alias"].asString();
-		if(!dataNodeHeaderHeaderItem["FieldType"].isNull())
-			headerItemObject.fieldType = dataNodeHeaderHeaderItem["FieldType"].asString();
-		if(!dataNodeHeaderHeaderItem["TypeClass"].isNull())
-			headerItemObject.typeClass = dataNodeHeaderHeaderItem["TypeClass"].asString();
-		if(!dataNodeHeaderHeaderItem["TimeClass"].isNull())
-			headerItemObject.timeClass = dataNodeHeaderHeaderItem["TimeClass"].asString();
-		if(!dataNodeHeaderHeaderItem["GeoClass"].isNull())
-			headerItemObject.geoClass = dataNodeHeaderHeaderItem["GeoClass"].asString();
-		if(!dataNodeHeaderHeaderItem["DimDateClass"].isNull())
-			headerItemObject.dimDateClass = dataNodeHeaderHeaderItem["DimDateClass"].asString();
-		if(!dataNodeHeaderHeaderItem["DataPrecision"].isNull())
-			headerItemObject.dataPrecision = dataNodeHeaderHeaderItem["DataPrecision"].asString();
-		data_.header.push_back(headerItemObject);
-	}
-	auto querySettingNode = dataNode["QuerySetting"];
-	auto allSelectedHeadersNode = querySettingNode["SelectedHeaders"]["SelectedHeadersItem"];
-	for (auto querySettingNodeSelectedHeadersSelectedHeadersItem : allSelectedHeadersNode)
-	{
-		Data::QuerySetting::SelectedHeadersItem selectedHeadersItemObject;
-		if(!querySettingNodeSelectedHeadersSelectedHeadersItem["FieldName"].isNull())
-			selectedHeadersItemObject.fieldName = querySettingNodeSelectedHeadersSelectedHeadersItem["FieldName"].asString();
-		if(!querySettingNodeSelectedHeadersSelectedHeadersItem["Alias"].isNull())
-			selectedHeadersItemObject.alias = querySettingNodeSelectedHeadersSelectedHeadersItem["Alias"].asString();
-		if(!querySettingNodeSelectedHeadersSelectedHeadersItem["FieldType"].isNull())
-			selectedHeadersItemObject.fieldType = querySettingNodeSelectedHeadersSelectedHeadersItem["FieldType"].asString();
-		if(!querySettingNodeSelectedHeadersSelectedHeadersItem["TimeClass"].isNull())
-			selectedHeadersItemObject.timeClass = querySettingNodeSelectedHeadersSelectedHeadersItem["TimeClass"].asString();
-		if(!querySettingNodeSelectedHeadersSelectedHeadersItem["GeoClass"].isNull())
-			selectedHeadersItemObject.geoClass = querySettingNodeSelectedHeadersSelectedHeadersItem["GeoClass"].asString();
-		if(!querySettingNodeSelectedHeadersSelectedHeadersItem["DimDateClass"].isNull())
-			selectedHeadersItemObject.dimDateClass = querySettingNodeSelectedHeadersSelectedHeadersItem["DimDateClass"].asString();
-		data_.querySetting.selectedHeaders.push_back(selectedHeadersItemObject);
-	}
-	auto allAstExprNode = querySettingNode["AstExpr"]["AstExprItem"];
-	for (auto querySettingNodeAstExprAstExprItem : allAstExprNode)
-	{
-		Data::QuerySetting::AstExprItem astExprItemObject;
-		if(!querySettingNodeAstExprAstExprItem["Expr"].isNull())
-			astExprItemObject.expr = querySettingNodeAstExprAstExprItem["Expr"].asString();
-		if(!querySettingNodeAstExprAstExprItem["ExprType"].isNull())
-			astExprItemObject.exprType = querySettingNodeAstExprAstExprItem["ExprType"].asString();
-		data_.querySetting.astExpr.push_back(astExprItemObject);
-	}
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())

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

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

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

@@ -0,0 +1,89 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/iot/model/QueryDeviceProvisioningResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Iot;
+using namespace AlibabaCloud::Iot::Model;
+
+QueryDeviceProvisioningResult::QueryDeviceProvisioningResult() :
+	ServiceResult()
+{}
+
+QueryDeviceProvisioningResult::QueryDeviceProvisioningResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryDeviceProvisioningResult::~QueryDeviceProvisioningResult()
+{}
+
+void QueryDeviceProvisioningResult::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["GmtCreate"].isNull())
+		data_.gmtCreate = std::stol(dataNode["GmtCreate"].asString());
+	if(!dataNode["GmtModified"].isNull())
+		data_.gmtModified = std::stol(dataNode["GmtModified"].asString());
+	if(!dataNode["AliyunUid"].isNull())
+		data_.aliyunUid = dataNode["AliyunUid"].asString();
+	if(!dataNode["ProductKey"].isNull())
+		data_.productKey = dataNode["ProductKey"].asString();
+	if(!dataNode["DeviceName"].isNull())
+		data_.deviceName = dataNode["DeviceName"].asString();
+	if(!dataNode["SourceIotInstanceId"].isNull())
+		data_.sourceIotInstanceId = dataNode["SourceIotInstanceId"].asString();
+	if(!dataNode["TargetIotInstanceId"].isNull())
+		data_.targetIotInstanceId = dataNode["TargetIotInstanceId"].asString();
+	if(!dataNode["SourceRegion"].isNull())
+		data_.sourceRegion = dataNode["SourceRegion"].asString();
+	if(!dataNode["TargetRegion"].isNull())
+		data_.targetRegion = dataNode["TargetRegion"].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();
+
+}
+
+QueryDeviceProvisioningResult::Data QueryDeviceProvisioningResult::getData()const
+{
+	return data_;
+}
+
+std::string QueryDeviceProvisioningResult::getErrorMessage()const
+{
+	return errorMessage_;
+}
+
+std::string QueryDeviceProvisioningResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryDeviceProvisioningResult::getSuccess()const
+{
+	return success_;
+}
+