Просмотр исходного кода

-Release GetJobDetail, ListJobInfo.

sdk-team 1 год назад
Родитель
Сommit
fe745e81c4

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.2024
+1.36.2025

+ 8 - 0
vod/CMakeLists.txt

@@ -211,6 +211,8 @@ set(vod_public_header_model
 	include/alibabacloud/vod/model/GetImageInfoResult.h
 	include/alibabacloud/vod/model/GetImageInfosRequest.h
 	include/alibabacloud/vod/model/GetImageInfosResult.h
+	include/alibabacloud/vod/model/GetJobDetailRequest.h
+	include/alibabacloud/vod/model/GetJobDetailResult.h
 	include/alibabacloud/vod/model/GetMediaAuditAudioResultDetailRequest.h
 	include/alibabacloud/vod/model/GetMediaAuditAudioResultDetailResult.h
 	include/alibabacloud/vod/model/GetMediaAuditResultRequest.h
@@ -265,6 +267,8 @@ set(vod_public_header_model
 	include/alibabacloud/vod/model/ListAuditSecurityIpResult.h
 	include/alibabacloud/vod/model/ListDynamicImageRequest.h
 	include/alibabacloud/vod/model/ListDynamicImageResult.h
+	include/alibabacloud/vod/model/ListJobInfoRequest.h
+	include/alibabacloud/vod/model/ListJobInfoResult.h
 	include/alibabacloud/vod/model/ListLiveRecordVideoRequest.h
 	include/alibabacloud/vod/model/ListLiveRecordVideoResult.h
 	include/alibabacloud/vod/model/ListSnapshotsRequest.h
@@ -562,6 +566,8 @@ set(vod_src
 	src/model/GetImageInfoResult.cc
 	src/model/GetImageInfosRequest.cc
 	src/model/GetImageInfosResult.cc
+	src/model/GetJobDetailRequest.cc
+	src/model/GetJobDetailResult.cc
 	src/model/GetMediaAuditAudioResultDetailRequest.cc
 	src/model/GetMediaAuditAudioResultDetailResult.cc
 	src/model/GetMediaAuditResultRequest.cc
@@ -616,6 +622,8 @@ set(vod_src
 	src/model/ListAuditSecurityIpResult.cc
 	src/model/ListDynamicImageRequest.cc
 	src/model/ListDynamicImageResult.cc
+	src/model/ListJobInfoRequest.cc
+	src/model/ListJobInfoResult.cc
 	src/model/ListLiveRecordVideoRequest.cc
 	src/model/ListLiveRecordVideoResult.cc
 	src/model/ListSnapshotsRequest.cc

+ 16 - 0
vod/include/alibabacloud/vod/VodClient.h

@@ -212,6 +212,8 @@
 #include "model/GetImageInfoResult.h"
 #include "model/GetImageInfosRequest.h"
 #include "model/GetImageInfosResult.h"
+#include "model/GetJobDetailRequest.h"
+#include "model/GetJobDetailResult.h"
 #include "model/GetMediaAuditAudioResultDetailRequest.h"
 #include "model/GetMediaAuditAudioResultDetailResult.h"
 #include "model/GetMediaAuditResultRequest.h"
@@ -266,6 +268,8 @@
 #include "model/ListAuditSecurityIpResult.h"
 #include "model/ListDynamicImageRequest.h"
 #include "model/ListDynamicImageResult.h"
+#include "model/ListJobInfoRequest.h"
+#include "model/ListJobInfoResult.h"
 #include "model/ListLiveRecordVideoRequest.h"
 #include "model/ListLiveRecordVideoResult.h"
 #include "model/ListSnapshotsRequest.h"
@@ -664,6 +668,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetImageInfosResult> GetImageInfosOutcome;
 			typedef std::future<GetImageInfosOutcome> GetImageInfosOutcomeCallable;
 			typedef std::function<void(const VodClient*, const Model::GetImageInfosRequest&, const GetImageInfosOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetImageInfosAsyncHandler;
+			typedef Outcome<Error, Model::GetJobDetailResult> GetJobDetailOutcome;
+			typedef std::future<GetJobDetailOutcome> GetJobDetailOutcomeCallable;
+			typedef std::function<void(const VodClient*, const Model::GetJobDetailRequest&, const GetJobDetailOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetJobDetailAsyncHandler;
 			typedef Outcome<Error, Model::GetMediaAuditAudioResultDetailResult> GetMediaAuditAudioResultDetailOutcome;
 			typedef std::future<GetMediaAuditAudioResultDetailOutcome> GetMediaAuditAudioResultDetailOutcomeCallable;
 			typedef std::function<void(const VodClient*, const Model::GetMediaAuditAudioResultDetailRequest&, const GetMediaAuditAudioResultDetailOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetMediaAuditAudioResultDetailAsyncHandler;
@@ -745,6 +752,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListDynamicImageResult> ListDynamicImageOutcome;
 			typedef std::future<ListDynamicImageOutcome> ListDynamicImageOutcomeCallable;
 			typedef std::function<void(const VodClient*, const Model::ListDynamicImageRequest&, const ListDynamicImageOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListDynamicImageAsyncHandler;
+			typedef Outcome<Error, Model::ListJobInfoResult> ListJobInfoOutcome;
+			typedef std::future<ListJobInfoOutcome> ListJobInfoOutcomeCallable;
+			typedef std::function<void(const VodClient*, const Model::ListJobInfoRequest&, const ListJobInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListJobInfoAsyncHandler;
 			typedef Outcome<Error, Model::ListLiveRecordVideoResult> ListLiveRecordVideoOutcome;
 			typedef std::future<ListLiveRecordVideoOutcome> ListLiveRecordVideoOutcomeCallable;
 			typedef std::function<void(const VodClient*, const Model::ListLiveRecordVideoRequest&, const ListLiveRecordVideoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListLiveRecordVideoAsyncHandler;
@@ -1191,6 +1201,9 @@ namespace AlibabaCloud
 			GetImageInfosOutcome getImageInfos(const Model::GetImageInfosRequest &request)const;
 			void getImageInfosAsync(const Model::GetImageInfosRequest& request, const GetImageInfosAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetImageInfosOutcomeCallable getImageInfosCallable(const Model::GetImageInfosRequest& request) const;
+			GetJobDetailOutcome getJobDetail(const Model::GetJobDetailRequest &request)const;
+			void getJobDetailAsync(const Model::GetJobDetailRequest& request, const GetJobDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetJobDetailOutcomeCallable getJobDetailCallable(const Model::GetJobDetailRequest& request) const;
 			GetMediaAuditAudioResultDetailOutcome getMediaAuditAudioResultDetail(const Model::GetMediaAuditAudioResultDetailRequest &request)const;
 			void getMediaAuditAudioResultDetailAsync(const Model::GetMediaAuditAudioResultDetailRequest& request, const GetMediaAuditAudioResultDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetMediaAuditAudioResultDetailOutcomeCallable getMediaAuditAudioResultDetailCallable(const Model::GetMediaAuditAudioResultDetailRequest& request) const;
@@ -1272,6 +1285,9 @@ namespace AlibabaCloud
 			ListDynamicImageOutcome listDynamicImage(const Model::ListDynamicImageRequest &request)const;
 			void listDynamicImageAsync(const Model::ListDynamicImageRequest& request, const ListDynamicImageAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListDynamicImageOutcomeCallable listDynamicImageCallable(const Model::ListDynamicImageRequest& request) const;
+			ListJobInfoOutcome listJobInfo(const Model::ListJobInfoRequest &request)const;
+			void listJobInfoAsync(const Model::ListJobInfoRequest& request, const ListJobInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListJobInfoOutcomeCallable listJobInfoCallable(const Model::ListJobInfoRequest& request) const;
 			ListLiveRecordVideoOutcome listLiveRecordVideo(const Model::ListLiveRecordVideoRequest &request)const;
 			void listLiveRecordVideoAsync(const Model::ListLiveRecordVideoRequest& request, const ListLiveRecordVideoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListLiveRecordVideoOutcomeCallable listLiveRecordVideoCallable(const Model::ListLiveRecordVideoRequest& request) const;

+ 45 - 0
vod/include/alibabacloud/vod/model/GetJobDetailRequest.h

@@ -0,0 +1,45 @@
+/*
+ * 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_VOD_MODEL_GETJOBDETAILREQUEST_H_
+#define ALIBABACLOUD_VOD_MODEL_GETJOBDETAILREQUEST_H_
+
+#include <alibabacloud/vod/VodExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Vod {
+namespace Model {
+class ALIBABACLOUD_VOD_EXPORT GetJobDetailRequest : public RpcServiceRequest {
+public:
+	GetJobDetailRequest();
+	~GetJobDetailRequest();
+	std::string getJobType() const;
+	void setJobType(const std::string &jobType);
+	std::string getJobId() const;
+	void setJobId(const std::string &jobId);
+
+private:
+	std::string jobType_;
+	std::string jobId_;
+};
+} // namespace Model
+} // namespace Vod
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_VOD_MODEL_GETJOBDETAILREQUEST_H_

+ 92 - 0
vod/include/alibabacloud/vod/model/GetJobDetailResult.h

@@ -0,0 +1,92 @@
+/*
+ * 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_VOD_MODEL_GETJOBDETAILRESULT_H_
+#define ALIBABACLOUD_VOD_MODEL_GETJOBDETAILRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/vod/VodExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Vod
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VOD_EXPORT GetJobDetailResult : public ServiceResult
+			{
+			public:
+				struct TranscodeJobDetail
+				{
+					std::string status;
+					std::string videoId;
+					long userId;
+					std::string createTime;
+					std::string definition;
+					std::string completeTime;
+					std::string jobId;
+					std::string templateId;
+				};
+				struct SnapshotJobDetail
+				{
+					std::string status;
+					std::string normalConfig;
+					std::string videoId;
+					std::string trigger;
+					long userId;
+					std::string createTime;
+					std::string spriteConfig;
+					std::string completeTime;
+					std::string jobId;
+				};
+				struct AIJobDetail
+				{
+					std::string status;
+					std::string jobType;
+					std::string trigger;
+					std::string mediaId;
+					long userId;
+					std::string createTime;
+					std::string templateConfig;
+					std::string completeTime;
+					std::string jobId;
+				};
+
+
+				GetJobDetailResult();
+				explicit GetJobDetailResult(const std::string &payload);
+				~GetJobDetailResult();
+				std::string getJobType()const;
+				SnapshotJobDetail getSnapshotJobDetail()const;
+				TranscodeJobDetail getTranscodeJobDetail()const;
+				AIJobDetail getAIJobDetail()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string jobType_;
+				SnapshotJobDetail snapshotJobDetail_;
+				TranscodeJobDetail transcodeJobDetail_;
+				AIJobDetail aIJobDetail_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VOD_MODEL_GETJOBDETAILRESULT_H_

+ 3 - 0
vod/include/alibabacloud/vod/model/GetTranscodeTaskRequest.h

@@ -34,10 +34,13 @@ public:
 	void setAccessKeyId(const std::string &accessKeyId);
 	std::string getTranscodeTaskId() const;
 	void setTranscodeTaskId(const std::string &transcodeTaskId);
+	std::string getJobIds() const;
+	void setJobIds(const std::string &jobIds);
 
 private:
 	std::string accessKeyId_;
 	std::string transcodeTaskId_;
+	std::string jobIds_;
 };
 } // namespace Model
 } // namespace Vod

+ 40 - 5
vod/include/alibabacloud/vod/model/GetTranscodeTaskResult.h

@@ -34,9 +34,9 @@ namespace AlibabaCloud
 			public:
 				struct TranscodeTask
 				{
-					struct TranscodeJobInfo
+					struct TranscodeJobInfo2
 					{
-						struct OutputFile
+						struct OutputFile3
 						{
 							std::string outputFileUrl;
 							std::string fps;
@@ -46,14 +46,14 @@ namespace AlibabaCloud
 							std::string audioStreamList;
 							long filesize;
 							std::string bitrate;
-							std::vector<std::string> watermarkIdList;
+							std::vector<std::string> watermarkIdList4;
 							std::string format;
 							std::string height;
 							std::string subtitleStreamList;
 							std::string width;
 						};
-						OutputFile outputFile;
 						std::string transcodeTemplateId;
+						OutputFile3 outputFile3;
 						std::string inputFileUrl;
 						std::string priority;
 						std::string definition;
@@ -65,25 +65,60 @@ namespace AlibabaCloud
 						std::string errorMessage;
 						std::string completeTime;
 					};
-					std::vector<TranscodeJobInfo> transcodeJobInfoList;
 					std::string trigger;
 					std::string videoId;
 					std::string transcodeTemplateGroupId;
+					std::vector<TranscodeJobInfo2> transcodeJobInfoList1;
 					std::string creationTime;
 					std::string taskStatus;
 					std::string completeTime;
 					std::string transcodeTaskId;
 				};
+				struct TranscodeJobInfo
+				{
+					struct OutputFile
+					{
+						std::string outputFileUrl;
+						std::string fps;
+						std::string videoStreamList;
+						std::string duration;
+						std::string encryption;
+						std::string audioStreamList;
+						long filesize;
+						std::string bitrate;
+						std::vector<std::string> watermarkIdList;
+						std::string format;
+						std::string height;
+						std::string subtitleStreamList;
+						std::string width;
+					};
+					OutputFile outputFile;
+					std::string transcodeTemplateId;
+					std::string inputFileUrl;
+					std::string priority;
+					std::string definition;
+					std::string creationTime;
+					std::string transcodeJobStatus;
+					std::string transcodeJobId;
+					std::string errorCode;
+					long transcodeProgress;
+					std::string errorMessage;
+					std::string completeTime;
+				};
 
 
 				GetTranscodeTaskResult();
 				explicit GetTranscodeTaskResult(const std::string &payload);
 				~GetTranscodeTaskResult();
+				std::vector<std::string> getNonExistJobIds()const;
+				std::vector<TranscodeJobInfo> getTranscodeJobInfoList()const;
 				TranscodeTask getTranscodeTask()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::vector<std::string> nonExistJobIds_;
+				std::vector<TranscodeJobInfo> transcodeJobInfoList_;
 				TranscodeTask transcodeTask_;
 
 			};

+ 45 - 0
vod/include/alibabacloud/vod/model/ListJobInfoRequest.h

@@ -0,0 +1,45 @@
+/*
+ * 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_VOD_MODEL_LISTJOBINFOREQUEST_H_
+#define ALIBABACLOUD_VOD_MODEL_LISTJOBINFOREQUEST_H_
+
+#include <alibabacloud/vod/VodExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Vod {
+namespace Model {
+class ALIBABACLOUD_VOD_EXPORT ListJobInfoRequest : public RpcServiceRequest {
+public:
+	ListJobInfoRequest();
+	~ListJobInfoRequest();
+	std::string getMediaId() const;
+	void setMediaId(const std::string &mediaId);
+	std::string getJobType() const;
+	void setJobType(const std::string &jobType);
+
+private:
+	std::string mediaId_;
+	std::string jobType_;
+};
+} // namespace Model
+} // namespace Vod
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_VOD_MODEL_LISTJOBINFOREQUEST_H_

+ 63 - 0
vod/include/alibabacloud/vod/model/ListJobInfoResult.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_VOD_MODEL_LISTJOBINFORESULT_H_
+#define ALIBABACLOUD_VOD_MODEL_LISTJOBINFORESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/vod/VodExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Vod
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VOD_EXPORT ListJobInfoResult : public ServiceResult
+			{
+			public:
+				struct JobInfoDO
+				{
+					std::string status;
+					long userId;
+					std::string createTime;
+					std::string completeTime;
+					std::string jobId;
+				};
+
+
+				ListJobInfoResult();
+				explicit ListJobInfoResult(const std::string &payload);
+				~ListJobInfoResult();
+				std::vector<JobInfoDO> getJobInfoList()const;
+				std::string getJobType()const;
+				std::string getMediaId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<JobInfoDO> jobInfoList_;
+				std::string jobType_;
+				std::string mediaId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VOD_MODEL_LISTJOBINFORESULT_H_

+ 72 - 0
vod/src/VodClient.cc

@@ -3471,6 +3471,42 @@ VodClient::GetImageInfosOutcomeCallable VodClient::getImageInfosCallable(const G
 	return task->get_future();
 }
 
+VodClient::GetJobDetailOutcome VodClient::getJobDetail(const GetJobDetailRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetJobDetailOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetJobDetailOutcome(GetJobDetailResult(outcome.result()));
+	else
+		return GetJobDetailOutcome(outcome.error());
+}
+
+void VodClient::getJobDetailAsync(const GetJobDetailRequest& request, const GetJobDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getJobDetail(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+VodClient::GetJobDetailOutcomeCallable VodClient::getJobDetailCallable(const GetJobDetailRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetJobDetailOutcome()>>(
+			[this, request]()
+			{
+			return this->getJobDetail(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 VodClient::GetMediaAuditAudioResultDetailOutcome VodClient::getMediaAuditAudioResultDetail(const GetMediaAuditAudioResultDetailRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -4443,6 +4479,42 @@ VodClient::ListDynamicImageOutcomeCallable VodClient::listDynamicImageCallable(c
 	return task->get_future();
 }
 
+VodClient::ListJobInfoOutcome VodClient::listJobInfo(const ListJobInfoRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListJobInfoOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListJobInfoOutcome(ListJobInfoResult(outcome.result()));
+	else
+		return ListJobInfoOutcome(outcome.error());
+}
+
+void VodClient::listJobInfoAsync(const ListJobInfoRequest& request, const ListJobInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listJobInfo(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+VodClient::ListJobInfoOutcomeCallable VodClient::listJobInfoCallable(const ListJobInfoRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListJobInfoOutcome()>>(
+			[this, request]()
+			{
+			return this->listJobInfo(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 VodClient::ListLiveRecordVideoOutcome VodClient::listLiveRecordVideo(const ListLiveRecordVideoRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 45 - 0
vod/src/model/GetJobDetailRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * 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/vod/model/GetJobDetailRequest.h>
+
+using AlibabaCloud::Vod::Model::GetJobDetailRequest;
+
+GetJobDetailRequest::GetJobDetailRequest()
+    : RpcServiceRequest("vod", "2017-03-21", "GetJobDetail") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+GetJobDetailRequest::~GetJobDetailRequest() {}
+
+std::string GetJobDetailRequest::getJobType() const {
+  return jobType_;
+}
+
+void GetJobDetailRequest::setJobType(const std::string &jobType) {
+  jobType_ = jobType;
+  setParameter(std::string("JobType"), jobType);
+}
+
+std::string GetJobDetailRequest::getJobId() const {
+  return jobId_;
+}
+
+void GetJobDetailRequest::setJobId(const std::string &jobId) {
+  jobId_ = jobId;
+  setParameter(std::string("JobId"), jobId);
+}
+

+ 121 - 0
vod/src/model/GetJobDetailResult.cc

@@ -0,0 +1,121 @@
+/*
+ * 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/vod/model/GetJobDetailResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Vod;
+using namespace AlibabaCloud::Vod::Model;
+
+GetJobDetailResult::GetJobDetailResult() :
+	ServiceResult()
+{}
+
+GetJobDetailResult::GetJobDetailResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetJobDetailResult::~GetJobDetailResult()
+{}
+
+void GetJobDetailResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto transcodeJobDetailNode = value["TranscodeJobDetail"];
+	if(!transcodeJobDetailNode["JobId"].isNull())
+		transcodeJobDetail_.jobId = transcodeJobDetailNode["JobId"].asString();
+	if(!transcodeJobDetailNode["UserId"].isNull())
+		transcodeJobDetail_.userId = std::stol(transcodeJobDetailNode["UserId"].asString());
+	if(!transcodeJobDetailNode["VideoId"].isNull())
+		transcodeJobDetail_.videoId = transcodeJobDetailNode["VideoId"].asString();
+	if(!transcodeJobDetailNode["Status"].isNull())
+		transcodeJobDetail_.status = transcodeJobDetailNode["Status"].asString();
+	if(!transcodeJobDetailNode["TemplateId"].isNull())
+		transcodeJobDetail_.templateId = transcodeJobDetailNode["TemplateId"].asString();
+	if(!transcodeJobDetailNode["Definition"].isNull())
+		transcodeJobDetail_.definition = transcodeJobDetailNode["Definition"].asString();
+	if(!transcodeJobDetailNode["CreateTime"].isNull())
+		transcodeJobDetail_.createTime = transcodeJobDetailNode["CreateTime"].asString();
+	if(!transcodeJobDetailNode["CompleteTime"].isNull())
+		transcodeJobDetail_.completeTime = transcodeJobDetailNode["CompleteTime"].asString();
+	auto snapshotJobDetailNode = value["SnapshotJobDetail"];
+	if(!snapshotJobDetailNode["JobId"].isNull())
+		snapshotJobDetail_.jobId = snapshotJobDetailNode["JobId"].asString();
+	if(!snapshotJobDetailNode["UserId"].isNull())
+		snapshotJobDetail_.userId = std::stol(snapshotJobDetailNode["UserId"].asString());
+	if(!snapshotJobDetailNode["VideoId"].isNull())
+		snapshotJobDetail_.videoId = snapshotJobDetailNode["VideoId"].asString();
+	if(!snapshotJobDetailNode["Status"].isNull())
+		snapshotJobDetail_.status = snapshotJobDetailNode["Status"].asString();
+	if(!snapshotJobDetailNode["Trigger"].isNull())
+		snapshotJobDetail_.trigger = snapshotJobDetailNode["Trigger"].asString();
+	if(!snapshotJobDetailNode["NormalConfig"].isNull())
+		snapshotJobDetail_.normalConfig = snapshotJobDetailNode["NormalConfig"].asString();
+	if(!snapshotJobDetailNode["SpriteConfig"].isNull())
+		snapshotJobDetail_.spriteConfig = snapshotJobDetailNode["SpriteConfig"].asString();
+	if(!snapshotJobDetailNode["CreateTime"].isNull())
+		snapshotJobDetail_.createTime = snapshotJobDetailNode["CreateTime"].asString();
+	if(!snapshotJobDetailNode["CompleteTime"].isNull())
+		snapshotJobDetail_.completeTime = snapshotJobDetailNode["CompleteTime"].asString();
+	auto aIJobDetailNode = value["AIJobDetail"];
+	if(!aIJobDetailNode["JobId"].isNull())
+		aIJobDetail_.jobId = aIJobDetailNode["JobId"].asString();
+	if(!aIJobDetailNode["UserId"].isNull())
+		aIJobDetail_.userId = std::stol(aIJobDetailNode["UserId"].asString());
+	if(!aIJobDetailNode["MediaId"].isNull())
+		aIJobDetail_.mediaId = aIJobDetailNode["MediaId"].asString();
+	if(!aIJobDetailNode["JobType"].isNull())
+		aIJobDetail_.jobType = aIJobDetailNode["JobType"].asString();
+	if(!aIJobDetailNode["Status"].isNull())
+		aIJobDetail_.status = aIJobDetailNode["Status"].asString();
+	if(!aIJobDetailNode["Trigger"].isNull())
+		aIJobDetail_.trigger = aIJobDetailNode["Trigger"].asString();
+	if(!aIJobDetailNode["TemplateConfig"].isNull())
+		aIJobDetail_.templateConfig = aIJobDetailNode["TemplateConfig"].asString();
+	if(!aIJobDetailNode["CreateTime"].isNull())
+		aIJobDetail_.createTime = aIJobDetailNode["CreateTime"].asString();
+	if(!aIJobDetailNode["CompleteTime"].isNull())
+		aIJobDetail_.completeTime = aIJobDetailNode["CompleteTime"].asString();
+	if(!value["JobType"].isNull())
+		jobType_ = value["JobType"].asString();
+
+}
+
+std::string GetJobDetailResult::getJobType()const
+{
+	return jobType_;
+}
+
+GetJobDetailResult::SnapshotJobDetail GetJobDetailResult::getSnapshotJobDetail()const
+{
+	return snapshotJobDetail_;
+}
+
+GetJobDetailResult::TranscodeJobDetail GetJobDetailResult::getTranscodeJobDetail()const
+{
+	return transcodeJobDetail_;
+}
+
+GetJobDetailResult::AIJobDetail GetJobDetailResult::getAIJobDetail()const
+{
+	return aIJobDetail_;
+}
+

+ 9 - 0
vod/src/model/GetTranscodeTaskRequest.cc

@@ -43,3 +43,12 @@ void GetTranscodeTaskRequest::setTranscodeTaskId(const std::string &transcodeTas
   setParameter(std::string("TranscodeTaskId"), transcodeTaskId);
 }
 
+std::string GetTranscodeTaskRequest::getJobIds() const {
+  return jobIds_;
+}
+
+void GetTranscodeTaskRequest::setJobIds(const std::string &jobIds) {
+  jobIds_ = jobIds;
+  setParameter(std::string("JobIds"), jobIds);
+}
+

+ 112 - 43
vod/src/model/GetTranscodeTaskResult.cc

@@ -39,6 +39,62 @@ void GetTranscodeTaskResult::parse(const std::string &payload)
 	Json::Value value;
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
+	auto allTranscodeJobInfoListNode = value["TranscodeJobInfoList"]["TranscodeJobInfo"];
+	for (auto valueTranscodeJobInfoListTranscodeJobInfo : allTranscodeJobInfoListNode)
+	{
+		TranscodeJobInfo transcodeJobInfoListObject;
+		if(!valueTranscodeJobInfoListTranscodeJobInfo["Definition"].isNull())
+			transcodeJobInfoListObject.definition = valueTranscodeJobInfoListTranscodeJobInfo["Definition"].asString();
+		if(!valueTranscodeJobInfoListTranscodeJobInfo["CreationTime"].isNull())
+			transcodeJobInfoListObject.creationTime = valueTranscodeJobInfoListTranscodeJobInfo["CreationTime"].asString();
+		if(!valueTranscodeJobInfoListTranscodeJobInfo["InputFileUrl"].isNull())
+			transcodeJobInfoListObject.inputFileUrl = valueTranscodeJobInfoListTranscodeJobInfo["InputFileUrl"].asString();
+		if(!valueTranscodeJobInfoListTranscodeJobInfo["ErrorMessage"].isNull())
+			transcodeJobInfoListObject.errorMessage = valueTranscodeJobInfoListTranscodeJobInfo["ErrorMessage"].asString();
+		if(!valueTranscodeJobInfoListTranscodeJobInfo["ErrorCode"].isNull())
+			transcodeJobInfoListObject.errorCode = valueTranscodeJobInfoListTranscodeJobInfo["ErrorCode"].asString();
+		if(!valueTranscodeJobInfoListTranscodeJobInfo["CompleteTime"].isNull())
+			transcodeJobInfoListObject.completeTime = valueTranscodeJobInfoListTranscodeJobInfo["CompleteTime"].asString();
+		if(!valueTranscodeJobInfoListTranscodeJobInfo["TranscodeProgress"].isNull())
+			transcodeJobInfoListObject.transcodeProgress = std::stol(valueTranscodeJobInfoListTranscodeJobInfo["TranscodeProgress"].asString());
+		if(!valueTranscodeJobInfoListTranscodeJobInfo["Priority"].isNull())
+			transcodeJobInfoListObject.priority = valueTranscodeJobInfoListTranscodeJobInfo["Priority"].asString();
+		if(!valueTranscodeJobInfoListTranscodeJobInfo["TranscodeJobStatus"].isNull())
+			transcodeJobInfoListObject.transcodeJobStatus = valueTranscodeJobInfoListTranscodeJobInfo["TranscodeJobStatus"].asString();
+		if(!valueTranscodeJobInfoListTranscodeJobInfo["TranscodeTemplateId"].isNull())
+			transcodeJobInfoListObject.transcodeTemplateId = valueTranscodeJobInfoListTranscodeJobInfo["TranscodeTemplateId"].asString();
+		if(!valueTranscodeJobInfoListTranscodeJobInfo["TranscodeJobId"].isNull())
+			transcodeJobInfoListObject.transcodeJobId = valueTranscodeJobInfoListTranscodeJobInfo["TranscodeJobId"].asString();
+		auto outputFileNode = value["OutputFile"];
+		if(!outputFileNode["VideoStreamList"].isNull())
+			transcodeJobInfoListObject.outputFile.videoStreamList = outputFileNode["VideoStreamList"].asString();
+		if(!outputFileNode["OutputFileUrl"].isNull())
+			transcodeJobInfoListObject.outputFile.outputFileUrl = outputFileNode["OutputFileUrl"].asString();
+		if(!outputFileNode["Encryption"].isNull())
+			transcodeJobInfoListObject.outputFile.encryption = outputFileNode["Encryption"].asString();
+		if(!outputFileNode["Height"].isNull())
+			transcodeJobInfoListObject.outputFile.height = outputFileNode["Height"].asString();
+		if(!outputFileNode["SubtitleStreamList"].isNull())
+			transcodeJobInfoListObject.outputFile.subtitleStreamList = outputFileNode["SubtitleStreamList"].asString();
+		if(!outputFileNode["Bitrate"].isNull())
+			transcodeJobInfoListObject.outputFile.bitrate = outputFileNode["Bitrate"].asString();
+		if(!outputFileNode["AudioStreamList"].isNull())
+			transcodeJobInfoListObject.outputFile.audioStreamList = outputFileNode["AudioStreamList"].asString();
+		if(!outputFileNode["Width"].isNull())
+			transcodeJobInfoListObject.outputFile.width = outputFileNode["Width"].asString();
+		if(!outputFileNode["Fps"].isNull())
+			transcodeJobInfoListObject.outputFile.fps = outputFileNode["Fps"].asString();
+		if(!outputFileNode["Duration"].isNull())
+			transcodeJobInfoListObject.outputFile.duration = outputFileNode["Duration"].asString();
+		if(!outputFileNode["Format"].isNull())
+			transcodeJobInfoListObject.outputFile.format = outputFileNode["Format"].asString();
+		if(!outputFileNode["Filesize"].isNull())
+			transcodeJobInfoListObject.outputFile.filesize = std::stol(outputFileNode["Filesize"].asString());
+			auto allWatermarkIdList = outputFileNode["WatermarkIdList"]["WatermarkId"];
+			for (auto value : allWatermarkIdList)
+				transcodeJobInfoListObject.outputFile.watermarkIdList.push_back(value.asString());
+		transcodeJobInfoList_.push_back(transcodeJobInfoListObject);
+	}
 	auto transcodeTaskNode = value["TranscodeTask"];
 	if(!transcodeTaskNode["CreationTime"].isNull())
 		transcodeTask_.creationTime = transcodeTaskNode["CreationTime"].asString();
@@ -54,63 +110,76 @@ void GetTranscodeTaskResult::parse(const std::string &payload)
 		transcodeTask_.transcodeTemplateGroupId = transcodeTaskNode["TranscodeTemplateGroupId"].asString();
 	if(!transcodeTaskNode["TranscodeTaskId"].isNull())
 		transcodeTask_.transcodeTaskId = transcodeTaskNode["TranscodeTaskId"].asString();
-	auto allTranscodeJobInfoListNode = transcodeTaskNode["TranscodeJobInfoList"]["TranscodeJobInfo"];
-	for (auto transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo : allTranscodeJobInfoListNode)
+	auto allTranscodeJobInfoList1Node = transcodeTaskNode["TranscodeJobInfoList"]["TranscodeJobInfo"];
+	for (auto transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo : allTranscodeJobInfoList1Node)
 	{
-		TranscodeTask::TranscodeJobInfo transcodeJobInfoObject;
+		TranscodeTask::TranscodeJobInfo2 transcodeJobInfo2Object;
 		if(!transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["Definition"].isNull())
-			transcodeJobInfoObject.definition = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["Definition"].asString();
+			transcodeJobInfo2Object.definition = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["Definition"].asString();
 		if(!transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["CreationTime"].isNull())
-			transcodeJobInfoObject.creationTime = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["CreationTime"].asString();
+			transcodeJobInfo2Object.creationTime = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["CreationTime"].asString();
 		if(!transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["InputFileUrl"].isNull())
-			transcodeJobInfoObject.inputFileUrl = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["InputFileUrl"].asString();
+			transcodeJobInfo2Object.inputFileUrl = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["InputFileUrl"].asString();
 		if(!transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["ErrorMessage"].isNull())
-			transcodeJobInfoObject.errorMessage = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["ErrorMessage"].asString();
+			transcodeJobInfo2Object.errorMessage = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["ErrorMessage"].asString();
 		if(!transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["ErrorCode"].isNull())
-			transcodeJobInfoObject.errorCode = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["ErrorCode"].asString();
+			transcodeJobInfo2Object.errorCode = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["ErrorCode"].asString();
 		if(!transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["CompleteTime"].isNull())
-			transcodeJobInfoObject.completeTime = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["CompleteTime"].asString();
+			transcodeJobInfo2Object.completeTime = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["CompleteTime"].asString();
 		if(!transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["TranscodeProgress"].isNull())
-			transcodeJobInfoObject.transcodeProgress = std::stol(transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["TranscodeProgress"].asString());
+			transcodeJobInfo2Object.transcodeProgress = std::stol(transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["TranscodeProgress"].asString());
 		if(!transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["Priority"].isNull())
-			transcodeJobInfoObject.priority = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["Priority"].asString();
+			transcodeJobInfo2Object.priority = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["Priority"].asString();
 		if(!transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["TranscodeJobStatus"].isNull())
-			transcodeJobInfoObject.transcodeJobStatus = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["TranscodeJobStatus"].asString();
+			transcodeJobInfo2Object.transcodeJobStatus = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["TranscodeJobStatus"].asString();
 		if(!transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["TranscodeTemplateId"].isNull())
-			transcodeJobInfoObject.transcodeTemplateId = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["TranscodeTemplateId"].asString();
+			transcodeJobInfo2Object.transcodeTemplateId = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["TranscodeTemplateId"].asString();
 		if(!transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["TranscodeJobId"].isNull())
-			transcodeJobInfoObject.transcodeJobId = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["TranscodeJobId"].asString();
-		auto outputFileNode = value["OutputFile"];
-		if(!outputFileNode["VideoStreamList"].isNull())
-			transcodeJobInfoObject.outputFile.videoStreamList = outputFileNode["VideoStreamList"].asString();
-		if(!outputFileNode["OutputFileUrl"].isNull())
-			transcodeJobInfoObject.outputFile.outputFileUrl = outputFileNode["OutputFileUrl"].asString();
-		if(!outputFileNode["Encryption"].isNull())
-			transcodeJobInfoObject.outputFile.encryption = outputFileNode["Encryption"].asString();
-		if(!outputFileNode["Height"].isNull())
-			transcodeJobInfoObject.outputFile.height = outputFileNode["Height"].asString();
-		if(!outputFileNode["SubtitleStreamList"].isNull())
-			transcodeJobInfoObject.outputFile.subtitleStreamList = outputFileNode["SubtitleStreamList"].asString();
-		if(!outputFileNode["Bitrate"].isNull())
-			transcodeJobInfoObject.outputFile.bitrate = outputFileNode["Bitrate"].asString();
-		if(!outputFileNode["AudioStreamList"].isNull())
-			transcodeJobInfoObject.outputFile.audioStreamList = outputFileNode["AudioStreamList"].asString();
-		if(!outputFileNode["Width"].isNull())
-			transcodeJobInfoObject.outputFile.width = outputFileNode["Width"].asString();
-		if(!outputFileNode["Fps"].isNull())
-			transcodeJobInfoObject.outputFile.fps = outputFileNode["Fps"].asString();
-		if(!outputFileNode["Duration"].isNull())
-			transcodeJobInfoObject.outputFile.duration = outputFileNode["Duration"].asString();
-		if(!outputFileNode["Format"].isNull())
-			transcodeJobInfoObject.outputFile.format = outputFileNode["Format"].asString();
-		if(!outputFileNode["Filesize"].isNull())
-			transcodeJobInfoObject.outputFile.filesize = std::stol(outputFileNode["Filesize"].asString());
-			auto allWatermarkIdList = outputFileNode["WatermarkIdList"]["WatermarkId"];
-			for (auto value : allWatermarkIdList)
-				transcodeJobInfoObject.outputFile.watermarkIdList.push_back(value.asString());
-		transcodeTask_.transcodeJobInfoList.push_back(transcodeJobInfoObject);
+			transcodeJobInfo2Object.transcodeJobId = transcodeTaskNodeTranscodeJobInfoListTranscodeJobInfo["TranscodeJobId"].asString();
+		auto outputFile3Node = value["OutputFile"];
+		if(!outputFile3Node["VideoStreamList"].isNull())
+			transcodeJobInfo2Object.outputFile3.videoStreamList = outputFile3Node["VideoStreamList"].asString();
+		if(!outputFile3Node["OutputFileUrl"].isNull())
+			transcodeJobInfo2Object.outputFile3.outputFileUrl = outputFile3Node["OutputFileUrl"].asString();
+		if(!outputFile3Node["Encryption"].isNull())
+			transcodeJobInfo2Object.outputFile3.encryption = outputFile3Node["Encryption"].asString();
+		if(!outputFile3Node["Height"].isNull())
+			transcodeJobInfo2Object.outputFile3.height = outputFile3Node["Height"].asString();
+		if(!outputFile3Node["SubtitleStreamList"].isNull())
+			transcodeJobInfo2Object.outputFile3.subtitleStreamList = outputFile3Node["SubtitleStreamList"].asString();
+		if(!outputFile3Node["Bitrate"].isNull())
+			transcodeJobInfo2Object.outputFile3.bitrate = outputFile3Node["Bitrate"].asString();
+		if(!outputFile3Node["AudioStreamList"].isNull())
+			transcodeJobInfo2Object.outputFile3.audioStreamList = outputFile3Node["AudioStreamList"].asString();
+		if(!outputFile3Node["Width"].isNull())
+			transcodeJobInfo2Object.outputFile3.width = outputFile3Node["Width"].asString();
+		if(!outputFile3Node["Fps"].isNull())
+			transcodeJobInfo2Object.outputFile3.fps = outputFile3Node["Fps"].asString();
+		if(!outputFile3Node["Duration"].isNull())
+			transcodeJobInfo2Object.outputFile3.duration = outputFile3Node["Duration"].asString();
+		if(!outputFile3Node["Format"].isNull())
+			transcodeJobInfo2Object.outputFile3.format = outputFile3Node["Format"].asString();
+		if(!outputFile3Node["Filesize"].isNull())
+			transcodeJobInfo2Object.outputFile3.filesize = std::stol(outputFile3Node["Filesize"].asString());
+			auto allWatermarkIdList4 = outputFile3Node["WatermarkIdList"]["WatermarkId"];
+			for (auto value : allWatermarkIdList4)
+				transcodeJobInfo2Object.outputFile3.watermarkIdList4.push_back(value.asString());
+		transcodeTask_.transcodeJobInfoList1.push_back(transcodeJobInfo2Object);
 	}
+	auto allNonExistJobIds = value["NonExistJobIds"]["JobId"];
+	for (const auto &item : allNonExistJobIds)
+		nonExistJobIds_.push_back(item.asString());
+
+}
 
+std::vector<std::string> GetTranscodeTaskResult::getNonExistJobIds()const
+{
+	return nonExistJobIds_;
+}
+
+std::vector<GetTranscodeTaskResult::TranscodeJobInfo> GetTranscodeTaskResult::getTranscodeJobInfoList()const
+{
+	return transcodeJobInfoList_;
 }
 
 GetTranscodeTaskResult::TranscodeTask GetTranscodeTaskResult::getTranscodeTask()const

+ 45 - 0
vod/src/model/ListJobInfoRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * 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/vod/model/ListJobInfoRequest.h>
+
+using AlibabaCloud::Vod::Model::ListJobInfoRequest;
+
+ListJobInfoRequest::ListJobInfoRequest()
+    : RpcServiceRequest("vod", "2017-03-21", "ListJobInfo") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListJobInfoRequest::~ListJobInfoRequest() {}
+
+std::string ListJobInfoRequest::getMediaId() const {
+  return mediaId_;
+}
+
+void ListJobInfoRequest::setMediaId(const std::string &mediaId) {
+  mediaId_ = mediaId;
+  setParameter(std::string("MediaId"), mediaId);
+}
+
+std::string ListJobInfoRequest::getJobType() const {
+  return jobType_;
+}
+
+void ListJobInfoRequest::setJobType(const std::string &jobType) {
+  jobType_ = jobType;
+  setParameter(std::string("JobType"), jobType);
+}
+

+ 79 - 0
vod/src/model/ListJobInfoResult.cc

@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/vod/model/ListJobInfoResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Vod;
+using namespace AlibabaCloud::Vod::Model;
+
+ListJobInfoResult::ListJobInfoResult() :
+	ServiceResult()
+{}
+
+ListJobInfoResult::ListJobInfoResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListJobInfoResult::~ListJobInfoResult()
+{}
+
+void ListJobInfoResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allJobInfoListNode = value["JobInfoList"]["JobInfoDO"];
+	for (auto valueJobInfoListJobInfoDO : allJobInfoListNode)
+	{
+		JobInfoDO jobInfoListObject;
+		if(!valueJobInfoListJobInfoDO["JobId"].isNull())
+			jobInfoListObject.jobId = valueJobInfoListJobInfoDO["JobId"].asString();
+		if(!valueJobInfoListJobInfoDO["Status"].isNull())
+			jobInfoListObject.status = valueJobInfoListJobInfoDO["Status"].asString();
+		if(!valueJobInfoListJobInfoDO["UserId"].isNull())
+			jobInfoListObject.userId = std::stol(valueJobInfoListJobInfoDO["UserId"].asString());
+		if(!valueJobInfoListJobInfoDO["CreateTime"].isNull())
+			jobInfoListObject.createTime = valueJobInfoListJobInfoDO["CreateTime"].asString();
+		if(!valueJobInfoListJobInfoDO["CompleteTime"].isNull())
+			jobInfoListObject.completeTime = valueJobInfoListJobInfoDO["CompleteTime"].asString();
+		jobInfoList_.push_back(jobInfoListObject);
+	}
+	if(!value["MediaId"].isNull())
+		mediaId_ = value["MediaId"].asString();
+	if(!value["JobType"].isNull())
+		jobType_ = value["JobType"].asString();
+
+}
+
+std::vector<ListJobInfoResult::JobInfoDO> ListJobInfoResult::getJobInfoList()const
+{
+	return jobInfoList_;
+}
+
+std::string ListJobInfoResult::getJobType()const
+{
+	return jobType_;
+}
+
+std::string ListJobInfoResult::getMediaId()const
+{
+	return mediaId_;
+}
+