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

Add source picture url for Monitor.

sdk-team 6 роки тому
батько
коміт
48a3320ae9
27 змінених файлів з 1678 додано та 1 видалено
  1. 3 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 20 0
      vcs/CMakeLists.txt
  4. 40 0
      vcs/include/alibabacloud/vcs/VcsClient.h
  5. 51 0
      vcs/include/alibabacloud/vcs/model/GetDeviceConfigRequest.h
  6. 93 0
      vcs/include/alibabacloud/vcs/model/GetDeviceConfigResult.h
  7. 1 0
      vcs/include/alibabacloud/vcs/model/GetMonitorResultResult.h
  8. 54 0
      vcs/include/alibabacloud/vcs/model/InvokeMotorModelRequest.h
  9. 59 0
      vcs/include/alibabacloud/vcs/model/InvokeMotorModelResult.h
  10. 57 0
      vcs/include/alibabacloud/vcs/model/RegisterDeviceRequest.h
  11. 55 0
      vcs/include/alibabacloud/vcs/model/RegisterDeviceResult.h
  12. 75 0
      vcs/include/alibabacloud/vcs/model/ReportDeviceCapacityRequest.h
  13. 55 0
      vcs/include/alibabacloud/vcs/model/ReportDeviceCapacityResult.h
  14. 51 0
      vcs/include/alibabacloud/vcs/model/SyncDeviceTimeRequest.h
  15. 61 0
      vcs/include/alibabacloud/vcs/model/SyncDeviceTimeResult.h
  16. 180 0
      vcs/src/VcsClient.cc
  17. 51 0
      vcs/src/model/GetDeviceConfigRequest.cc
  18. 187 0
      vcs/src/model/GetDeviceConfigResult.cc
  19. 2 0
      vcs/src/model/GetMonitorResultResult.cc
  20. 62 0
      vcs/src/model/InvokeMotorModelRequest.cc
  21. 66 0
      vcs/src/model/InvokeMotorModelResult.cc
  22. 73 0
      vcs/src/model/RegisterDeviceRequest.cc
  23. 65 0
      vcs/src/model/RegisterDeviceResult.cc
  24. 114 0
      vcs/src/model/ReportDeviceCapacityRequest.cc
  25. 65 0
      vcs/src/model/ReportDeviceCapacityResult.cc
  26. 51 0
      vcs/src/model/SyncDeviceTimeRequest.cc
  27. 86 0
      vcs/src/model/SyncDeviceTimeResult.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2020-08-03 Version: 1.36.551
+- Add source picture url for Monitor.
+
 2020-08-03 Version: 1.36.550
 - Add Voice Synchronous Scan API.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.550
+1.36.551

+ 20 - 0
vcs/CMakeLists.txt

@@ -43,6 +43,8 @@ set(vcs_public_header_model
 	include/alibabacloud/vcs/model/DeleteVideoSummaryTaskResult.h
 	include/alibabacloud/vcs/model/GetBodyOptionsRequest.h
 	include/alibabacloud/vcs/model/GetBodyOptionsResult.h
+	include/alibabacloud/vcs/model/GetDeviceConfigRequest.h
+	include/alibabacloud/vcs/model/GetDeviceConfigResult.h
 	include/alibabacloud/vcs/model/GetDeviceLiveUrlRequest.h
 	include/alibabacloud/vcs/model/GetDeviceLiveUrlResult.h
 	include/alibabacloud/vcs/model/GetDeviceVideoUrlRequest.h
@@ -59,6 +61,8 @@ set(vcs_public_header_model
 	include/alibabacloud/vcs/model/GetVideoComposeResultResult.h
 	include/alibabacloud/vcs/model/GetVideoSummaryTaskResultRequest.h
 	include/alibabacloud/vcs/model/GetVideoSummaryTaskResultResult.h
+	include/alibabacloud/vcs/model/InvokeMotorModelRequest.h
+	include/alibabacloud/vcs/model/InvokeMotorModelResult.h
 	include/alibabacloud/vcs/model/ListBodyAlgorithmResultsRequest.h
 	include/alibabacloud/vcs/model/ListBodyAlgorithmResultsResult.h
 	include/alibabacloud/vcs/model/ListCorpsRequest.h
@@ -79,6 +83,10 @@ set(vcs_public_header_model
 	include/alibabacloud/vcs/model/RecognizeFaceQualityResult.h
 	include/alibabacloud/vcs/model/RecognizeImageRequest.h
 	include/alibabacloud/vcs/model/RecognizeImageResult.h
+	include/alibabacloud/vcs/model/RegisterDeviceRequest.h
+	include/alibabacloud/vcs/model/RegisterDeviceResult.h
+	include/alibabacloud/vcs/model/ReportDeviceCapacityRequest.h
+	include/alibabacloud/vcs/model/ReportDeviceCapacityResult.h
 	include/alibabacloud/vcs/model/SaveVideoSummaryTaskVideoRequest.h
 	include/alibabacloud/vcs/model/SaveVideoSummaryTaskVideoResult.h
 	include/alibabacloud/vcs/model/SearchBodyRequest.h
@@ -87,6 +95,8 @@ set(vcs_public_header_model
 	include/alibabacloud/vcs/model/SearchFaceResult.h
 	include/alibabacloud/vcs/model/StopMonitorRequest.h
 	include/alibabacloud/vcs/model/StopMonitorResult.h
+	include/alibabacloud/vcs/model/SyncDeviceTimeRequest.h
+	include/alibabacloud/vcs/model/SyncDeviceTimeResult.h
 	include/alibabacloud/vcs/model/UpdateCorpRequest.h
 	include/alibabacloud/vcs/model/UpdateCorpResult.h
 	include/alibabacloud/vcs/model/UpdateDeviceRequest.h
@@ -120,6 +130,8 @@ set(vcs_src
 	src/model/DeleteVideoSummaryTaskResult.cc
 	src/model/GetBodyOptionsRequest.cc
 	src/model/GetBodyOptionsResult.cc
+	src/model/GetDeviceConfigRequest.cc
+	src/model/GetDeviceConfigResult.cc
 	src/model/GetDeviceLiveUrlRequest.cc
 	src/model/GetDeviceLiveUrlResult.cc
 	src/model/GetDeviceVideoUrlRequest.cc
@@ -136,6 +148,8 @@ set(vcs_src
 	src/model/GetVideoComposeResultResult.cc
 	src/model/GetVideoSummaryTaskResultRequest.cc
 	src/model/GetVideoSummaryTaskResultResult.cc
+	src/model/InvokeMotorModelRequest.cc
+	src/model/InvokeMotorModelResult.cc
 	src/model/ListBodyAlgorithmResultsRequest.cc
 	src/model/ListBodyAlgorithmResultsResult.cc
 	src/model/ListCorpsRequest.cc
@@ -156,6 +170,10 @@ set(vcs_src
 	src/model/RecognizeFaceQualityResult.cc
 	src/model/RecognizeImageRequest.cc
 	src/model/RecognizeImageResult.cc
+	src/model/RegisterDeviceRequest.cc
+	src/model/RegisterDeviceResult.cc
+	src/model/ReportDeviceCapacityRequest.cc
+	src/model/ReportDeviceCapacityResult.cc
 	src/model/SaveVideoSummaryTaskVideoRequest.cc
 	src/model/SaveVideoSummaryTaskVideoResult.cc
 	src/model/SearchBodyRequest.cc
@@ -164,6 +182,8 @@ set(vcs_src
 	src/model/SearchFaceResult.cc
 	src/model/StopMonitorRequest.cc
 	src/model/StopMonitorResult.cc
+	src/model/SyncDeviceTimeRequest.cc
+	src/model/SyncDeviceTimeResult.cc
 	src/model/UpdateCorpRequest.cc
 	src/model/UpdateCorpResult.cc
 	src/model/UpdateDeviceRequest.cc

+ 40 - 0
vcs/include/alibabacloud/vcs/VcsClient.h

@@ -44,6 +44,8 @@
 #include "model/DeleteVideoSummaryTaskResult.h"
 #include "model/GetBodyOptionsRequest.h"
 #include "model/GetBodyOptionsResult.h"
+#include "model/GetDeviceConfigRequest.h"
+#include "model/GetDeviceConfigResult.h"
 #include "model/GetDeviceLiveUrlRequest.h"
 #include "model/GetDeviceLiveUrlResult.h"
 #include "model/GetDeviceVideoUrlRequest.h"
@@ -60,6 +62,8 @@
 #include "model/GetVideoComposeResultResult.h"
 #include "model/GetVideoSummaryTaskResultRequest.h"
 #include "model/GetVideoSummaryTaskResultResult.h"
+#include "model/InvokeMotorModelRequest.h"
+#include "model/InvokeMotorModelResult.h"
 #include "model/ListBodyAlgorithmResultsRequest.h"
 #include "model/ListBodyAlgorithmResultsResult.h"
 #include "model/ListCorpsRequest.h"
@@ -80,6 +84,10 @@
 #include "model/RecognizeFaceQualityResult.h"
 #include "model/RecognizeImageRequest.h"
 #include "model/RecognizeImageResult.h"
+#include "model/RegisterDeviceRequest.h"
+#include "model/RegisterDeviceResult.h"
+#include "model/ReportDeviceCapacityRequest.h"
+#include "model/ReportDeviceCapacityResult.h"
 #include "model/SaveVideoSummaryTaskVideoRequest.h"
 #include "model/SaveVideoSummaryTaskVideoResult.h"
 #include "model/SearchBodyRequest.h"
@@ -88,6 +96,8 @@
 #include "model/SearchFaceResult.h"
 #include "model/StopMonitorRequest.h"
 #include "model/StopMonitorResult.h"
+#include "model/SyncDeviceTimeRequest.h"
+#include "model/SyncDeviceTimeResult.h"
 #include "model/UpdateCorpRequest.h"
 #include "model/UpdateCorpResult.h"
 #include "model/UpdateDeviceRequest.h"
@@ -138,6 +148,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetBodyOptionsResult> GetBodyOptionsOutcome;
 			typedef std::future<GetBodyOptionsOutcome> GetBodyOptionsOutcomeCallable;
 			typedef std::function<void(const VcsClient*, const Model::GetBodyOptionsRequest&, const GetBodyOptionsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetBodyOptionsAsyncHandler;
+			typedef Outcome<Error, Model::GetDeviceConfigResult> GetDeviceConfigOutcome;
+			typedef std::future<GetDeviceConfigOutcome> GetDeviceConfigOutcomeCallable;
+			typedef std::function<void(const VcsClient*, const Model::GetDeviceConfigRequest&, const GetDeviceConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetDeviceConfigAsyncHandler;
 			typedef Outcome<Error, Model::GetDeviceLiveUrlResult> GetDeviceLiveUrlOutcome;
 			typedef std::future<GetDeviceLiveUrlOutcome> GetDeviceLiveUrlOutcomeCallable;
 			typedef std::function<void(const VcsClient*, const Model::GetDeviceLiveUrlRequest&, const GetDeviceLiveUrlOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetDeviceLiveUrlAsyncHandler;
@@ -162,6 +175,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetVideoSummaryTaskResultResult> GetVideoSummaryTaskResultOutcome;
 			typedef std::future<GetVideoSummaryTaskResultOutcome> GetVideoSummaryTaskResultOutcomeCallable;
 			typedef std::function<void(const VcsClient*, const Model::GetVideoSummaryTaskResultRequest&, const GetVideoSummaryTaskResultOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetVideoSummaryTaskResultAsyncHandler;
+			typedef Outcome<Error, Model::InvokeMotorModelResult> InvokeMotorModelOutcome;
+			typedef std::future<InvokeMotorModelOutcome> InvokeMotorModelOutcomeCallable;
+			typedef std::function<void(const VcsClient*, const Model::InvokeMotorModelRequest&, const InvokeMotorModelOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> InvokeMotorModelAsyncHandler;
 			typedef Outcome<Error, Model::ListBodyAlgorithmResultsResult> ListBodyAlgorithmResultsOutcome;
 			typedef std::future<ListBodyAlgorithmResultsOutcome> ListBodyAlgorithmResultsOutcomeCallable;
 			typedef std::function<void(const VcsClient*, const Model::ListBodyAlgorithmResultsRequest&, const ListBodyAlgorithmResultsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListBodyAlgorithmResultsAsyncHandler;
@@ -192,6 +208,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::RecognizeImageResult> RecognizeImageOutcome;
 			typedef std::future<RecognizeImageOutcome> RecognizeImageOutcomeCallable;
 			typedef std::function<void(const VcsClient*, const Model::RecognizeImageRequest&, const RecognizeImageOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RecognizeImageAsyncHandler;
+			typedef Outcome<Error, Model::RegisterDeviceResult> RegisterDeviceOutcome;
+			typedef std::future<RegisterDeviceOutcome> RegisterDeviceOutcomeCallable;
+			typedef std::function<void(const VcsClient*, const Model::RegisterDeviceRequest&, const RegisterDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RegisterDeviceAsyncHandler;
+			typedef Outcome<Error, Model::ReportDeviceCapacityResult> ReportDeviceCapacityOutcome;
+			typedef std::future<ReportDeviceCapacityOutcome> ReportDeviceCapacityOutcomeCallable;
+			typedef std::function<void(const VcsClient*, const Model::ReportDeviceCapacityRequest&, const ReportDeviceCapacityOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ReportDeviceCapacityAsyncHandler;
 			typedef Outcome<Error, Model::SaveVideoSummaryTaskVideoResult> SaveVideoSummaryTaskVideoOutcome;
 			typedef std::future<SaveVideoSummaryTaskVideoOutcome> SaveVideoSummaryTaskVideoOutcomeCallable;
 			typedef std::function<void(const VcsClient*, const Model::SaveVideoSummaryTaskVideoRequest&, const SaveVideoSummaryTaskVideoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SaveVideoSummaryTaskVideoAsyncHandler;
@@ -204,6 +226,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::StopMonitorResult> StopMonitorOutcome;
 			typedef std::future<StopMonitorOutcome> StopMonitorOutcomeCallable;
 			typedef std::function<void(const VcsClient*, const Model::StopMonitorRequest&, const StopMonitorOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StopMonitorAsyncHandler;
+			typedef Outcome<Error, Model::SyncDeviceTimeResult> SyncDeviceTimeOutcome;
+			typedef std::future<SyncDeviceTimeOutcome> SyncDeviceTimeOutcomeCallable;
+			typedef std::function<void(const VcsClient*, const Model::SyncDeviceTimeRequest&, const SyncDeviceTimeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SyncDeviceTimeAsyncHandler;
 			typedef Outcome<Error, Model::UpdateCorpResult> UpdateCorpOutcome;
 			typedef std::future<UpdateCorpOutcome> UpdateCorpOutcomeCallable;
 			typedef std::function<void(const VcsClient*, const Model::UpdateCorpRequest&, const UpdateCorpOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateCorpAsyncHandler;
@@ -254,6 +279,9 @@ namespace AlibabaCloud
 			GetBodyOptionsOutcome getBodyOptions(const Model::GetBodyOptionsRequest &request)const;
 			void getBodyOptionsAsync(const Model::GetBodyOptionsRequest& request, const GetBodyOptionsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetBodyOptionsOutcomeCallable getBodyOptionsCallable(const Model::GetBodyOptionsRequest& request) const;
+			GetDeviceConfigOutcome getDeviceConfig(const Model::GetDeviceConfigRequest &request)const;
+			void getDeviceConfigAsync(const Model::GetDeviceConfigRequest& request, const GetDeviceConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetDeviceConfigOutcomeCallable getDeviceConfigCallable(const Model::GetDeviceConfigRequest& request) const;
 			GetDeviceLiveUrlOutcome getDeviceLiveUrl(const Model::GetDeviceLiveUrlRequest &request)const;
 			void getDeviceLiveUrlAsync(const Model::GetDeviceLiveUrlRequest& request, const GetDeviceLiveUrlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetDeviceLiveUrlOutcomeCallable getDeviceLiveUrlCallable(const Model::GetDeviceLiveUrlRequest& request) const;
@@ -278,6 +306,9 @@ namespace AlibabaCloud
 			GetVideoSummaryTaskResultOutcome getVideoSummaryTaskResult(const Model::GetVideoSummaryTaskResultRequest &request)const;
 			void getVideoSummaryTaskResultAsync(const Model::GetVideoSummaryTaskResultRequest& request, const GetVideoSummaryTaskResultAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetVideoSummaryTaskResultOutcomeCallable getVideoSummaryTaskResultCallable(const Model::GetVideoSummaryTaskResultRequest& request) const;
+			InvokeMotorModelOutcome invokeMotorModel(const Model::InvokeMotorModelRequest &request)const;
+			void invokeMotorModelAsync(const Model::InvokeMotorModelRequest& request, const InvokeMotorModelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			InvokeMotorModelOutcomeCallable invokeMotorModelCallable(const Model::InvokeMotorModelRequest& request) const;
 			ListBodyAlgorithmResultsOutcome listBodyAlgorithmResults(const Model::ListBodyAlgorithmResultsRequest &request)const;
 			void listBodyAlgorithmResultsAsync(const Model::ListBodyAlgorithmResultsRequest& request, const ListBodyAlgorithmResultsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListBodyAlgorithmResultsOutcomeCallable listBodyAlgorithmResultsCallable(const Model::ListBodyAlgorithmResultsRequest& request) const;
@@ -308,6 +339,12 @@ namespace AlibabaCloud
 			RecognizeImageOutcome recognizeImage(const Model::RecognizeImageRequest &request)const;
 			void recognizeImageAsync(const Model::RecognizeImageRequest& request, const RecognizeImageAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			RecognizeImageOutcomeCallable recognizeImageCallable(const Model::RecognizeImageRequest& request) const;
+			RegisterDeviceOutcome registerDevice(const Model::RegisterDeviceRequest &request)const;
+			void registerDeviceAsync(const Model::RegisterDeviceRequest& request, const RegisterDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			RegisterDeviceOutcomeCallable registerDeviceCallable(const Model::RegisterDeviceRequest& request) const;
+			ReportDeviceCapacityOutcome reportDeviceCapacity(const Model::ReportDeviceCapacityRequest &request)const;
+			void reportDeviceCapacityAsync(const Model::ReportDeviceCapacityRequest& request, const ReportDeviceCapacityAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ReportDeviceCapacityOutcomeCallable reportDeviceCapacityCallable(const Model::ReportDeviceCapacityRequest& request) const;
 			SaveVideoSummaryTaskVideoOutcome saveVideoSummaryTaskVideo(const Model::SaveVideoSummaryTaskVideoRequest &request)const;
 			void saveVideoSummaryTaskVideoAsync(const Model::SaveVideoSummaryTaskVideoRequest& request, const SaveVideoSummaryTaskVideoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			SaveVideoSummaryTaskVideoOutcomeCallable saveVideoSummaryTaskVideoCallable(const Model::SaveVideoSummaryTaskVideoRequest& request) const;
@@ -320,6 +357,9 @@ namespace AlibabaCloud
 			StopMonitorOutcome stopMonitor(const Model::StopMonitorRequest &request)const;
 			void stopMonitorAsync(const Model::StopMonitorRequest& request, const StopMonitorAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			StopMonitorOutcomeCallable stopMonitorCallable(const Model::StopMonitorRequest& request) const;
+			SyncDeviceTimeOutcome syncDeviceTime(const Model::SyncDeviceTimeRequest &request)const;
+			void syncDeviceTimeAsync(const Model::SyncDeviceTimeRequest& request, const SyncDeviceTimeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SyncDeviceTimeOutcomeCallable syncDeviceTimeCallable(const Model::SyncDeviceTimeRequest& request) const;
 			UpdateCorpOutcome updateCorp(const Model::UpdateCorpRequest &request)const;
 			void updateCorpAsync(const Model::UpdateCorpRequest& request, const UpdateCorpAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateCorpOutcomeCallable updateCorpCallable(const Model::UpdateCorpRequest& request) const;

+ 51 - 0
vcs/include/alibabacloud/vcs/model/GetDeviceConfigRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_VCS_MODEL_GETDEVICECONFIGREQUEST_H_
+#define ALIBABACLOUD_VCS_MODEL_GETDEVICECONFIGREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/vcs/VcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Vcs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VCS_EXPORT GetDeviceConfigRequest : public RpcServiceRequest
+			{
+
+			public:
+				GetDeviceConfigRequest();
+				~GetDeviceConfigRequest();
+
+				std::string getDeviceTimeStamp()const;
+				void setDeviceTimeStamp(const std::string& deviceTimeStamp);
+				std::string getDeviceSn()const;
+				void setDeviceSn(const std::string& deviceSn);
+
+            private:
+				std::string deviceTimeStamp_;
+				std::string deviceSn_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VCS_MODEL_GETDEVICECONFIGREQUEST_H_

+ 93 - 0
vcs/include/alibabacloud/vcs/model/GetDeviceConfigResult.h

@@ -0,0 +1,93 @@
+/*
+ * 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_VCS_MODEL_GETDEVICECONFIGRESULT_H_
+#define ALIBABACLOUD_VCS_MODEL_GETDEVICECONFIGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/vcs/VcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Vcs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VCS_EXPORT GetDeviceConfigResult : public ServiceResult
+			{
+			public:
+				struct OSDListItem
+				{
+					std::string text;
+					std::string leftTopY;
+					std::string leftTopX;
+				};
+
+
+				GetDeviceConfigResult();
+				explicit GetDeviceConfigResult(const std::string &payload);
+				~GetDeviceConfigResult();
+				std::string getFrameRate()const;
+				std::string getEncodeFormat()const;
+				std::string getMessage()const;
+				std::string getLatitude()const;
+				std::string getCode()const;
+				std::string getLongitude()const;
+				std::vector<OSDListItem> getOSDList()const;
+				std::string getOSDTimeY()const;
+				std::string getOSDTimeEnable()const;
+				std::string getDeviceAddress()const;
+				std::string getOSDTimeX()const;
+				int getGovLength()const;
+				std::string getRetryInterval()const;
+				std::string getAudioFormat()const;
+				std::string getBitRate()const;
+				bool getAudioEnable()const;
+				std::string getDeviceName()const;
+				std::string getOSDTimeType()const;
+				std::string getResolution()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string frameRate_;
+				std::string encodeFormat_;
+				std::string message_;
+				std::string latitude_;
+				std::string code_;
+				std::string longitude_;
+				std::vector<OSDListItem> oSDList_;
+				std::string oSDTimeY_;
+				std::string oSDTimeEnable_;
+				std::string deviceAddress_;
+				std::string oSDTimeX_;
+				int govLength_;
+				std::string retryInterval_;
+				std::string audioFormat_;
+				std::string bitRate_;
+				bool audioEnable_;
+				std::string deviceName_;
+				std::string oSDTimeType_;
+				std::string resolution_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VCS_MODEL_GETDEVICECONFIGRESULT_H_

+ 1 - 0
vcs/include/alibabacloud/vcs/model/GetMonitorResultResult.h

@@ -39,6 +39,7 @@ namespace AlibabaCloud
 						std::string leftUpX;
 						std::string leftUpY;
 						std::string score;
+						std::string targetPicUrl;
 						std::string rightBottomX;
 						std::string rightBottomY;
 						std::string gbId;

+ 54 - 0
vcs/include/alibabacloud/vcs/model/InvokeMotorModelRequest.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_VCS_MODEL_INVOKEMOTORMODELREQUEST_H_
+#define ALIBABACLOUD_VCS_MODEL_INVOKEMOTORMODELREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/vcs/VcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Vcs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VCS_EXPORT InvokeMotorModelRequest : public RpcServiceRequest
+			{
+
+			public:
+				InvokeMotorModelRequest();
+				~InvokeMotorModelRequest();
+
+				std::string getPicPath()const;
+				void setPicPath(const std::string& picPath);
+				std::string getCorpId()const;
+				void setCorpId(const std::string& corpId);
+				std::string getPicId()const;
+				void setPicId(const std::string& picId);
+
+            private:
+				std::string picPath_;
+				std::string corpId_;
+				std::string picId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VCS_MODEL_INVOKEMOTORMODELREQUEST_H_

+ 59 - 0
vcs/include/alibabacloud/vcs/model/InvokeMotorModelResult.h

@@ -0,0 +1,59 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_VCS_MODEL_INVOKEMOTORMODELRESULT_H_
+#define ALIBABACLOUD_VCS_MODEL_INVOKEMOTORMODELRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/vcs/VcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Vcs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VCS_EXPORT InvokeMotorModelResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string structList;
+				};
+
+
+				InvokeMotorModelResult();
+				explicit InvokeMotorModelResult(const std::string &payload);
+				~InvokeMotorModelResult();
+				std::string getMessage()const;
+				Data getData()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				Data data_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VCS_MODEL_INVOKEMOTORMODELRESULT_H_

+ 57 - 0
vcs/include/alibabacloud/vcs/model/RegisterDeviceRequest.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_VCS_MODEL_REGISTERDEVICEREQUEST_H_
+#define ALIBABACLOUD_VCS_MODEL_REGISTERDEVICEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/vcs/VcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Vcs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VCS_EXPORT RegisterDeviceRequest : public RpcServiceRequest
+			{
+
+			public:
+				RegisterDeviceRequest();
+				~RegisterDeviceRequest();
+
+				std::string getDeviceTimeStamp()const;
+				void setDeviceTimeStamp(const std::string& deviceTimeStamp);
+				std::string getDeviceId()const;
+				void setDeviceId(const std::string& deviceId);
+				std::string getServerId()const;
+				void setServerId(const std::string& serverId);
+				std::string getDeviceSerialNumber()const;
+				void setDeviceSerialNumber(const std::string& deviceSerialNumber);
+
+            private:
+				std::string deviceTimeStamp_;
+				std::string deviceId_;
+				std::string serverId_;
+				std::string deviceSerialNumber_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VCS_MODEL_REGISTERDEVICEREQUEST_H_

+ 55 - 0
vcs/include/alibabacloud/vcs/model/RegisterDeviceResult.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_VCS_MODEL_REGISTERDEVICERESULT_H_
+#define ALIBABACLOUD_VCS_MODEL_REGISTERDEVICERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/vcs/VcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Vcs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VCS_EXPORT RegisterDeviceResult : public ServiceResult
+			{
+			public:
+
+
+				RegisterDeviceResult();
+				explicit RegisterDeviceResult(const std::string &payload);
+				~RegisterDeviceResult();
+				std::string getMessage()const;
+				std::string getRetryInterval()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string retryInterval_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VCS_MODEL_REGISTERDEVICERESULT_H_

+ 75 - 0
vcs/include/alibabacloud/vcs/model/ReportDeviceCapacityRequest.h

@@ -0,0 +1,75 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_VCS_MODEL_REPORTDEVICECAPACITYREQUEST_H_
+#define ALIBABACLOUD_VCS_MODEL_REPORTDEVICECAPACITYREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/vcs/VcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Vcs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VCS_EXPORT ReportDeviceCapacityRequest : public RpcServiceRequest
+			{
+			public:
+				struct StreamCapacities
+				{
+					std::string bitrateRange;
+					std::string maxStream;
+					std::string encodeFormat;
+					std::string maxFrameRate;
+					std::string resolution;
+				};
+
+			public:
+				ReportDeviceCapacityRequest();
+				~ReportDeviceCapacityRequest();
+
+				std::vector<StreamCapacities> getStreamCapacities()const;
+				void setStreamCapacities(const std::vector<StreamCapacities>& streamCapacities);
+				std::string getLatitude()const;
+				void setLatitude(const std::string& latitude);
+				std::string getPresetNum()const;
+				void setPresetNum(const std::string& presetNum);
+				std::string getDeviceSn()const;
+				void setDeviceSn(const std::string& deviceSn);
+				std::string getAudioFormat()const;
+				void setAudioFormat(const std::string& audioFormat);
+				std::string getPTZCapacity()const;
+				void setPTZCapacity(const std::string& pTZCapacity);
+				std::string getLongitude()const;
+				void setLongitude(const std::string& longitude);
+
+            private:
+				std::vector<StreamCapacities> streamCapacities_;
+				std::string latitude_;
+				std::string presetNum_;
+				std::string deviceSn_;
+				std::string audioFormat_;
+				std::string pTZCapacity_;
+				std::string longitude_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VCS_MODEL_REPORTDEVICECAPACITYREQUEST_H_

+ 55 - 0
vcs/include/alibabacloud/vcs/model/ReportDeviceCapacityResult.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_VCS_MODEL_REPORTDEVICECAPACITYRESULT_H_
+#define ALIBABACLOUD_VCS_MODEL_REPORTDEVICECAPACITYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/vcs/VcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Vcs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VCS_EXPORT ReportDeviceCapacityResult : public ServiceResult
+			{
+			public:
+
+
+				ReportDeviceCapacityResult();
+				explicit ReportDeviceCapacityResult(const std::string &payload);
+				~ReportDeviceCapacityResult();
+				std::string getMessage()const;
+				std::string getRetryInterval()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string retryInterval_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VCS_MODEL_REPORTDEVICECAPACITYRESULT_H_

+ 51 - 0
vcs/include/alibabacloud/vcs/model/SyncDeviceTimeRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_VCS_MODEL_SYNCDEVICETIMEREQUEST_H_
+#define ALIBABACLOUD_VCS_MODEL_SYNCDEVICETIMEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/vcs/VcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Vcs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VCS_EXPORT SyncDeviceTimeRequest : public RpcServiceRequest
+			{
+
+			public:
+				SyncDeviceTimeRequest();
+				~SyncDeviceTimeRequest();
+
+				std::string getDeviceTimeStamp()const;
+				void setDeviceTimeStamp(const std::string& deviceTimeStamp);
+				std::string getDeviceSn()const;
+				void setDeviceSn(const std::string& deviceSn);
+
+            private:
+				std::string deviceTimeStamp_;
+				std::string deviceSn_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VCS_MODEL_SYNCDEVICETIMEREQUEST_H_

+ 61 - 0
vcs/include/alibabacloud/vcs/model/SyncDeviceTimeResult.h

@@ -0,0 +1,61 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_VCS_MODEL_SYNCDEVICETIMERESULT_H_
+#define ALIBABACLOUD_VCS_MODEL_SYNCDEVICETIMERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/vcs/VcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Vcs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VCS_EXPORT SyncDeviceTimeResult : public ServiceResult
+			{
+			public:
+
+
+				SyncDeviceTimeResult();
+				explicit SyncDeviceTimeResult(const std::string &payload);
+				~SyncDeviceTimeResult();
+				std::string getSyncInterval()const;
+				std::string getMessage()const;
+				std::string getNTPServer()const;
+				std::string getRetryInterval()const;
+				std::string getCode()const;
+				std::string getTimeStamp()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string syncInterval_;
+				std::string message_;
+				std::string nTPServer_;
+				std::string retryInterval_;
+				std::string code_;
+				std::string timeStamp_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VCS_MODEL_SYNCDEVICETIMERESULT_H_

+ 180 - 0
vcs/src/VcsClient.cc

@@ -447,6 +447,42 @@ VcsClient::GetBodyOptionsOutcomeCallable VcsClient::getBodyOptionsCallable(const
 	return task->get_future();
 }
 
+VcsClient::GetDeviceConfigOutcome VcsClient::getDeviceConfig(const GetDeviceConfigRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetDeviceConfigOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetDeviceConfigOutcome(GetDeviceConfigResult(outcome.result()));
+	else
+		return GetDeviceConfigOutcome(outcome.error());
+}
+
+void VcsClient::getDeviceConfigAsync(const GetDeviceConfigRequest& request, const GetDeviceConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getDeviceConfig(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+VcsClient::GetDeviceConfigOutcomeCallable VcsClient::getDeviceConfigCallable(const GetDeviceConfigRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetDeviceConfigOutcome()>>(
+			[this, request]()
+			{
+			return this->getDeviceConfig(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 VcsClient::GetDeviceLiveUrlOutcome VcsClient::getDeviceLiveUrl(const GetDeviceLiveUrlRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -735,6 +771,42 @@ VcsClient::GetVideoSummaryTaskResultOutcomeCallable VcsClient::getVideoSummaryTa
 	return task->get_future();
 }
 
+VcsClient::InvokeMotorModelOutcome VcsClient::invokeMotorModel(const InvokeMotorModelRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return InvokeMotorModelOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return InvokeMotorModelOutcome(InvokeMotorModelResult(outcome.result()));
+	else
+		return InvokeMotorModelOutcome(outcome.error());
+}
+
+void VcsClient::invokeMotorModelAsync(const InvokeMotorModelRequest& request, const InvokeMotorModelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, invokeMotorModel(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+VcsClient::InvokeMotorModelOutcomeCallable VcsClient::invokeMotorModelCallable(const InvokeMotorModelRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<InvokeMotorModelOutcome()>>(
+			[this, request]()
+			{
+			return this->invokeMotorModel(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 VcsClient::ListBodyAlgorithmResultsOutcome VcsClient::listBodyAlgorithmResults(const ListBodyAlgorithmResultsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1095,6 +1167,78 @@ VcsClient::RecognizeImageOutcomeCallable VcsClient::recognizeImageCallable(const
 	return task->get_future();
 }
 
+VcsClient::RegisterDeviceOutcome VcsClient::registerDevice(const RegisterDeviceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return RegisterDeviceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return RegisterDeviceOutcome(RegisterDeviceResult(outcome.result()));
+	else
+		return RegisterDeviceOutcome(outcome.error());
+}
+
+void VcsClient::registerDeviceAsync(const RegisterDeviceRequest& request, const RegisterDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, registerDevice(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+VcsClient::RegisterDeviceOutcomeCallable VcsClient::registerDeviceCallable(const RegisterDeviceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<RegisterDeviceOutcome()>>(
+			[this, request]()
+			{
+			return this->registerDevice(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+VcsClient::ReportDeviceCapacityOutcome VcsClient::reportDeviceCapacity(const ReportDeviceCapacityRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ReportDeviceCapacityOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ReportDeviceCapacityOutcome(ReportDeviceCapacityResult(outcome.result()));
+	else
+		return ReportDeviceCapacityOutcome(outcome.error());
+}
+
+void VcsClient::reportDeviceCapacityAsync(const ReportDeviceCapacityRequest& request, const ReportDeviceCapacityAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, reportDeviceCapacity(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+VcsClient::ReportDeviceCapacityOutcomeCallable VcsClient::reportDeviceCapacityCallable(const ReportDeviceCapacityRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ReportDeviceCapacityOutcome()>>(
+			[this, request]()
+			{
+			return this->reportDeviceCapacity(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 VcsClient::SaveVideoSummaryTaskVideoOutcome VcsClient::saveVideoSummaryTaskVideo(const SaveVideoSummaryTaskVideoRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1239,6 +1383,42 @@ VcsClient::StopMonitorOutcomeCallable VcsClient::stopMonitorCallable(const StopM
 	return task->get_future();
 }
 
+VcsClient::SyncDeviceTimeOutcome VcsClient::syncDeviceTime(const SyncDeviceTimeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SyncDeviceTimeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SyncDeviceTimeOutcome(SyncDeviceTimeResult(outcome.result()));
+	else
+		return SyncDeviceTimeOutcome(outcome.error());
+}
+
+void VcsClient::syncDeviceTimeAsync(const SyncDeviceTimeRequest& request, const SyncDeviceTimeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, syncDeviceTime(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+VcsClient::SyncDeviceTimeOutcomeCallable VcsClient::syncDeviceTimeCallable(const SyncDeviceTimeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SyncDeviceTimeOutcome()>>(
+			[this, request]()
+			{
+			return this->syncDeviceTime(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 VcsClient::UpdateCorpOutcome VcsClient::updateCorp(const UpdateCorpRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 51 - 0
vcs/src/model/GetDeviceConfigRequest.cc

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/vcs/model/GetDeviceConfigRequest.h>
+
+using AlibabaCloud::Vcs::Model::GetDeviceConfigRequest;
+
+GetDeviceConfigRequest::GetDeviceConfigRequest() :
+	RpcServiceRequest("vcs", "2020-05-15", "GetDeviceConfig")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+GetDeviceConfigRequest::~GetDeviceConfigRequest()
+{}
+
+std::string GetDeviceConfigRequest::getDeviceTimeStamp()const
+{
+	return deviceTimeStamp_;
+}
+
+void GetDeviceConfigRequest::setDeviceTimeStamp(const std::string& deviceTimeStamp)
+{
+	deviceTimeStamp_ = deviceTimeStamp;
+	setBodyParameter("DeviceTimeStamp", deviceTimeStamp);
+}
+
+std::string GetDeviceConfigRequest::getDeviceSn()const
+{
+	return deviceSn_;
+}
+
+void GetDeviceConfigRequest::setDeviceSn(const std::string& deviceSn)
+{
+	deviceSn_ = deviceSn;
+	setBodyParameter("DeviceSn", deviceSn);
+}
+

+ 187 - 0
vcs/src/model/GetDeviceConfigResult.cc

@@ -0,0 +1,187 @@
+/*
+ * 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/vcs/model/GetDeviceConfigResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Vcs;
+using namespace AlibabaCloud::Vcs::Model;
+
+GetDeviceConfigResult::GetDeviceConfigResult() :
+	ServiceResult()
+{}
+
+GetDeviceConfigResult::GetDeviceConfigResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetDeviceConfigResult::~GetDeviceConfigResult()
+{}
+
+void GetDeviceConfigResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allOSDListNode = value["OSDList"]["OSDListItem"];
+	for (auto valueOSDListOSDListItem : allOSDListNode)
+	{
+		OSDListItem oSDListObject;
+		if(!valueOSDListOSDListItem["Text"].isNull())
+			oSDListObject.text = valueOSDListOSDListItem["Text"].asString();
+		if(!valueOSDListOSDListItem["LeftTopX"].isNull())
+			oSDListObject.leftTopX = valueOSDListOSDListItem["LeftTopX"].asString();
+		if(!valueOSDListOSDListItem["LeftTopY"].isNull())
+			oSDListObject.leftTopY = valueOSDListOSDListItem["LeftTopY"].asString();
+		oSDList_.push_back(oSDListObject);
+	}
+	if(!value["AudioEnable"].isNull())
+		audioEnable_ = value["AudioEnable"].asString() == "true";
+	if(!value["AudioFormat"].isNull())
+		audioFormat_ = value["AudioFormat"].asString();
+	if(!value["BitRate"].isNull())
+		bitRate_ = value["BitRate"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["DeviceAddress"].isNull())
+		deviceAddress_ = value["DeviceAddress"].asString();
+	if(!value["DeviceName"].isNull())
+		deviceName_ = value["DeviceName"].asString();
+	if(!value["EncodeFormat"].isNull())
+		encodeFormat_ = value["EncodeFormat"].asString();
+	if(!value["FrameRate"].isNull())
+		frameRate_ = value["FrameRate"].asString();
+	if(!value["GovLength"].isNull())
+		govLength_ = std::stoi(value["GovLength"].asString());
+	if(!value["Latitude"].isNull())
+		latitude_ = value["Latitude"].asString();
+	if(!value["Longitude"].isNull())
+		longitude_ = value["Longitude"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["OSDTimeEnable"].isNull())
+		oSDTimeEnable_ = value["OSDTimeEnable"].asString();
+	if(!value["OSDTimeType"].isNull())
+		oSDTimeType_ = value["OSDTimeType"].asString();
+	if(!value["OSDTimeX"].isNull())
+		oSDTimeX_ = value["OSDTimeX"].asString();
+	if(!value["OSDTimeY"].isNull())
+		oSDTimeY_ = value["OSDTimeY"].asString();
+	if(!value["Resolution"].isNull())
+		resolution_ = value["Resolution"].asString();
+	if(!value["RetryInterval"].isNull())
+		retryInterval_ = value["RetryInterval"].asString();
+
+}
+
+std::string GetDeviceConfigResult::getFrameRate()const
+{
+	return frameRate_;
+}
+
+std::string GetDeviceConfigResult::getEncodeFormat()const
+{
+	return encodeFormat_;
+}
+
+std::string GetDeviceConfigResult::getMessage()const
+{
+	return message_;
+}
+
+std::string GetDeviceConfigResult::getLatitude()const
+{
+	return latitude_;
+}
+
+std::string GetDeviceConfigResult::getCode()const
+{
+	return code_;
+}
+
+std::string GetDeviceConfigResult::getLongitude()const
+{
+	return longitude_;
+}
+
+std::vector<GetDeviceConfigResult::OSDListItem> GetDeviceConfigResult::getOSDList()const
+{
+	return oSDList_;
+}
+
+std::string GetDeviceConfigResult::getOSDTimeY()const
+{
+	return oSDTimeY_;
+}
+
+std::string GetDeviceConfigResult::getOSDTimeEnable()const
+{
+	return oSDTimeEnable_;
+}
+
+std::string GetDeviceConfigResult::getDeviceAddress()const
+{
+	return deviceAddress_;
+}
+
+std::string GetDeviceConfigResult::getOSDTimeX()const
+{
+	return oSDTimeX_;
+}
+
+int GetDeviceConfigResult::getGovLength()const
+{
+	return govLength_;
+}
+
+std::string GetDeviceConfigResult::getRetryInterval()const
+{
+	return retryInterval_;
+}
+
+std::string GetDeviceConfigResult::getAudioFormat()const
+{
+	return audioFormat_;
+}
+
+std::string GetDeviceConfigResult::getBitRate()const
+{
+	return bitRate_;
+}
+
+bool GetDeviceConfigResult::getAudioEnable()const
+{
+	return audioEnable_;
+}
+
+std::string GetDeviceConfigResult::getDeviceName()const
+{
+	return deviceName_;
+}
+
+std::string GetDeviceConfigResult::getOSDTimeType()const
+{
+	return oSDTimeType_;
+}
+
+std::string GetDeviceConfigResult::getResolution()const
+{
+	return resolution_;
+}
+

+ 2 - 0
vcs/src/model/GetMonitorResultResult.cc

@@ -64,6 +64,8 @@ void GetMonitorResultResult::parse(const std::string &payload)
 			recordsItemObject.shotTime = dataNodeRecordsRecordsItem["ShotTime"].asString();
 		if(!dataNodeRecordsRecordsItem["MonitorPicUrl"].isNull())
 			recordsItemObject.monitorPicUrl = dataNodeRecordsRecordsItem["MonitorPicUrl"].asString();
+		if(!dataNodeRecordsRecordsItem["TargetPicUrl"].isNull())
+			recordsItemObject.targetPicUrl = dataNodeRecordsRecordsItem["TargetPicUrl"].asString();
 		data_.records.push_back(recordsItemObject);
 	}
 	if(!value["Code"].isNull())

+ 62 - 0
vcs/src/model/InvokeMotorModelRequest.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/vcs/model/InvokeMotorModelRequest.h>
+
+using AlibabaCloud::Vcs::Model::InvokeMotorModelRequest;
+
+InvokeMotorModelRequest::InvokeMotorModelRequest() :
+	RpcServiceRequest("vcs", "2020-05-15", "InvokeMotorModel")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+InvokeMotorModelRequest::~InvokeMotorModelRequest()
+{}
+
+std::string InvokeMotorModelRequest::getPicPath()const
+{
+	return picPath_;
+}
+
+void InvokeMotorModelRequest::setPicPath(const std::string& picPath)
+{
+	picPath_ = picPath;
+	setBodyParameter("PicPath", picPath);
+}
+
+std::string InvokeMotorModelRequest::getCorpId()const
+{
+	return corpId_;
+}
+
+void InvokeMotorModelRequest::setCorpId(const std::string& corpId)
+{
+	corpId_ = corpId;
+	setBodyParameter("CorpId", corpId);
+}
+
+std::string InvokeMotorModelRequest::getPicId()const
+{
+	return picId_;
+}
+
+void InvokeMotorModelRequest::setPicId(const std::string& picId)
+{
+	picId_ = picId;
+	setBodyParameter("PicId", picId);
+}
+

+ 66 - 0
vcs/src/model/InvokeMotorModelResult.cc

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

+ 73 - 0
vcs/src/model/RegisterDeviceRequest.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/vcs/model/RegisterDeviceRequest.h>
+
+using AlibabaCloud::Vcs::Model::RegisterDeviceRequest;
+
+RegisterDeviceRequest::RegisterDeviceRequest() :
+	RpcServiceRequest("vcs", "2020-05-15", "RegisterDevice")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+RegisterDeviceRequest::~RegisterDeviceRequest()
+{}
+
+std::string RegisterDeviceRequest::getDeviceTimeStamp()const
+{
+	return deviceTimeStamp_;
+}
+
+void RegisterDeviceRequest::setDeviceTimeStamp(const std::string& deviceTimeStamp)
+{
+	deviceTimeStamp_ = deviceTimeStamp;
+	setBodyParameter("DeviceTimeStamp", deviceTimeStamp);
+}
+
+std::string RegisterDeviceRequest::getDeviceId()const
+{
+	return deviceId_;
+}
+
+void RegisterDeviceRequest::setDeviceId(const std::string& deviceId)
+{
+	deviceId_ = deviceId;
+	setBodyParameter("DeviceId", deviceId);
+}
+
+std::string RegisterDeviceRequest::getServerId()const
+{
+	return serverId_;
+}
+
+void RegisterDeviceRequest::setServerId(const std::string& serverId)
+{
+	serverId_ = serverId;
+	setBodyParameter("ServerId", serverId);
+}
+
+std::string RegisterDeviceRequest::getDeviceSerialNumber()const
+{
+	return deviceSerialNumber_;
+}
+
+void RegisterDeviceRequest::setDeviceSerialNumber(const std::string& deviceSerialNumber)
+{
+	deviceSerialNumber_ = deviceSerialNumber;
+	setBodyParameter("DeviceSerialNumber", deviceSerialNumber);
+}
+

+ 65 - 0
vcs/src/model/RegisterDeviceResult.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/vcs/model/RegisterDeviceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Vcs;
+using namespace AlibabaCloud::Vcs::Model;
+
+RegisterDeviceResult::RegisterDeviceResult() :
+	ServiceResult()
+{}
+
+RegisterDeviceResult::RegisterDeviceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+RegisterDeviceResult::~RegisterDeviceResult()
+{}
+
+void RegisterDeviceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["RetryInterval"].isNull())
+		retryInterval_ = value["RetryInterval"].asString();
+
+}
+
+std::string RegisterDeviceResult::getMessage()const
+{
+	return message_;
+}
+
+std::string RegisterDeviceResult::getRetryInterval()const
+{
+	return retryInterval_;
+}
+
+std::string RegisterDeviceResult::getCode()const
+{
+	return code_;
+}
+

+ 114 - 0
vcs/src/model/ReportDeviceCapacityRequest.cc

@@ -0,0 +1,114 @@
+/*
+ * 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/vcs/model/ReportDeviceCapacityRequest.h>
+
+using AlibabaCloud::Vcs::Model::ReportDeviceCapacityRequest;
+
+ReportDeviceCapacityRequest::ReportDeviceCapacityRequest() :
+	RpcServiceRequest("vcs", "2020-05-15", "ReportDeviceCapacity")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+ReportDeviceCapacityRequest::~ReportDeviceCapacityRequest()
+{}
+
+std::vector<ReportDeviceCapacityRequest::StreamCapacities> ReportDeviceCapacityRequest::getStreamCapacities()const
+{
+	return streamCapacities_;
+}
+
+void ReportDeviceCapacityRequest::setStreamCapacities(const std::vector<StreamCapacities>& streamCapacities)
+{
+	streamCapacities_ = streamCapacities;
+	for(int dep1 = 0; dep1!= streamCapacities.size(); dep1++) {
+		auto streamCapacitiesObj = streamCapacities.at(dep1);
+		std::string streamCapacitiesObjStr = "StreamCapacities." + std::to_string(dep1 + 1);
+		setParameter(streamCapacitiesObjStr + ".BitrateRange", streamCapacitiesObj.bitrateRange);
+		setParameter(streamCapacitiesObjStr + ".MaxStream", streamCapacitiesObj.maxStream);
+		setParameter(streamCapacitiesObjStr + ".EncodeFormat", streamCapacitiesObj.encodeFormat);
+		setParameter(streamCapacitiesObjStr + ".MaxFrameRate", streamCapacitiesObj.maxFrameRate);
+		setParameter(streamCapacitiesObjStr + ".Resolution", streamCapacitiesObj.resolution);
+	}
+}
+
+std::string ReportDeviceCapacityRequest::getLatitude()const
+{
+	return latitude_;
+}
+
+void ReportDeviceCapacityRequest::setLatitude(const std::string& latitude)
+{
+	latitude_ = latitude;
+	setBodyParameter("Latitude", latitude);
+}
+
+std::string ReportDeviceCapacityRequest::getPresetNum()const
+{
+	return presetNum_;
+}
+
+void ReportDeviceCapacityRequest::setPresetNum(const std::string& presetNum)
+{
+	presetNum_ = presetNum;
+	setBodyParameter("PresetNum", presetNum);
+}
+
+std::string ReportDeviceCapacityRequest::getDeviceSn()const
+{
+	return deviceSn_;
+}
+
+void ReportDeviceCapacityRequest::setDeviceSn(const std::string& deviceSn)
+{
+	deviceSn_ = deviceSn;
+	setBodyParameter("DeviceSn", deviceSn);
+}
+
+std::string ReportDeviceCapacityRequest::getAudioFormat()const
+{
+	return audioFormat_;
+}
+
+void ReportDeviceCapacityRequest::setAudioFormat(const std::string& audioFormat)
+{
+	audioFormat_ = audioFormat;
+	setBodyParameter("AudioFormat", audioFormat);
+}
+
+std::string ReportDeviceCapacityRequest::getPTZCapacity()const
+{
+	return pTZCapacity_;
+}
+
+void ReportDeviceCapacityRequest::setPTZCapacity(const std::string& pTZCapacity)
+{
+	pTZCapacity_ = pTZCapacity;
+	setBodyParameter("PTZCapacity", pTZCapacity);
+}
+
+std::string ReportDeviceCapacityRequest::getLongitude()const
+{
+	return longitude_;
+}
+
+void ReportDeviceCapacityRequest::setLongitude(const std::string& longitude)
+{
+	longitude_ = longitude;
+	setBodyParameter("Longitude", longitude);
+}
+

+ 65 - 0
vcs/src/model/ReportDeviceCapacityResult.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/vcs/model/ReportDeviceCapacityResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Vcs;
+using namespace AlibabaCloud::Vcs::Model;
+
+ReportDeviceCapacityResult::ReportDeviceCapacityResult() :
+	ServiceResult()
+{}
+
+ReportDeviceCapacityResult::ReportDeviceCapacityResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ReportDeviceCapacityResult::~ReportDeviceCapacityResult()
+{}
+
+void ReportDeviceCapacityResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["RetryInterval"].isNull())
+		retryInterval_ = value["RetryInterval"].asString();
+
+}
+
+std::string ReportDeviceCapacityResult::getMessage()const
+{
+	return message_;
+}
+
+std::string ReportDeviceCapacityResult::getRetryInterval()const
+{
+	return retryInterval_;
+}
+
+std::string ReportDeviceCapacityResult::getCode()const
+{
+	return code_;
+}
+

+ 51 - 0
vcs/src/model/SyncDeviceTimeRequest.cc

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/vcs/model/SyncDeviceTimeRequest.h>
+
+using AlibabaCloud::Vcs::Model::SyncDeviceTimeRequest;
+
+SyncDeviceTimeRequest::SyncDeviceTimeRequest() :
+	RpcServiceRequest("vcs", "2020-05-15", "SyncDeviceTime")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+SyncDeviceTimeRequest::~SyncDeviceTimeRequest()
+{}
+
+std::string SyncDeviceTimeRequest::getDeviceTimeStamp()const
+{
+	return deviceTimeStamp_;
+}
+
+void SyncDeviceTimeRequest::setDeviceTimeStamp(const std::string& deviceTimeStamp)
+{
+	deviceTimeStamp_ = deviceTimeStamp;
+	setBodyParameter("DeviceTimeStamp", deviceTimeStamp);
+}
+
+std::string SyncDeviceTimeRequest::getDeviceSn()const
+{
+	return deviceSn_;
+}
+
+void SyncDeviceTimeRequest::setDeviceSn(const std::string& deviceSn)
+{
+	deviceSn_ = deviceSn;
+	setBodyParameter("DeviceSn", deviceSn);
+}
+

+ 86 - 0
vcs/src/model/SyncDeviceTimeResult.cc

@@ -0,0 +1,86 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/vcs/model/SyncDeviceTimeResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Vcs;
+using namespace AlibabaCloud::Vcs::Model;
+
+SyncDeviceTimeResult::SyncDeviceTimeResult() :
+	ServiceResult()
+{}
+
+SyncDeviceTimeResult::SyncDeviceTimeResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+SyncDeviceTimeResult::~SyncDeviceTimeResult()
+{}
+
+void SyncDeviceTimeResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["NTPServer"].isNull())
+		nTPServer_ = value["NTPServer"].asString();
+	if(!value["RetryInterval"].isNull())
+		retryInterval_ = value["RetryInterval"].asString();
+	if(!value["SyncInterval"].isNull())
+		syncInterval_ = value["SyncInterval"].asString();
+	if(!value["TimeStamp"].isNull())
+		timeStamp_ = value["TimeStamp"].asString();
+
+}
+
+std::string SyncDeviceTimeResult::getSyncInterval()const
+{
+	return syncInterval_;
+}
+
+std::string SyncDeviceTimeResult::getMessage()const
+{
+	return message_;
+}
+
+std::string SyncDeviceTimeResult::getNTPServer()const
+{
+	return nTPServer_;
+}
+
+std::string SyncDeviceTimeResult::getRetryInterval()const
+{
+	return retryInterval_;
+}
+
+std::string SyncDeviceTimeResult::getCode()const
+{
+	return code_;
+}
+
+std::string SyncDeviceTimeResult::getTimeStamp()const
+{
+	return timeStamp_;
+}
+