sdk-team 6 жил өмнө
parent
commit
ebdf18def1

+ 4 - 0
CHANGELOG

@@ -1,3 +1,7 @@
+2020-09-04 Version: patch
+- Add GetImageQuality API.
+- Add more info as parameters to Images related APIs.
+
 2020-09-03 Version: 1.36.632
 - DescribeCameraStatistics add parameters.
 

+ 4 - 0
imm/CMakeLists.txt

@@ -109,6 +109,8 @@ set(imm_public_header_model
 	include/alibabacloud/imm/model/GetImageCroppingSuggestionsResult.h
 	include/alibabacloud/imm/model/GetImageJobRequest.h
 	include/alibabacloud/imm/model/GetImageJobResult.h
+	include/alibabacloud/imm/model/GetImageQualityRequest.h
+	include/alibabacloud/imm/model/GetImageQualityResult.h
 	include/alibabacloud/imm/model/GetMediaMetaRequest.h
 	include/alibabacloud/imm/model/GetMediaMetaResult.h
 	include/alibabacloud/imm/model/GetOfficeConversionTaskRequest.h
@@ -264,6 +266,8 @@ set(imm_src
 	src/model/GetImageCroppingSuggestionsResult.cc
 	src/model/GetImageJobRequest.cc
 	src/model/GetImageJobResult.cc
+	src/model/GetImageQualityRequest.cc
+	src/model/GetImageQualityResult.cc
 	src/model/GetMediaMetaRequest.cc
 	src/model/GetMediaMetaResult.cc
 	src/model/GetOfficeConversionTaskRequest.cc

+ 8 - 0
imm/include/alibabacloud/imm/ImmClient.h

@@ -110,6 +110,8 @@
 #include "model/GetImageCroppingSuggestionsResult.h"
 #include "model/GetImageJobRequest.h"
 #include "model/GetImageJobResult.h"
+#include "model/GetImageQualityRequest.h"
+#include "model/GetImageQualityResult.h"
 #include "model/GetMediaMetaRequest.h"
 #include "model/GetMediaMetaResult.h"
 #include "model/GetOfficeConversionTaskRequest.h"
@@ -315,6 +317,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetImageJobResult> GetImageJobOutcome;
 			typedef std::future<GetImageJobOutcome> GetImageJobOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::GetImageJobRequest&, const GetImageJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetImageJobAsyncHandler;
+			typedef Outcome<Error, Model::GetImageQualityResult> GetImageQualityOutcome;
+			typedef std::future<GetImageQualityOutcome> GetImageQualityOutcomeCallable;
+			typedef std::function<void(const ImmClient*, const Model::GetImageQualityRequest&, const GetImageQualityOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetImageQualityAsyncHandler;
 			typedef Outcome<Error, Model::GetMediaMetaResult> GetMediaMetaOutcome;
 			typedef std::future<GetMediaMetaOutcome> GetMediaMetaOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::GetMediaMetaRequest&, const GetMediaMetaOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetMediaMetaAsyncHandler;
@@ -548,6 +553,9 @@ namespace AlibabaCloud
 			GetImageJobOutcome getImageJob(const Model::GetImageJobRequest &request)const;
 			void getImageJobAsync(const Model::GetImageJobRequest& request, const GetImageJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetImageJobOutcomeCallable getImageJobCallable(const Model::GetImageJobRequest& request) const;
+			GetImageQualityOutcome getImageQuality(const Model::GetImageQualityRequest &request)const;
+			void getImageQualityAsync(const Model::GetImageQualityRequest& request, const GetImageQualityAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetImageQualityOutcomeCallable getImageQualityCallable(const Model::GetImageQualityRequest& request) const;
 			GetMediaMetaOutcome getMediaMeta(const Model::GetMediaMetaRequest &request)const;
 			void getMediaMetaAsync(const Model::GetMediaMetaRequest& request, const GetMediaMetaAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetMediaMetaOutcomeCallable getMediaMetaCallable(const Model::GetMediaMetaRequest& request) const;

+ 54 - 0
imm/include/alibabacloud/imm/model/GetImageQualityRequest.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_IMM_MODEL_GETIMAGEQUALITYREQUEST_H_
+#define ALIBABACLOUD_IMM_MODEL_GETIMAGEQUALITYREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/imm/ImmExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Imm
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IMM_EXPORT GetImageQualityRequest : public RpcServiceRequest
+			{
+
+			public:
+				GetImageQualityRequest();
+				~GetImageQualityRequest();
+
+				std::string getProject()const;
+				void setProject(const std::string& project);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getImageUri()const;
+				void setImageUri(const std::string& imageUri);
+
+            private:
+				std::string project_;
+				std::string accessKeyId_;
+				std::string imageUri_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IMM_MODEL_GETIMAGEQUALITYREQUEST_H_

+ 66 - 0
imm/include/alibabacloud/imm/model/GetImageQualityResult.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_IMM_MODEL_GETIMAGEQUALITYRESULT_H_
+#define ALIBABACLOUD_IMM_MODEL_GETIMAGEQUALITYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/imm/ImmExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Imm
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_IMM_EXPORT GetImageQualityResult : public ServiceResult
+			{
+			public:
+				struct ImageQuality
+				{
+					float clarityScore;
+					float compositionScore;
+					float contrastScore;
+					float color;
+					float exposure;
+					float overallScore;
+					float clarity;
+					float contrast;
+					float exposureScore;
+					float colorScore;
+				};
+
+
+				GetImageQualityResult();
+				explicit GetImageQualityResult(const std::string &payload);
+				~GetImageQualityResult();
+				ImageQuality getImageQuality()const;
+				std::string getImageUri()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				ImageQuality imageQuality_;
+				std::string imageUri_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IMM_MODEL_GETIMAGEQUALITYRESULT_H_

+ 27 - 0
imm/include/alibabacloud/imm/model/GetVideoResult.h

@@ -42,6 +42,7 @@ namespace AlibabaCloud
 				{
 					std::string videoTagEnName;
 					std::string videoTagName;
+					int videoTagLevel;
 					float videoTagConfidence;
 				};
 				struct PersonsItem
@@ -62,23 +63,36 @@ namespace AlibabaCloud
 				int getVideoWidth()const;
 				std::string getSourceType()const;
 				std::string getSourceUri()const;
+				std::string getVideoInfo()const;
 				std::string getRemarksA()const;
+				std::string getVideoFrameTagsModifyTime()const;
 				std::string getRemarksB()const;
+				std::string getVideoFacesFailReason()const;
+				std::string getVideoFacesStatus()const;
 				std::string getRemarksC()const;
+				std::string getVideoOCRModifyTime()const;
 				std::string getRemarksD()const;
 				int getVideoHeight()const;
 				std::vector<PersonsItem> getPersons()const;
 				std::vector<CelebrityItem> getCelebrity()const;
 				std::string getSourcePosition()const;
+				std::string getVideoOCRFailReason()const;
+				std::string getVideoFrameTagsStatus()const;
 				std::string getVideoTagsFailReason()const;
 				std::string getVideoTagsModifyTime()const;
+				std::string getVideoOCRStatus()const;
 				int getVideoFrames()const;
 				std::string getProcessModifyTime()const;
+				std::string getVideoSTTModifyTime()const;
 				std::string getProcessFailReason()const;
 				std::string getCreateTime()const;
 				std::string getExternalId()const;
+				std::string getVideoSTTFailReason()const;
 				std::string getVideoUri()const;
 				std::string getVideoFormat()const;
+				std::string getVideoFrameTagsFailReason()const;
+				std::string getVideoSTTStatus()const;
+				std::string getVideoFacesModifyTime()const;
 				std::vector<VideoTagsItem> getVideoTags()const;
 				std::string getCelebrityModifyTime()const;
 				float getVideoDuration()const;
@@ -96,23 +110,36 @@ namespace AlibabaCloud
 				int videoWidth_;
 				std::string sourceType_;
 				std::string sourceUri_;
+				std::string videoInfo_;
 				std::string remarksA_;
+				std::string videoFrameTagsModifyTime_;
 				std::string remarksB_;
+				std::string videoFacesFailReason_;
+				std::string videoFacesStatus_;
 				std::string remarksC_;
+				std::string videoOCRModifyTime_;
 				std::string remarksD_;
 				int videoHeight_;
 				std::vector<PersonsItem> persons_;
 				std::vector<CelebrityItem> celebrity_;
 				std::string sourcePosition_;
+				std::string videoOCRFailReason_;
+				std::string videoFrameTagsStatus_;
 				std::string videoTagsFailReason_;
 				std::string videoTagsModifyTime_;
+				std::string videoOCRStatus_;
 				int videoFrames_;
 				std::string processModifyTime_;
+				std::string videoSTTModifyTime_;
 				std::string processFailReason_;
 				std::string createTime_;
 				std::string externalId_;
+				std::string videoSTTFailReason_;
 				std::string videoUri_;
 				std::string videoFormat_;
+				std::string videoFrameTagsFailReason_;
+				std::string videoSTTStatus_;
+				std::string videoFacesModifyTime_;
 				std::vector<VideoTagsItem> videoTags_;
 				std::string celebrityModifyTime_;
 				float videoDuration_;

+ 6 - 0
imm/include/alibabacloud/imm/model/IndexVideoRequest.h

@@ -45,6 +45,10 @@ namespace AlibabaCloud
 				void setStartTime(const std::string& startTime);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getNotifyEndpoint()const;
+				void setNotifyEndpoint(const std::string& notifyEndpoint);
+				std::string getNotifyTopicName()const;
+				void setNotifyTopicName(const std::string& notifyTopicName);
 				std::string getRemarksB()const;
 				void setRemarksB(const std::string& remarksB);
 				std::string getRemarksA()const;
@@ -72,6 +76,8 @@ namespace AlibabaCloud
 				std::string externalId_;
 				std::string startTime_;
 				std::string accessKeyId_;
+				std::string notifyEndpoint_;
+				std::string notifyTopicName_;
 				std::string remarksB_;
 				std::string remarksA_;
 				std::string endTime_;

+ 4 - 0
imm/include/alibabacloud/imm/model/ListFaceGroupsResult.h

@@ -52,12 +52,16 @@ namespace AlibabaCloud
 					std::string modifyTime;
 					std::string createTime;
 					std::string externalId;
+					float maxAge;
+					std::string gender;
 					std::string remarksA;
+					float averageAge;
 					std::string remarksB;
 					std::string groupId;
 					std::string remarksArrayB;
 					std::string remarksC;
 					int imageCount;
+					float minAge;
 					std::string remarksD;
 					std::string remarksArrayA;
 					int faceCount;

+ 36 - 0
imm/src/ImmClient.cc

@@ -1635,6 +1635,42 @@ ImmClient::GetImageJobOutcomeCallable ImmClient::getImageJobCallable(const GetIm
 	return task->get_future();
 }
 
+ImmClient::GetImageQualityOutcome ImmClient::getImageQuality(const GetImageQualityRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetImageQualityOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetImageQualityOutcome(GetImageQualityResult(outcome.result()));
+	else
+		return GetImageQualityOutcome(outcome.error());
+}
+
+void ImmClient::getImageQualityAsync(const GetImageQualityRequest& request, const GetImageQualityAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getImageQuality(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ImmClient::GetImageQualityOutcomeCallable ImmClient::getImageQualityCallable(const GetImageQualityRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetImageQualityOutcome()>>(
+			[this, request]()
+			{
+			return this->getImageQuality(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ImmClient::GetMediaMetaOutcome ImmClient::getMediaMeta(const GetMediaMetaRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 62 - 0
imm/src/model/GetImageQualityRequest.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/imm/model/GetImageQualityRequest.h>
+
+using AlibabaCloud::Imm::Model::GetImageQualityRequest;
+
+GetImageQualityRequest::GetImageQualityRequest() :
+	RpcServiceRequest("imm", "2017-09-06", "GetImageQuality")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+GetImageQualityRequest::~GetImageQualityRequest()
+{}
+
+std::string GetImageQualityRequest::getProject()const
+{
+	return project_;
+}
+
+void GetImageQualityRequest::setProject(const std::string& project)
+{
+	project_ = project;
+	setParameter("Project", project);
+}
+
+std::string GetImageQualityRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void GetImageQualityRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string GetImageQualityRequest::getImageUri()const
+{
+	return imageUri_;
+}
+
+void GetImageQualityRequest::setImageUri(const std::string& imageUri)
+{
+	imageUri_ = imageUri;
+	setParameter("ImageUri", imageUri);
+}
+

+ 77 - 0
imm/src/model/GetImageQualityResult.cc

@@ -0,0 +1,77 @@
+/*
+ * 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/imm/model/GetImageQualityResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Imm;
+using namespace AlibabaCloud::Imm::Model;
+
+GetImageQualityResult::GetImageQualityResult() :
+	ServiceResult()
+{}
+
+GetImageQualityResult::GetImageQualityResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetImageQualityResult::~GetImageQualityResult()
+{}
+
+void GetImageQualityResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto imageQualityNode = value["ImageQuality"];
+	if(!imageQualityNode["OverallScore"].isNull())
+		imageQuality_.overallScore = std::stof(imageQualityNode["OverallScore"].asString());
+	if(!imageQualityNode["ClarityScore"].isNull())
+		imageQuality_.clarityScore = std::stof(imageQualityNode["ClarityScore"].asString());
+	if(!imageQualityNode["Clarity"].isNull())
+		imageQuality_.clarity = std::stof(imageQualityNode["Clarity"].asString());
+	if(!imageQualityNode["ExposureScore"].isNull())
+		imageQuality_.exposureScore = std::stof(imageQualityNode["ExposureScore"].asString());
+	if(!imageQualityNode["Exposure"].isNull())
+		imageQuality_.exposure = std::stof(imageQualityNode["Exposure"].asString());
+	if(!imageQualityNode["ContrastScore"].isNull())
+		imageQuality_.contrastScore = std::stof(imageQualityNode["ContrastScore"].asString());
+	if(!imageQualityNode["Contrast"].isNull())
+		imageQuality_.contrast = std::stof(imageQualityNode["Contrast"].asString());
+	if(!imageQualityNode["ColorScore"].isNull())
+		imageQuality_.colorScore = std::stof(imageQualityNode["ColorScore"].asString());
+	if(!imageQualityNode["Color"].isNull())
+		imageQuality_.color = std::stof(imageQualityNode["Color"].asString());
+	if(!imageQualityNode["CompositionScore"].isNull())
+		imageQuality_.compositionScore = std::stof(imageQualityNode["CompositionScore"].asString());
+	if(!value["ImageUri"].isNull())
+		imageUri_ = value["ImageUri"].asString();
+
+}
+
+GetImageQualityResult::ImageQuality GetImageQualityResult::getImageQuality()const
+{
+	return imageQuality_;
+}
+
+std::string GetImageQualityResult::getImageUri()const
+{
+	return imageUri_;
+}
+

+ 93 - 0
imm/src/model/GetVideoResult.cc

@@ -61,6 +61,8 @@ void GetVideoResult::parse(const std::string &payload)
 			videoTagsObject.videoTagEnName = valueVideoTagsVideoTagsItem["VideoTagEnName"].asString();
 		if(!valueVideoTagsVideoTagsItem["VideoTagConfidence"].isNull())
 			videoTagsObject.videoTagConfidence = std::stof(valueVideoTagsVideoTagsItem["VideoTagConfidence"].asString());
+		if(!valueVideoTagsVideoTagsItem["VideoTagLevel"].isNull())
+			videoTagsObject.videoTagLevel = std::stoi(valueVideoTagsVideoTagsItem["VideoTagLevel"].asString());
 		videoTags_.push_back(videoTagsObject);
 	}
 	auto allPersonsNode = value["Persons"]["PersonsItem"];
@@ -133,6 +135,32 @@ void GetVideoResult::parse(const std::string &payload)
 		remarksD_ = value["RemarksD"].asString();
 	if(!value["ExternalId"].isNull())
 		externalId_ = value["ExternalId"].asString();
+	if(!value["VideoFacesStatus"].isNull())
+		videoFacesStatus_ = value["VideoFacesStatus"].asString();
+	if(!value["VideoFacesFailReason"].isNull())
+		videoFacesFailReason_ = value["VideoFacesFailReason"].asString();
+	if(!value["VideoFacesModifyTime"].isNull())
+		videoFacesModifyTime_ = value["VideoFacesModifyTime"].asString();
+	if(!value["VideoFrameTagsStatus"].isNull())
+		videoFrameTagsStatus_ = value["VideoFrameTagsStatus"].asString();
+	if(!value["VideoFrameTagsFailReason"].isNull())
+		videoFrameTagsFailReason_ = value["VideoFrameTagsFailReason"].asString();
+	if(!value["VideoFrameTagsModifyTime"].isNull())
+		videoFrameTagsModifyTime_ = value["VideoFrameTagsModifyTime"].asString();
+	if(!value["VideoSTTStatus"].isNull())
+		videoSTTStatus_ = value["VideoSTTStatus"].asString();
+	if(!value["VideoSTTFailReason"].isNull())
+		videoSTTFailReason_ = value["VideoSTTFailReason"].asString();
+	if(!value["VideoSTTModifyTime"].isNull())
+		videoSTTModifyTime_ = value["VideoSTTModifyTime"].asString();
+	if(!value["VideoOCRStatus"].isNull())
+		videoOCRStatus_ = value["VideoOCRStatus"].asString();
+	if(!value["VideoOCRFailReason"].isNull())
+		videoOCRFailReason_ = value["VideoOCRFailReason"].asString();
+	if(!value["VideoOCRModifyTime"].isNull())
+		videoOCRModifyTime_ = value["VideoOCRModifyTime"].asString();
+	if(!value["VideoInfo"].isNull())
+		videoInfo_ = value["VideoInfo"].asString();
 
 }
 
@@ -161,21 +189,46 @@ std::string GetVideoResult::getSourceUri()const
 	return sourceUri_;
 }
 
+std::string GetVideoResult::getVideoInfo()const
+{
+	return videoInfo_;
+}
+
 std::string GetVideoResult::getRemarksA()const
 {
 	return remarksA_;
 }
 
+std::string GetVideoResult::getVideoFrameTagsModifyTime()const
+{
+	return videoFrameTagsModifyTime_;
+}
+
 std::string GetVideoResult::getRemarksB()const
 {
 	return remarksB_;
 }
 
+std::string GetVideoResult::getVideoFacesFailReason()const
+{
+	return videoFacesFailReason_;
+}
+
+std::string GetVideoResult::getVideoFacesStatus()const
+{
+	return videoFacesStatus_;
+}
+
 std::string GetVideoResult::getRemarksC()const
 {
 	return remarksC_;
 }
 
+std::string GetVideoResult::getVideoOCRModifyTime()const
+{
+	return videoOCRModifyTime_;
+}
+
 std::string GetVideoResult::getRemarksD()const
 {
 	return remarksD_;
@@ -201,6 +254,16 @@ std::string GetVideoResult::getSourcePosition()const
 	return sourcePosition_;
 }
 
+std::string GetVideoResult::getVideoOCRFailReason()const
+{
+	return videoOCRFailReason_;
+}
+
+std::string GetVideoResult::getVideoFrameTagsStatus()const
+{
+	return videoFrameTagsStatus_;
+}
+
 std::string GetVideoResult::getVideoTagsFailReason()const
 {
 	return videoTagsFailReason_;
@@ -211,6 +274,11 @@ std::string GetVideoResult::getVideoTagsModifyTime()const
 	return videoTagsModifyTime_;
 }
 
+std::string GetVideoResult::getVideoOCRStatus()const
+{
+	return videoOCRStatus_;
+}
+
 int GetVideoResult::getVideoFrames()const
 {
 	return videoFrames_;
@@ -221,6 +289,11 @@ std::string GetVideoResult::getProcessModifyTime()const
 	return processModifyTime_;
 }
 
+std::string GetVideoResult::getVideoSTTModifyTime()const
+{
+	return videoSTTModifyTime_;
+}
+
 std::string GetVideoResult::getProcessFailReason()const
 {
 	return processFailReason_;
@@ -236,6 +309,11 @@ std::string GetVideoResult::getExternalId()const
 	return externalId_;
 }
 
+std::string GetVideoResult::getVideoSTTFailReason()const
+{
+	return videoSTTFailReason_;
+}
+
 std::string GetVideoResult::getVideoUri()const
 {
 	return videoUri_;
@@ -246,6 +324,21 @@ std::string GetVideoResult::getVideoFormat()const
 	return videoFormat_;
 }
 
+std::string GetVideoResult::getVideoFrameTagsFailReason()const
+{
+	return videoFrameTagsFailReason_;
+}
+
+std::string GetVideoResult::getVideoSTTStatus()const
+{
+	return videoSTTStatus_;
+}
+
+std::string GetVideoResult::getVideoFacesModifyTime()const
+{
+	return videoFacesModifyTime_;
+}
+
 std::vector<GetVideoResult::VideoTagsItem> GetVideoResult::getVideoTags()const
 {
 	return videoTags_;

+ 22 - 0
imm/src/model/IndexVideoRequest.cc

@@ -82,6 +82,28 @@ void IndexVideoRequest::setAccessKeyId(const std::string& accessKeyId)
 	setParameter("AccessKeyId", accessKeyId);
 }
 
+std::string IndexVideoRequest::getNotifyEndpoint()const
+{
+	return notifyEndpoint_;
+}
+
+void IndexVideoRequest::setNotifyEndpoint(const std::string& notifyEndpoint)
+{
+	notifyEndpoint_ = notifyEndpoint;
+	setParameter("NotifyEndpoint", notifyEndpoint);
+}
+
+std::string IndexVideoRequest::getNotifyTopicName()const
+{
+	return notifyTopicName_;
+}
+
+void IndexVideoRequest::setNotifyTopicName(const std::string& notifyTopicName)
+{
+	notifyTopicName_ = notifyTopicName;
+	setParameter("NotifyTopicName", notifyTopicName);
+}
+
 std::string IndexVideoRequest::getRemarksB()const
 {
 	return remarksB_;

+ 8 - 0
imm/src/model/ListFaceGroupsResult.cc

@@ -69,6 +69,14 @@ void ListFaceGroupsResult::parse(const std::string &payload)
 			faceGroupsObject.externalId = valueFaceGroupsFaceGroupsItem["ExternalId"].asString();
 		if(!valueFaceGroupsFaceGroupsItem["ImageCount"].isNull())
 			faceGroupsObject.imageCount = std::stoi(valueFaceGroupsFaceGroupsItem["ImageCount"].asString());
+		if(!valueFaceGroupsFaceGroupsItem["Gender"].isNull())
+			faceGroupsObject.gender = valueFaceGroupsFaceGroupsItem["Gender"].asString();
+		if(!valueFaceGroupsFaceGroupsItem["MaxAge"].isNull())
+			faceGroupsObject.maxAge = std::stof(valueFaceGroupsFaceGroupsItem["MaxAge"].asString());
+		if(!valueFaceGroupsFaceGroupsItem["AverageAge"].isNull())
+			faceGroupsObject.averageAge = std::stof(valueFaceGroupsFaceGroupsItem["AverageAge"].asString());
+		if(!valueFaceGroupsFaceGroupsItem["MinAge"].isNull())
+			faceGroupsObject.minAge = std::stof(valueFaceGroupsFaceGroupsItem["MinAge"].asString());
 		auto groupCoverFaceNode = value["GroupCoverFace"];
 		if(!groupCoverFaceNode["FaceId"].isNull())
 			faceGroupsObject.groupCoverFace.faceId = groupCoverFaceNode["FaceId"].asString();