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

Supported Meida complex for IMM.

sdk-team 7 лет назад
Родитель
Сommit
586250dbe5

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2019-08-30 Version 1.36.101
+- Supported Meida complex for IMM.
+
 2019-08-30 Version 1.36.100
 - Add api for getTrace and searchTracelist.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.100
+1.36.101

+ 28 - 24
imm/CMakeLists.txt

@@ -39,10 +39,10 @@ set(imm_public_header_model
 	include/alibabacloud/imm/model/ListFaceSearchGroupUsersResult.h
 	include/alibabacloud/imm/model/ListFaceSearchGroupImagesRequest.h
 	include/alibabacloud/imm/model/ListFaceSearchGroupImagesResult.h
-	include/alibabacloud/imm/model/ListSetsRequest.h
-	include/alibabacloud/imm/model/ListSetsResult.h
 	include/alibabacloud/imm/model/PutProjectRequest.h
 	include/alibabacloud/imm/model/PutProjectResult.h
+	include/alibabacloud/imm/model/ListSetsRequest.h
+	include/alibabacloud/imm/model/ListSetsResult.h
 	include/alibabacloud/imm/model/FindImagesRequest.h
 	include/alibabacloud/imm/model/FindImagesResult.h
 	include/alibabacloud/imm/model/DetectImageLogosRequest.h
@@ -61,10 +61,10 @@ set(imm_public_header_model
 	include/alibabacloud/imm/model/DetectImageCelebrityResult.h
 	include/alibabacloud/imm/model/ListFaceSearchGroupsRequest.h
 	include/alibabacloud/imm/model/ListFaceSearchGroupsResult.h
-	include/alibabacloud/imm/model/DeletePornBatchDetectJobRequest.h
-	include/alibabacloud/imm/model/DeletePornBatchDetectJobResult.h
 	include/alibabacloud/imm/model/GetTagSetRequest.h
 	include/alibabacloud/imm/model/GetTagSetResult.h
+	include/alibabacloud/imm/model/DeletePornBatchDetectJobRequest.h
+	include/alibabacloud/imm/model/DeletePornBatchDetectJobResult.h
 	include/alibabacloud/imm/model/ListTagPhotosRequest.h
 	include/alibabacloud/imm/model/ListTagPhotosResult.h
 	include/alibabacloud/imm/model/DeleteFaceSearchImageByIdRequest.h
@@ -85,16 +85,18 @@ set(imm_public_header_model
 	include/alibabacloud/imm/model/CompareImageFacesResult.h
 	include/alibabacloud/imm/model/DeleteTagJobRequest.h
 	include/alibabacloud/imm/model/DeleteTagJobResult.h
+	include/alibabacloud/imm/model/CreateMediaComplexTaskRequest.h
+	include/alibabacloud/imm/model/CreateMediaComplexTaskResult.h
 	include/alibabacloud/imm/model/PhotoProcessRequest.h
 	include/alibabacloud/imm/model/PhotoProcessResult.h
 	include/alibabacloud/imm/model/DeleteFaceSearchUserRequest.h
 	include/alibabacloud/imm/model/DeleteFaceSearchUserResult.h
 	include/alibabacloud/imm/model/GetOfficeConversionTaskRequest.h
 	include/alibabacloud/imm/model/GetOfficeConversionTaskResult.h
-	include/alibabacloud/imm/model/CreateTagSetRequest.h
-	include/alibabacloud/imm/model/CreateTagSetResult.h
 	include/alibabacloud/imm/model/RegistFaceRequest.h
 	include/alibabacloud/imm/model/RegistFaceResult.h
+	include/alibabacloud/imm/model/CreateTagSetRequest.h
+	include/alibabacloud/imm/model/CreateTagSetResult.h
 	include/alibabacloud/imm/model/GetFaceSearchUserRequest.h
 	include/alibabacloud/imm/model/GetFaceSearchUserResult.h
 	include/alibabacloud/imm/model/CreateFaceSetRequest.h
@@ -123,10 +125,10 @@ set(imm_public_header_model
 	include/alibabacloud/imm/model/DetectTagResult.h
 	include/alibabacloud/imm/model/CreateCADConversionTaskRequest.h
 	include/alibabacloud/imm/model/CreateCADConversionTaskResult.h
-	include/alibabacloud/imm/model/DeleteFaceJobRequest.h
-	include/alibabacloud/imm/model/DeleteFaceJobResult.h
 	include/alibabacloud/imm/model/GetTagJobRequest.h
 	include/alibabacloud/imm/model/GetTagJobResult.h
+	include/alibabacloud/imm/model/DeleteFaceJobRequest.h
+	include/alibabacloud/imm/model/DeleteFaceJobResult.h
 	include/alibabacloud/imm/model/CreateDocIndexTaskRequest.h
 	include/alibabacloud/imm/model/CreateDocIndexTaskResult.h
 	include/alibabacloud/imm/model/GetVideoTaskRequest.h
@@ -165,10 +167,10 @@ set(imm_public_header_model
 	include/alibabacloud/imm/model/DetectImageBodiesResult.h
 	include/alibabacloud/imm/model/DeleteDocIndexRequest.h
 	include/alibabacloud/imm/model/DeleteDocIndexResult.h
-	include/alibabacloud/imm/model/GetImageJobRequest.h
-	include/alibabacloud/imm/model/GetImageJobResult.h
 	include/alibabacloud/imm/model/GetDocIndexTaskRequest.h
 	include/alibabacloud/imm/model/GetDocIndexTaskResult.h
+	include/alibabacloud/imm/model/GetImageJobRequest.h
+	include/alibabacloud/imm/model/GetImageJobResult.h
 	include/alibabacloud/imm/model/DeleteTagByUrlRequest.h
 	include/alibabacloud/imm/model/DeleteTagByUrlResult.h
 	include/alibabacloud/imm/model/ListTagSetsRequest.h
@@ -187,10 +189,10 @@ set(imm_public_header_model
 	include/alibabacloud/imm/model/ListVideoFramesResult.h
 	include/alibabacloud/imm/model/GetPornBatchDetectJobRequest.h
 	include/alibabacloud/imm/model/GetPornBatchDetectJobResult.h
-	include/alibabacloud/imm/model/DetectClothesRequest.h
-	include/alibabacloud/imm/model/DetectClothesResult.h
 	include/alibabacloud/imm/model/ListTagJobsRequest.h
 	include/alibabacloud/imm/model/ListTagJobsResult.h
+	include/alibabacloud/imm/model/DetectClothesRequest.h
+	include/alibabacloud/imm/model/DetectClothesResult.h
 	include/alibabacloud/imm/model/DetectLogoRequest.h
 	include/alibabacloud/imm/model/DetectLogoResult.h
 	include/alibabacloud/imm/model/DescribeRegionsRequest.h
@@ -238,10 +240,10 @@ set(imm_src
 	src/model/ListFaceSearchGroupUsersResult.cc
 	src/model/ListFaceSearchGroupImagesRequest.cc
 	src/model/ListFaceSearchGroupImagesResult.cc
-	src/model/ListSetsRequest.cc
-	src/model/ListSetsResult.cc
 	src/model/PutProjectRequest.cc
 	src/model/PutProjectResult.cc
+	src/model/ListSetsRequest.cc
+	src/model/ListSetsResult.cc
 	src/model/FindImagesRequest.cc
 	src/model/FindImagesResult.cc
 	src/model/DetectImageLogosRequest.cc
@@ -260,10 +262,10 @@ set(imm_src
 	src/model/DetectImageCelebrityResult.cc
 	src/model/ListFaceSearchGroupsRequest.cc
 	src/model/ListFaceSearchGroupsResult.cc
-	src/model/DeletePornBatchDetectJobRequest.cc
-	src/model/DeletePornBatchDetectJobResult.cc
 	src/model/GetTagSetRequest.cc
 	src/model/GetTagSetResult.cc
+	src/model/DeletePornBatchDetectJobRequest.cc
+	src/model/DeletePornBatchDetectJobResult.cc
 	src/model/ListTagPhotosRequest.cc
 	src/model/ListTagPhotosResult.cc
 	src/model/DeleteFaceSearchImageByIdRequest.cc
@@ -284,16 +286,18 @@ set(imm_src
 	src/model/CompareImageFacesResult.cc
 	src/model/DeleteTagJobRequest.cc
 	src/model/DeleteTagJobResult.cc
+	src/model/CreateMediaComplexTaskRequest.cc
+	src/model/CreateMediaComplexTaskResult.cc
 	src/model/PhotoProcessRequest.cc
 	src/model/PhotoProcessResult.cc
 	src/model/DeleteFaceSearchUserRequest.cc
 	src/model/DeleteFaceSearchUserResult.cc
 	src/model/GetOfficeConversionTaskRequest.cc
 	src/model/GetOfficeConversionTaskResult.cc
-	src/model/CreateTagSetRequest.cc
-	src/model/CreateTagSetResult.cc
 	src/model/RegistFaceRequest.cc
 	src/model/RegistFaceResult.cc
+	src/model/CreateTagSetRequest.cc
+	src/model/CreateTagSetResult.cc
 	src/model/GetFaceSearchUserRequest.cc
 	src/model/GetFaceSearchUserResult.cc
 	src/model/CreateFaceSetRequest.cc
@@ -322,10 +326,10 @@ set(imm_src
 	src/model/DetectTagResult.cc
 	src/model/CreateCADConversionTaskRequest.cc
 	src/model/CreateCADConversionTaskResult.cc
-	src/model/DeleteFaceJobRequest.cc
-	src/model/DeleteFaceJobResult.cc
 	src/model/GetTagJobRequest.cc
 	src/model/GetTagJobResult.cc
+	src/model/DeleteFaceJobRequest.cc
+	src/model/DeleteFaceJobResult.cc
 	src/model/CreateDocIndexTaskRequest.cc
 	src/model/CreateDocIndexTaskResult.cc
 	src/model/GetVideoTaskRequest.cc
@@ -364,10 +368,10 @@ set(imm_src
 	src/model/DetectImageBodiesResult.cc
 	src/model/DeleteDocIndexRequest.cc
 	src/model/DeleteDocIndexResult.cc
-	src/model/GetImageJobRequest.cc
-	src/model/GetImageJobResult.cc
 	src/model/GetDocIndexTaskRequest.cc
 	src/model/GetDocIndexTaskResult.cc
+	src/model/GetImageJobRequest.cc
+	src/model/GetImageJobResult.cc
 	src/model/DeleteTagByUrlRequest.cc
 	src/model/DeleteTagByUrlResult.cc
 	src/model/ListTagSetsRequest.cc
@@ -386,10 +390,10 @@ set(imm_src
 	src/model/ListVideoFramesResult.cc
 	src/model/GetPornBatchDetectJobRequest.cc
 	src/model/GetPornBatchDetectJobResult.cc
-	src/model/DetectClothesRequest.cc
-	src/model/DetectClothesResult.cc
 	src/model/ListTagJobsRequest.cc
 	src/model/ListTagJobsResult.cc
+	src/model/DetectClothesRequest.cc
+	src/model/DetectClothesResult.cc
 	src/model/DetectLogoRequest.cc
 	src/model/DetectLogoResult.cc
 	src/model/DescribeRegionsRequest.cc

+ 56 - 48
imm/include/alibabacloud/imm/ImmClient.h

@@ -40,10 +40,10 @@
 #include "model/ListFaceSearchGroupUsersResult.h"
 #include "model/ListFaceSearchGroupImagesRequest.h"
 #include "model/ListFaceSearchGroupImagesResult.h"
-#include "model/ListSetsRequest.h"
-#include "model/ListSetsResult.h"
 #include "model/PutProjectRequest.h"
 #include "model/PutProjectResult.h"
+#include "model/ListSetsRequest.h"
+#include "model/ListSetsResult.h"
 #include "model/FindImagesRequest.h"
 #include "model/FindImagesResult.h"
 #include "model/DetectImageLogosRequest.h"
@@ -62,10 +62,10 @@
 #include "model/DetectImageCelebrityResult.h"
 #include "model/ListFaceSearchGroupsRequest.h"
 #include "model/ListFaceSearchGroupsResult.h"
-#include "model/DeletePornBatchDetectJobRequest.h"
-#include "model/DeletePornBatchDetectJobResult.h"
 #include "model/GetTagSetRequest.h"
 #include "model/GetTagSetResult.h"
+#include "model/DeletePornBatchDetectJobRequest.h"
+#include "model/DeletePornBatchDetectJobResult.h"
 #include "model/ListTagPhotosRequest.h"
 #include "model/ListTagPhotosResult.h"
 #include "model/DeleteFaceSearchImageByIdRequest.h"
@@ -86,16 +86,18 @@
 #include "model/CompareImageFacesResult.h"
 #include "model/DeleteTagJobRequest.h"
 #include "model/DeleteTagJobResult.h"
+#include "model/CreateMediaComplexTaskRequest.h"
+#include "model/CreateMediaComplexTaskResult.h"
 #include "model/PhotoProcessRequest.h"
 #include "model/PhotoProcessResult.h"
 #include "model/DeleteFaceSearchUserRequest.h"
 #include "model/DeleteFaceSearchUserResult.h"
 #include "model/GetOfficeConversionTaskRequest.h"
 #include "model/GetOfficeConversionTaskResult.h"
-#include "model/CreateTagSetRequest.h"
-#include "model/CreateTagSetResult.h"
 #include "model/RegistFaceRequest.h"
 #include "model/RegistFaceResult.h"
+#include "model/CreateTagSetRequest.h"
+#include "model/CreateTagSetResult.h"
 #include "model/GetFaceSearchUserRequest.h"
 #include "model/GetFaceSearchUserResult.h"
 #include "model/CreateFaceSetRequest.h"
@@ -124,10 +126,10 @@
 #include "model/DetectTagResult.h"
 #include "model/CreateCADConversionTaskRequest.h"
 #include "model/CreateCADConversionTaskResult.h"
-#include "model/DeleteFaceJobRequest.h"
-#include "model/DeleteFaceJobResult.h"
 #include "model/GetTagJobRequest.h"
 #include "model/GetTagJobResult.h"
+#include "model/DeleteFaceJobRequest.h"
+#include "model/DeleteFaceJobResult.h"
 #include "model/CreateDocIndexTaskRequest.h"
 #include "model/CreateDocIndexTaskResult.h"
 #include "model/GetVideoTaskRequest.h"
@@ -166,10 +168,10 @@
 #include "model/DetectImageBodiesResult.h"
 #include "model/DeleteDocIndexRequest.h"
 #include "model/DeleteDocIndexResult.h"
-#include "model/GetImageJobRequest.h"
-#include "model/GetImageJobResult.h"
 #include "model/GetDocIndexTaskRequest.h"
 #include "model/GetDocIndexTaskResult.h"
+#include "model/GetImageJobRequest.h"
+#include "model/GetImageJobResult.h"
 #include "model/DeleteTagByUrlRequest.h"
 #include "model/DeleteTagByUrlResult.h"
 #include "model/ListTagSetsRequest.h"
@@ -188,10 +190,10 @@
 #include "model/ListVideoFramesResult.h"
 #include "model/GetPornBatchDetectJobRequest.h"
 #include "model/GetPornBatchDetectJobResult.h"
-#include "model/DetectClothesRequest.h"
-#include "model/DetectClothesResult.h"
 #include "model/ListTagJobsRequest.h"
 #include "model/ListTagJobsResult.h"
+#include "model/DetectClothesRequest.h"
+#include "model/DetectClothesResult.h"
 #include "model/DetectLogoRequest.h"
 #include "model/DetectLogoResult.h"
 #include "model/DescribeRegionsRequest.h"
@@ -254,12 +256,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListFaceSearchGroupImagesResult> ListFaceSearchGroupImagesOutcome;
 			typedef std::future<ListFaceSearchGroupImagesOutcome> ListFaceSearchGroupImagesOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::ListFaceSearchGroupImagesRequest&, const ListFaceSearchGroupImagesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListFaceSearchGroupImagesAsyncHandler;
-			typedef Outcome<Error, Model::ListSetsResult> ListSetsOutcome;
-			typedef std::future<ListSetsOutcome> ListSetsOutcomeCallable;
-			typedef std::function<void(const ImmClient*, const Model::ListSetsRequest&, const ListSetsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListSetsAsyncHandler;
 			typedef Outcome<Error, Model::PutProjectResult> PutProjectOutcome;
 			typedef std::future<PutProjectOutcome> PutProjectOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::PutProjectRequest&, const PutProjectOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> PutProjectAsyncHandler;
+			typedef Outcome<Error, Model::ListSetsResult> ListSetsOutcome;
+			typedef std::future<ListSetsOutcome> ListSetsOutcomeCallable;
+			typedef std::function<void(const ImmClient*, const Model::ListSetsRequest&, const ListSetsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListSetsAsyncHandler;
 			typedef Outcome<Error, Model::FindImagesResult> FindImagesOutcome;
 			typedef std::future<FindImagesOutcome> FindImagesOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::FindImagesRequest&, const FindImagesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> FindImagesAsyncHandler;
@@ -287,12 +289,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListFaceSearchGroupsResult> ListFaceSearchGroupsOutcome;
 			typedef std::future<ListFaceSearchGroupsOutcome> ListFaceSearchGroupsOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::ListFaceSearchGroupsRequest&, const ListFaceSearchGroupsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListFaceSearchGroupsAsyncHandler;
-			typedef Outcome<Error, Model::DeletePornBatchDetectJobResult> DeletePornBatchDetectJobOutcome;
-			typedef std::future<DeletePornBatchDetectJobOutcome> DeletePornBatchDetectJobOutcomeCallable;
-			typedef std::function<void(const ImmClient*, const Model::DeletePornBatchDetectJobRequest&, const DeletePornBatchDetectJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeletePornBatchDetectJobAsyncHandler;
 			typedef Outcome<Error, Model::GetTagSetResult> GetTagSetOutcome;
 			typedef std::future<GetTagSetOutcome> GetTagSetOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::GetTagSetRequest&, const GetTagSetOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetTagSetAsyncHandler;
+			typedef Outcome<Error, Model::DeletePornBatchDetectJobResult> DeletePornBatchDetectJobOutcome;
+			typedef std::future<DeletePornBatchDetectJobOutcome> DeletePornBatchDetectJobOutcomeCallable;
+			typedef std::function<void(const ImmClient*, const Model::DeletePornBatchDetectJobRequest&, const DeletePornBatchDetectJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeletePornBatchDetectJobAsyncHandler;
 			typedef Outcome<Error, Model::ListTagPhotosResult> ListTagPhotosOutcome;
 			typedef std::future<ListTagPhotosOutcome> ListTagPhotosOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::ListTagPhotosRequest&, const ListTagPhotosOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTagPhotosAsyncHandler;
@@ -323,6 +325,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteTagJobResult> DeleteTagJobOutcome;
 			typedef std::future<DeleteTagJobOutcome> DeleteTagJobOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::DeleteTagJobRequest&, const DeleteTagJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTagJobAsyncHandler;
+			typedef Outcome<Error, Model::CreateMediaComplexTaskResult> CreateMediaComplexTaskOutcome;
+			typedef std::future<CreateMediaComplexTaskOutcome> CreateMediaComplexTaskOutcomeCallable;
+			typedef std::function<void(const ImmClient*, const Model::CreateMediaComplexTaskRequest&, const CreateMediaComplexTaskOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateMediaComplexTaskAsyncHandler;
 			typedef Outcome<Error, Model::PhotoProcessResult> PhotoProcessOutcome;
 			typedef std::future<PhotoProcessOutcome> PhotoProcessOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::PhotoProcessRequest&, const PhotoProcessOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> PhotoProcessAsyncHandler;
@@ -332,12 +337,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetOfficeConversionTaskResult> GetOfficeConversionTaskOutcome;
 			typedef std::future<GetOfficeConversionTaskOutcome> GetOfficeConversionTaskOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::GetOfficeConversionTaskRequest&, const GetOfficeConversionTaskOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetOfficeConversionTaskAsyncHandler;
-			typedef Outcome<Error, Model::CreateTagSetResult> CreateTagSetOutcome;
-			typedef std::future<CreateTagSetOutcome> CreateTagSetOutcomeCallable;
-			typedef std::function<void(const ImmClient*, const Model::CreateTagSetRequest&, const CreateTagSetOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateTagSetAsyncHandler;
 			typedef Outcome<Error, Model::RegistFaceResult> RegistFaceOutcome;
 			typedef std::future<RegistFaceOutcome> RegistFaceOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::RegistFaceRequest&, const RegistFaceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RegistFaceAsyncHandler;
+			typedef Outcome<Error, Model::CreateTagSetResult> CreateTagSetOutcome;
+			typedef std::future<CreateTagSetOutcome> CreateTagSetOutcomeCallable;
+			typedef std::function<void(const ImmClient*, const Model::CreateTagSetRequest&, const CreateTagSetOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateTagSetAsyncHandler;
 			typedef Outcome<Error, Model::GetFaceSearchUserResult> GetFaceSearchUserOutcome;
 			typedef std::future<GetFaceSearchUserOutcome> GetFaceSearchUserOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::GetFaceSearchUserRequest&, const GetFaceSearchUserOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetFaceSearchUserAsyncHandler;
@@ -380,12 +385,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateCADConversionTaskResult> CreateCADConversionTaskOutcome;
 			typedef std::future<CreateCADConversionTaskOutcome> CreateCADConversionTaskOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::CreateCADConversionTaskRequest&, const CreateCADConversionTaskOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateCADConversionTaskAsyncHandler;
-			typedef Outcome<Error, Model::DeleteFaceJobResult> DeleteFaceJobOutcome;
-			typedef std::future<DeleteFaceJobOutcome> DeleteFaceJobOutcomeCallable;
-			typedef std::function<void(const ImmClient*, const Model::DeleteFaceJobRequest&, const DeleteFaceJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteFaceJobAsyncHandler;
 			typedef Outcome<Error, Model::GetTagJobResult> GetTagJobOutcome;
 			typedef std::future<GetTagJobOutcome> GetTagJobOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::GetTagJobRequest&, const GetTagJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetTagJobAsyncHandler;
+			typedef Outcome<Error, Model::DeleteFaceJobResult> DeleteFaceJobOutcome;
+			typedef std::future<DeleteFaceJobOutcome> DeleteFaceJobOutcomeCallable;
+			typedef std::function<void(const ImmClient*, const Model::DeleteFaceJobRequest&, const DeleteFaceJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteFaceJobAsyncHandler;
 			typedef Outcome<Error, Model::CreateDocIndexTaskResult> CreateDocIndexTaskOutcome;
 			typedef std::future<CreateDocIndexTaskOutcome> CreateDocIndexTaskOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::CreateDocIndexTaskRequest&, const CreateDocIndexTaskOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateDocIndexTaskAsyncHandler;
@@ -443,12 +448,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteDocIndexResult> DeleteDocIndexOutcome;
 			typedef std::future<DeleteDocIndexOutcome> DeleteDocIndexOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::DeleteDocIndexRequest&, const DeleteDocIndexOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDocIndexAsyncHandler;
-			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::GetDocIndexTaskResult> GetDocIndexTaskOutcome;
 			typedef std::future<GetDocIndexTaskOutcome> GetDocIndexTaskOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::GetDocIndexTaskRequest&, const GetDocIndexTaskOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetDocIndexTaskAsyncHandler;
+			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::DeleteTagByUrlResult> DeleteTagByUrlOutcome;
 			typedef std::future<DeleteTagByUrlOutcome> DeleteTagByUrlOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::DeleteTagByUrlRequest&, const DeleteTagByUrlOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTagByUrlAsyncHandler;
@@ -476,12 +481,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetPornBatchDetectJobResult> GetPornBatchDetectJobOutcome;
 			typedef std::future<GetPornBatchDetectJobOutcome> GetPornBatchDetectJobOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::GetPornBatchDetectJobRequest&, const GetPornBatchDetectJobOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetPornBatchDetectJobAsyncHandler;
-			typedef Outcome<Error, Model::DetectClothesResult> DetectClothesOutcome;
-			typedef std::future<DetectClothesOutcome> DetectClothesOutcomeCallable;
-			typedef std::function<void(const ImmClient*, const Model::DetectClothesRequest&, const DetectClothesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetectClothesAsyncHandler;
 			typedef Outcome<Error, Model::ListTagJobsResult> ListTagJobsOutcome;
 			typedef std::future<ListTagJobsOutcome> ListTagJobsOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::ListTagJobsRequest&, const ListTagJobsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTagJobsAsyncHandler;
+			typedef Outcome<Error, Model::DetectClothesResult> DetectClothesOutcome;
+			typedef std::future<DetectClothesOutcome> DetectClothesOutcomeCallable;
+			typedef std::function<void(const ImmClient*, const Model::DetectClothesRequest&, const DetectClothesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetectClothesAsyncHandler;
 			typedef Outcome<Error, Model::DetectLogoResult> DetectLogoOutcome;
 			typedef std::future<DetectLogoOutcome> DetectLogoOutcomeCallable;
 			typedef std::function<void(const ImmClient*, const Model::DetectLogoRequest&, const DetectLogoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetectLogoAsyncHandler;
@@ -553,12 +558,12 @@ namespace AlibabaCloud
 			ListFaceSearchGroupImagesOutcome listFaceSearchGroupImages(const Model::ListFaceSearchGroupImagesRequest &request)const;
 			void listFaceSearchGroupImagesAsync(const Model::ListFaceSearchGroupImagesRequest& request, const ListFaceSearchGroupImagesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListFaceSearchGroupImagesOutcomeCallable listFaceSearchGroupImagesCallable(const Model::ListFaceSearchGroupImagesRequest& request) const;
-			ListSetsOutcome listSets(const Model::ListSetsRequest &request)const;
-			void listSetsAsync(const Model::ListSetsRequest& request, const ListSetsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			ListSetsOutcomeCallable listSetsCallable(const Model::ListSetsRequest& request) const;
 			PutProjectOutcome putProject(const Model::PutProjectRequest &request)const;
 			void putProjectAsync(const Model::PutProjectRequest& request, const PutProjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			PutProjectOutcomeCallable putProjectCallable(const Model::PutProjectRequest& request) const;
+			ListSetsOutcome listSets(const Model::ListSetsRequest &request)const;
+			void listSetsAsync(const Model::ListSetsRequest& request, const ListSetsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListSetsOutcomeCallable listSetsCallable(const Model::ListSetsRequest& request) const;
 			FindImagesOutcome findImages(const Model::FindImagesRequest &request)const;
 			void findImagesAsync(const Model::FindImagesRequest& request, const FindImagesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			FindImagesOutcomeCallable findImagesCallable(const Model::FindImagesRequest& request) const;
@@ -586,12 +591,12 @@ namespace AlibabaCloud
 			ListFaceSearchGroupsOutcome listFaceSearchGroups(const Model::ListFaceSearchGroupsRequest &request)const;
 			void listFaceSearchGroupsAsync(const Model::ListFaceSearchGroupsRequest& request, const ListFaceSearchGroupsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListFaceSearchGroupsOutcomeCallable listFaceSearchGroupsCallable(const Model::ListFaceSearchGroupsRequest& request) const;
-			DeletePornBatchDetectJobOutcome deletePornBatchDetectJob(const Model::DeletePornBatchDetectJobRequest &request)const;
-			void deletePornBatchDetectJobAsync(const Model::DeletePornBatchDetectJobRequest& request, const DeletePornBatchDetectJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			DeletePornBatchDetectJobOutcomeCallable deletePornBatchDetectJobCallable(const Model::DeletePornBatchDetectJobRequest& request) const;
 			GetTagSetOutcome getTagSet(const Model::GetTagSetRequest &request)const;
 			void getTagSetAsync(const Model::GetTagSetRequest& request, const GetTagSetAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetTagSetOutcomeCallable getTagSetCallable(const Model::GetTagSetRequest& request) const;
+			DeletePornBatchDetectJobOutcome deletePornBatchDetectJob(const Model::DeletePornBatchDetectJobRequest &request)const;
+			void deletePornBatchDetectJobAsync(const Model::DeletePornBatchDetectJobRequest& request, const DeletePornBatchDetectJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeletePornBatchDetectJobOutcomeCallable deletePornBatchDetectJobCallable(const Model::DeletePornBatchDetectJobRequest& request) const;
 			ListTagPhotosOutcome listTagPhotos(const Model::ListTagPhotosRequest &request)const;
 			void listTagPhotosAsync(const Model::ListTagPhotosRequest& request, const ListTagPhotosAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListTagPhotosOutcomeCallable listTagPhotosCallable(const Model::ListTagPhotosRequest& request) const;
@@ -622,6 +627,9 @@ namespace AlibabaCloud
 			DeleteTagJobOutcome deleteTagJob(const Model::DeleteTagJobRequest &request)const;
 			void deleteTagJobAsync(const Model::DeleteTagJobRequest& request, const DeleteTagJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteTagJobOutcomeCallable deleteTagJobCallable(const Model::DeleteTagJobRequest& request) const;
+			CreateMediaComplexTaskOutcome createMediaComplexTask(const Model::CreateMediaComplexTaskRequest &request)const;
+			void createMediaComplexTaskAsync(const Model::CreateMediaComplexTaskRequest& request, const CreateMediaComplexTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateMediaComplexTaskOutcomeCallable createMediaComplexTaskCallable(const Model::CreateMediaComplexTaskRequest& request) const;
 			PhotoProcessOutcome photoProcess(const Model::PhotoProcessRequest &request)const;
 			void photoProcessAsync(const Model::PhotoProcessRequest& request, const PhotoProcessAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			PhotoProcessOutcomeCallable photoProcessCallable(const Model::PhotoProcessRequest& request) const;
@@ -631,12 +639,12 @@ namespace AlibabaCloud
 			GetOfficeConversionTaskOutcome getOfficeConversionTask(const Model::GetOfficeConversionTaskRequest &request)const;
 			void getOfficeConversionTaskAsync(const Model::GetOfficeConversionTaskRequest& request, const GetOfficeConversionTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetOfficeConversionTaskOutcomeCallable getOfficeConversionTaskCallable(const Model::GetOfficeConversionTaskRequest& request) const;
-			CreateTagSetOutcome createTagSet(const Model::CreateTagSetRequest &request)const;
-			void createTagSetAsync(const Model::CreateTagSetRequest& request, const CreateTagSetAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			CreateTagSetOutcomeCallable createTagSetCallable(const Model::CreateTagSetRequest& request) const;
 			RegistFaceOutcome registFace(const Model::RegistFaceRequest &request)const;
 			void registFaceAsync(const Model::RegistFaceRequest& request, const RegistFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			RegistFaceOutcomeCallable registFaceCallable(const Model::RegistFaceRequest& request) const;
+			CreateTagSetOutcome createTagSet(const Model::CreateTagSetRequest &request)const;
+			void createTagSetAsync(const Model::CreateTagSetRequest& request, const CreateTagSetAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateTagSetOutcomeCallable createTagSetCallable(const Model::CreateTagSetRequest& request) const;
 			GetFaceSearchUserOutcome getFaceSearchUser(const Model::GetFaceSearchUserRequest &request)const;
 			void getFaceSearchUserAsync(const Model::GetFaceSearchUserRequest& request, const GetFaceSearchUserAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetFaceSearchUserOutcomeCallable getFaceSearchUserCallable(const Model::GetFaceSearchUserRequest& request) const;
@@ -679,12 +687,12 @@ namespace AlibabaCloud
 			CreateCADConversionTaskOutcome createCADConversionTask(const Model::CreateCADConversionTaskRequest &request)const;
 			void createCADConversionTaskAsync(const Model::CreateCADConversionTaskRequest& request, const CreateCADConversionTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateCADConversionTaskOutcomeCallable createCADConversionTaskCallable(const Model::CreateCADConversionTaskRequest& request) const;
-			DeleteFaceJobOutcome deleteFaceJob(const Model::DeleteFaceJobRequest &request)const;
-			void deleteFaceJobAsync(const Model::DeleteFaceJobRequest& request, const DeleteFaceJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			DeleteFaceJobOutcomeCallable deleteFaceJobCallable(const Model::DeleteFaceJobRequest& request) const;
 			GetTagJobOutcome getTagJob(const Model::GetTagJobRequest &request)const;
 			void getTagJobAsync(const Model::GetTagJobRequest& request, const GetTagJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetTagJobOutcomeCallable getTagJobCallable(const Model::GetTagJobRequest& request) const;
+			DeleteFaceJobOutcome deleteFaceJob(const Model::DeleteFaceJobRequest &request)const;
+			void deleteFaceJobAsync(const Model::DeleteFaceJobRequest& request, const DeleteFaceJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteFaceJobOutcomeCallable deleteFaceJobCallable(const Model::DeleteFaceJobRequest& request) const;
 			CreateDocIndexTaskOutcome createDocIndexTask(const Model::CreateDocIndexTaskRequest &request)const;
 			void createDocIndexTaskAsync(const Model::CreateDocIndexTaskRequest& request, const CreateDocIndexTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateDocIndexTaskOutcomeCallable createDocIndexTaskCallable(const Model::CreateDocIndexTaskRequest& request) const;
@@ -742,12 +750,12 @@ namespace AlibabaCloud
 			DeleteDocIndexOutcome deleteDocIndex(const Model::DeleteDocIndexRequest &request)const;
 			void deleteDocIndexAsync(const Model::DeleteDocIndexRequest& request, const DeleteDocIndexAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteDocIndexOutcomeCallable deleteDocIndexCallable(const Model::DeleteDocIndexRequest& request) const;
-			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;
 			GetDocIndexTaskOutcome getDocIndexTask(const Model::GetDocIndexTaskRequest &request)const;
 			void getDocIndexTaskAsync(const Model::GetDocIndexTaskRequest& request, const GetDocIndexTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetDocIndexTaskOutcomeCallable getDocIndexTaskCallable(const Model::GetDocIndexTaskRequest& request) const;
+			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;
 			DeleteTagByUrlOutcome deleteTagByUrl(const Model::DeleteTagByUrlRequest &request)const;
 			void deleteTagByUrlAsync(const Model::DeleteTagByUrlRequest& request, const DeleteTagByUrlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteTagByUrlOutcomeCallable deleteTagByUrlCallable(const Model::DeleteTagByUrlRequest& request) const;
@@ -775,12 +783,12 @@ namespace AlibabaCloud
 			GetPornBatchDetectJobOutcome getPornBatchDetectJob(const Model::GetPornBatchDetectJobRequest &request)const;
 			void getPornBatchDetectJobAsync(const Model::GetPornBatchDetectJobRequest& request, const GetPornBatchDetectJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetPornBatchDetectJobOutcomeCallable getPornBatchDetectJobCallable(const Model::GetPornBatchDetectJobRequest& request) const;
-			DetectClothesOutcome detectClothes(const Model::DetectClothesRequest &request)const;
-			void detectClothesAsync(const Model::DetectClothesRequest& request, const DetectClothesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			DetectClothesOutcomeCallable detectClothesCallable(const Model::DetectClothesRequest& request) const;
 			ListTagJobsOutcome listTagJobs(const Model::ListTagJobsRequest &request)const;
 			void listTagJobsAsync(const Model::ListTagJobsRequest& request, const ListTagJobsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListTagJobsOutcomeCallable listTagJobsCallable(const Model::ListTagJobsRequest& request) const;
+			DetectClothesOutcome detectClothes(const Model::DetectClothesRequest &request)const;
+			void detectClothesAsync(const Model::DetectClothesRequest& request, const DetectClothesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DetectClothesOutcomeCallable detectClothesCallable(const Model::DetectClothesRequest& request) const;
 			DetectLogoOutcome detectLogo(const Model::DetectLogoRequest &request)const;
 			void detectLogoAsync(const Model::DetectLogoRequest& request, const DetectLogoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DetectLogoOutcomeCallable detectLogoCallable(const Model::DetectLogoRequest& request) const;

+ 63 - 0
imm/include/alibabacloud/imm/model/CreateMediaComplexTaskRequest.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_IMM_MODEL_CREATEMEDIACOMPLEXTASKREQUEST_H_
+#define ALIBABACLOUD_IMM_MODEL_CREATEMEDIACOMPLEXTASKREQUEST_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 CreateMediaComplexTaskRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateMediaComplexTaskRequest();
+				~CreateMediaComplexTaskRequest();
+
+				std::string getNotifyTopicName()const;
+				void setNotifyTopicName(const std::string& notifyTopicName);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				std::string getNotifyEndpoint()const;
+				void setNotifyEndpoint(const std::string& notifyEndpoint);
+				std::string getProject()const;
+				void setProject(const std::string& project);
+				std::string getParameters()const;
+				void setParameters(const std::string& parameters);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				std::string notifyTopicName_;
+				std::string regionId_;
+				std::string notifyEndpoint_;
+				std::string project_;
+				std::string parameters_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IMM_MODEL_CREATEMEDIACOMPLEXTASKREQUEST_H_

+ 53 - 0
imm/include/alibabacloud/imm/model/CreateMediaComplexTaskResult.h

@@ -0,0 +1,53 @@
+/*
+ * 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_CREATEMEDIACOMPLEXTASKRESULT_H_
+#define ALIBABACLOUD_IMM_MODEL_CREATEMEDIACOMPLEXTASKRESULT_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 CreateMediaComplexTaskResult : public ServiceResult
+			{
+			public:
+
+
+				CreateMediaComplexTaskResult();
+				explicit CreateMediaComplexTaskResult(const std::string &payload);
+				~CreateMediaComplexTaskResult();
+				std::string getTaskId()const;
+				std::string getTaskType()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string taskId_;
+				std::string taskType_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_IMM_MODEL_CREATEMEDIACOMPLEXTASKRESULT_H_

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

@@ -41,6 +41,8 @@ namespace AlibabaCloud
 				void setProject(const std::string& project);
 				std::string getExternalId()const;
 				void setExternalId(const std::string& externalId);
+				std::string getFacesModifyTimeRange()const;
+				void setFacesModifyTimeRange(const std::string& facesModifyTimeRange);
 				std::string getImageSizeRange()const;
 				void setImageSizeRange(const std::string& imageSizeRange);
 				std::string getRemarksBPrefix()const;
@@ -59,6 +61,8 @@ namespace AlibabaCloud
 				void setLimit(int limit);
 				std::string getRemarksDPrefix()const;
 				void setRemarksDPrefix(const std::string& remarksDPrefix);
+				std::string getTagsModifyTimeRange()const;
+				void setTagsModifyTimeRange(const std::string& tagsModifyTimeRange);
 				std::string getSourceType()const;
 				void setSourceType(const std::string& sourceType);
 				std::string getAgeRange()const;
@@ -92,6 +96,7 @@ namespace AlibabaCloud
 				std::string gender_;
 				std::string project_;
 				std::string externalId_;
+				std::string facesModifyTimeRange_;
 				std::string imageSizeRange_;
 				std::string remarksBPrefix_;
 				std::string accessKeyId_;
@@ -101,6 +106,7 @@ namespace AlibabaCloud
 				std::string oCRContentsMatch_;
 				int limit_;
 				std::string remarksDPrefix_;
+				std::string tagsModifyTimeRange_;
 				std::string sourceType_;
 				std::string ageRange_;
 				std::string order_;

+ 144 - 108
imm/src/ImmClient.cc

@@ -375,72 +375,72 @@ ImmClient::ListFaceSearchGroupImagesOutcomeCallable ImmClient::listFaceSearchGro
 	return task->get_future();
 }
 
-ImmClient::ListSetsOutcome ImmClient::listSets(const ListSetsRequest &request) const
+ImmClient::PutProjectOutcome ImmClient::putProject(const PutProjectRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return ListSetsOutcome(endpointOutcome.error());
+		return PutProjectOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return ListSetsOutcome(ListSetsResult(outcome.result()));
+		return PutProjectOutcome(PutProjectResult(outcome.result()));
 	else
-		return ListSetsOutcome(outcome.error());
+		return PutProjectOutcome(outcome.error());
 }
 
-void ImmClient::listSetsAsync(const ListSetsRequest& request, const ListSetsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void ImmClient::putProjectAsync(const PutProjectRequest& request, const PutProjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, listSets(request), context);
+		handler(this, request, putProject(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-ImmClient::ListSetsOutcomeCallable ImmClient::listSetsCallable(const ListSetsRequest &request) const
+ImmClient::PutProjectOutcomeCallable ImmClient::putProjectCallable(const PutProjectRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<ListSetsOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<PutProjectOutcome()>>(
 			[this, request]()
 			{
-			return this->listSets(request);
+			return this->putProject(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
 	return task->get_future();
 }
 
-ImmClient::PutProjectOutcome ImmClient::putProject(const PutProjectRequest &request) const
+ImmClient::ListSetsOutcome ImmClient::listSets(const ListSetsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return PutProjectOutcome(endpointOutcome.error());
+		return ListSetsOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return PutProjectOutcome(PutProjectResult(outcome.result()));
+		return ListSetsOutcome(ListSetsResult(outcome.result()));
 	else
-		return PutProjectOutcome(outcome.error());
+		return ListSetsOutcome(outcome.error());
 }
 
-void ImmClient::putProjectAsync(const PutProjectRequest& request, const PutProjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void ImmClient::listSetsAsync(const ListSetsRequest& request, const ListSetsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, putProject(request), context);
+		handler(this, request, listSets(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-ImmClient::PutProjectOutcomeCallable ImmClient::putProjectCallable(const PutProjectRequest &request) const
+ImmClient::ListSetsOutcomeCallable ImmClient::listSetsCallable(const ListSetsRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<PutProjectOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<ListSetsOutcome()>>(
 			[this, request]()
 			{
-			return this->putProject(request);
+			return this->listSets(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
@@ -771,72 +771,72 @@ ImmClient::ListFaceSearchGroupsOutcomeCallable ImmClient::listFaceSearchGroupsCa
 	return task->get_future();
 }
 
-ImmClient::DeletePornBatchDetectJobOutcome ImmClient::deletePornBatchDetectJob(const DeletePornBatchDetectJobRequest &request) const
+ImmClient::GetTagSetOutcome ImmClient::getTagSet(const GetTagSetRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return DeletePornBatchDetectJobOutcome(endpointOutcome.error());
+		return GetTagSetOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return DeletePornBatchDetectJobOutcome(DeletePornBatchDetectJobResult(outcome.result()));
+		return GetTagSetOutcome(GetTagSetResult(outcome.result()));
 	else
-		return DeletePornBatchDetectJobOutcome(outcome.error());
+		return GetTagSetOutcome(outcome.error());
 }
 
-void ImmClient::deletePornBatchDetectJobAsync(const DeletePornBatchDetectJobRequest& request, const DeletePornBatchDetectJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void ImmClient::getTagSetAsync(const GetTagSetRequest& request, const GetTagSetAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, deletePornBatchDetectJob(request), context);
+		handler(this, request, getTagSet(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-ImmClient::DeletePornBatchDetectJobOutcomeCallable ImmClient::deletePornBatchDetectJobCallable(const DeletePornBatchDetectJobRequest &request) const
+ImmClient::GetTagSetOutcomeCallable ImmClient::getTagSetCallable(const GetTagSetRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<DeletePornBatchDetectJobOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<GetTagSetOutcome()>>(
 			[this, request]()
 			{
-			return this->deletePornBatchDetectJob(request);
+			return this->getTagSet(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
 	return task->get_future();
 }
 
-ImmClient::GetTagSetOutcome ImmClient::getTagSet(const GetTagSetRequest &request) const
+ImmClient::DeletePornBatchDetectJobOutcome ImmClient::deletePornBatchDetectJob(const DeletePornBatchDetectJobRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return GetTagSetOutcome(endpointOutcome.error());
+		return DeletePornBatchDetectJobOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return GetTagSetOutcome(GetTagSetResult(outcome.result()));
+		return DeletePornBatchDetectJobOutcome(DeletePornBatchDetectJobResult(outcome.result()));
 	else
-		return GetTagSetOutcome(outcome.error());
+		return DeletePornBatchDetectJobOutcome(outcome.error());
 }
 
-void ImmClient::getTagSetAsync(const GetTagSetRequest& request, const GetTagSetAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void ImmClient::deletePornBatchDetectJobAsync(const DeletePornBatchDetectJobRequest& request, const DeletePornBatchDetectJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, getTagSet(request), context);
+		handler(this, request, deletePornBatchDetectJob(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-ImmClient::GetTagSetOutcomeCallable ImmClient::getTagSetCallable(const GetTagSetRequest &request) const
+ImmClient::DeletePornBatchDetectJobOutcomeCallable ImmClient::deletePornBatchDetectJobCallable(const DeletePornBatchDetectJobRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<GetTagSetOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<DeletePornBatchDetectJobOutcome()>>(
 			[this, request]()
 			{
-			return this->getTagSet(request);
+			return this->deletePornBatchDetectJob(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
@@ -1203,6 +1203,42 @@ ImmClient::DeleteTagJobOutcomeCallable ImmClient::deleteTagJobCallable(const Del
 	return task->get_future();
 }
 
+ImmClient::CreateMediaComplexTaskOutcome ImmClient::createMediaComplexTask(const CreateMediaComplexTaskRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateMediaComplexTaskOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateMediaComplexTaskOutcome(CreateMediaComplexTaskResult(outcome.result()));
+	else
+		return CreateMediaComplexTaskOutcome(outcome.error());
+}
+
+void ImmClient::createMediaComplexTaskAsync(const CreateMediaComplexTaskRequest& request, const CreateMediaComplexTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createMediaComplexTask(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ImmClient::CreateMediaComplexTaskOutcomeCallable ImmClient::createMediaComplexTaskCallable(const CreateMediaComplexTaskRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateMediaComplexTaskOutcome()>>(
+			[this, request]()
+			{
+			return this->createMediaComplexTask(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ImmClient::PhotoProcessOutcome ImmClient::photoProcess(const PhotoProcessRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1311,72 +1347,72 @@ ImmClient::GetOfficeConversionTaskOutcomeCallable ImmClient::getOfficeConversion
 	return task->get_future();
 }
 
-ImmClient::CreateTagSetOutcome ImmClient::createTagSet(const CreateTagSetRequest &request) const
+ImmClient::RegistFaceOutcome ImmClient::registFace(const RegistFaceRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return CreateTagSetOutcome(endpointOutcome.error());
+		return RegistFaceOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return CreateTagSetOutcome(CreateTagSetResult(outcome.result()));
+		return RegistFaceOutcome(RegistFaceResult(outcome.result()));
 	else
-		return CreateTagSetOutcome(outcome.error());
+		return RegistFaceOutcome(outcome.error());
 }
 
-void ImmClient::createTagSetAsync(const CreateTagSetRequest& request, const CreateTagSetAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void ImmClient::registFaceAsync(const RegistFaceRequest& request, const RegistFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, createTagSet(request), context);
+		handler(this, request, registFace(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-ImmClient::CreateTagSetOutcomeCallable ImmClient::createTagSetCallable(const CreateTagSetRequest &request) const
+ImmClient::RegistFaceOutcomeCallable ImmClient::registFaceCallable(const RegistFaceRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<CreateTagSetOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<RegistFaceOutcome()>>(
 			[this, request]()
 			{
-			return this->createTagSet(request);
+			return this->registFace(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
 	return task->get_future();
 }
 
-ImmClient::RegistFaceOutcome ImmClient::registFace(const RegistFaceRequest &request) const
+ImmClient::CreateTagSetOutcome ImmClient::createTagSet(const CreateTagSetRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return RegistFaceOutcome(endpointOutcome.error());
+		return CreateTagSetOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return RegistFaceOutcome(RegistFaceResult(outcome.result()));
+		return CreateTagSetOutcome(CreateTagSetResult(outcome.result()));
 	else
-		return RegistFaceOutcome(outcome.error());
+		return CreateTagSetOutcome(outcome.error());
 }
 
-void ImmClient::registFaceAsync(const RegistFaceRequest& request, const RegistFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void ImmClient::createTagSetAsync(const CreateTagSetRequest& request, const CreateTagSetAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, registFace(request), context);
+		handler(this, request, createTagSet(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-ImmClient::RegistFaceOutcomeCallable ImmClient::registFaceCallable(const RegistFaceRequest &request) const
+ImmClient::CreateTagSetOutcomeCallable ImmClient::createTagSetCallable(const CreateTagSetRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<RegistFaceOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<CreateTagSetOutcome()>>(
 			[this, request]()
 			{
-			return this->registFace(request);
+			return this->createTagSet(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
@@ -1887,72 +1923,72 @@ ImmClient::CreateCADConversionTaskOutcomeCallable ImmClient::createCADConversion
 	return task->get_future();
 }
 
-ImmClient::DeleteFaceJobOutcome ImmClient::deleteFaceJob(const DeleteFaceJobRequest &request) const
+ImmClient::GetTagJobOutcome ImmClient::getTagJob(const GetTagJobRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return DeleteFaceJobOutcome(endpointOutcome.error());
+		return GetTagJobOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return DeleteFaceJobOutcome(DeleteFaceJobResult(outcome.result()));
+		return GetTagJobOutcome(GetTagJobResult(outcome.result()));
 	else
-		return DeleteFaceJobOutcome(outcome.error());
+		return GetTagJobOutcome(outcome.error());
 }
 
-void ImmClient::deleteFaceJobAsync(const DeleteFaceJobRequest& request, const DeleteFaceJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void ImmClient::getTagJobAsync(const GetTagJobRequest& request, const GetTagJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, deleteFaceJob(request), context);
+		handler(this, request, getTagJob(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-ImmClient::DeleteFaceJobOutcomeCallable ImmClient::deleteFaceJobCallable(const DeleteFaceJobRequest &request) const
+ImmClient::GetTagJobOutcomeCallable ImmClient::getTagJobCallable(const GetTagJobRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<DeleteFaceJobOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<GetTagJobOutcome()>>(
 			[this, request]()
 			{
-			return this->deleteFaceJob(request);
+			return this->getTagJob(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
 	return task->get_future();
 }
 
-ImmClient::GetTagJobOutcome ImmClient::getTagJob(const GetTagJobRequest &request) const
+ImmClient::DeleteFaceJobOutcome ImmClient::deleteFaceJob(const DeleteFaceJobRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return GetTagJobOutcome(endpointOutcome.error());
+		return DeleteFaceJobOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return GetTagJobOutcome(GetTagJobResult(outcome.result()));
+		return DeleteFaceJobOutcome(DeleteFaceJobResult(outcome.result()));
 	else
-		return GetTagJobOutcome(outcome.error());
+		return DeleteFaceJobOutcome(outcome.error());
 }
 
-void ImmClient::getTagJobAsync(const GetTagJobRequest& request, const GetTagJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void ImmClient::deleteFaceJobAsync(const DeleteFaceJobRequest& request, const DeleteFaceJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, getTagJob(request), context);
+		handler(this, request, deleteFaceJob(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-ImmClient::GetTagJobOutcomeCallable ImmClient::getTagJobCallable(const GetTagJobRequest &request) const
+ImmClient::DeleteFaceJobOutcomeCallable ImmClient::deleteFaceJobCallable(const DeleteFaceJobRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<GetTagJobOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<DeleteFaceJobOutcome()>>(
 			[this, request]()
 			{
-			return this->getTagJob(request);
+			return this->deleteFaceJob(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
@@ -2643,72 +2679,72 @@ ImmClient::DeleteDocIndexOutcomeCallable ImmClient::deleteDocIndexCallable(const
 	return task->get_future();
 }
 
-ImmClient::GetImageJobOutcome ImmClient::getImageJob(const GetImageJobRequest &request) const
+ImmClient::GetDocIndexTaskOutcome ImmClient::getDocIndexTask(const GetDocIndexTaskRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return GetImageJobOutcome(endpointOutcome.error());
+		return GetDocIndexTaskOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return GetImageJobOutcome(GetImageJobResult(outcome.result()));
+		return GetDocIndexTaskOutcome(GetDocIndexTaskResult(outcome.result()));
 	else
-		return GetImageJobOutcome(outcome.error());
+		return GetDocIndexTaskOutcome(outcome.error());
 }
 
-void ImmClient::getImageJobAsync(const GetImageJobRequest& request, const GetImageJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void ImmClient::getDocIndexTaskAsync(const GetDocIndexTaskRequest& request, const GetDocIndexTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, getImageJob(request), context);
+		handler(this, request, getDocIndexTask(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-ImmClient::GetImageJobOutcomeCallable ImmClient::getImageJobCallable(const GetImageJobRequest &request) const
+ImmClient::GetDocIndexTaskOutcomeCallable ImmClient::getDocIndexTaskCallable(const GetDocIndexTaskRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<GetImageJobOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<GetDocIndexTaskOutcome()>>(
 			[this, request]()
 			{
-			return this->getImageJob(request);
+			return this->getDocIndexTask(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
 	return task->get_future();
 }
 
-ImmClient::GetDocIndexTaskOutcome ImmClient::getDocIndexTask(const GetDocIndexTaskRequest &request) const
+ImmClient::GetImageJobOutcome ImmClient::getImageJob(const GetImageJobRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return GetDocIndexTaskOutcome(endpointOutcome.error());
+		return GetImageJobOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return GetDocIndexTaskOutcome(GetDocIndexTaskResult(outcome.result()));
+		return GetImageJobOutcome(GetImageJobResult(outcome.result()));
 	else
-		return GetDocIndexTaskOutcome(outcome.error());
+		return GetImageJobOutcome(outcome.error());
 }
 
-void ImmClient::getDocIndexTaskAsync(const GetDocIndexTaskRequest& request, const GetDocIndexTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void ImmClient::getImageJobAsync(const GetImageJobRequest& request, const GetImageJobAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, getDocIndexTask(request), context);
+		handler(this, request, getImageJob(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-ImmClient::GetDocIndexTaskOutcomeCallable ImmClient::getDocIndexTaskCallable(const GetDocIndexTaskRequest &request) const
+ImmClient::GetImageJobOutcomeCallable ImmClient::getImageJobCallable(const GetImageJobRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<GetDocIndexTaskOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<GetImageJobOutcome()>>(
 			[this, request]()
 			{
-			return this->getDocIndexTask(request);
+			return this->getImageJob(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
@@ -3039,72 +3075,72 @@ ImmClient::GetPornBatchDetectJobOutcomeCallable ImmClient::getPornBatchDetectJob
 	return task->get_future();
 }
 
-ImmClient::DetectClothesOutcome ImmClient::detectClothes(const DetectClothesRequest &request) const
+ImmClient::ListTagJobsOutcome ImmClient::listTagJobs(const ListTagJobsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return DetectClothesOutcome(endpointOutcome.error());
+		return ListTagJobsOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return DetectClothesOutcome(DetectClothesResult(outcome.result()));
+		return ListTagJobsOutcome(ListTagJobsResult(outcome.result()));
 	else
-		return DetectClothesOutcome(outcome.error());
+		return ListTagJobsOutcome(outcome.error());
 }
 
-void ImmClient::detectClothesAsync(const DetectClothesRequest& request, const DetectClothesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void ImmClient::listTagJobsAsync(const ListTagJobsRequest& request, const ListTagJobsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, detectClothes(request), context);
+		handler(this, request, listTagJobs(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-ImmClient::DetectClothesOutcomeCallable ImmClient::detectClothesCallable(const DetectClothesRequest &request) const
+ImmClient::ListTagJobsOutcomeCallable ImmClient::listTagJobsCallable(const ListTagJobsRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<DetectClothesOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<ListTagJobsOutcome()>>(
 			[this, request]()
 			{
-			return this->detectClothes(request);
+			return this->listTagJobs(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
 	return task->get_future();
 }
 
-ImmClient::ListTagJobsOutcome ImmClient::listTagJobs(const ListTagJobsRequest &request) const
+ImmClient::DetectClothesOutcome ImmClient::detectClothes(const DetectClothesRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return ListTagJobsOutcome(endpointOutcome.error());
+		return DetectClothesOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return ListTagJobsOutcome(ListTagJobsResult(outcome.result()));
+		return DetectClothesOutcome(DetectClothesResult(outcome.result()));
 	else
-		return ListTagJobsOutcome(outcome.error());
+		return DetectClothesOutcome(outcome.error());
 }
 
-void ImmClient::listTagJobsAsync(const ListTagJobsRequest& request, const ListTagJobsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void ImmClient::detectClothesAsync(const DetectClothesRequest& request, const DetectClothesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, listTagJobs(request), context);
+		handler(this, request, detectClothes(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-ImmClient::ListTagJobsOutcomeCallable ImmClient::listTagJobsCallable(const ListTagJobsRequest &request) const
+ImmClient::DetectClothesOutcomeCallable ImmClient::detectClothesCallable(const DetectClothesRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<ListTagJobsOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<DetectClothesOutcome()>>(
 			[this, request]()
 			{
-			return this->listTagJobs(request);
+			return this->detectClothes(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));

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

@@ -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.
+ */
+
+#include <alibabacloud/imm/model/CreateMediaComplexTaskRequest.h>
+
+using AlibabaCloud::Imm::Model::CreateMediaComplexTaskRequest;
+
+CreateMediaComplexTaskRequest::CreateMediaComplexTaskRequest() :
+	RpcServiceRequest("imm", "2017-09-06", "CreateMediaComplexTask")
+{}
+
+CreateMediaComplexTaskRequest::~CreateMediaComplexTaskRequest()
+{}
+
+std::string CreateMediaComplexTaskRequest::getNotifyTopicName()const
+{
+	return notifyTopicName_;
+}
+
+void CreateMediaComplexTaskRequest::setNotifyTopicName(const std::string& notifyTopicName)
+{
+	notifyTopicName_ = notifyTopicName;
+	setCoreParameter("NotifyTopicName", notifyTopicName);
+}
+
+std::string CreateMediaComplexTaskRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void CreateMediaComplexTaskRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setCoreParameter("RegionId", regionId);
+}
+
+std::string CreateMediaComplexTaskRequest::getNotifyEndpoint()const
+{
+	return notifyEndpoint_;
+}
+
+void CreateMediaComplexTaskRequest::setNotifyEndpoint(const std::string& notifyEndpoint)
+{
+	notifyEndpoint_ = notifyEndpoint;
+	setCoreParameter("NotifyEndpoint", notifyEndpoint);
+}
+
+std::string CreateMediaComplexTaskRequest::getProject()const
+{
+	return project_;
+}
+
+void CreateMediaComplexTaskRequest::setProject(const std::string& project)
+{
+	project_ = project;
+	setCoreParameter("Project", project);
+}
+
+std::string CreateMediaComplexTaskRequest::getParameters()const
+{
+	return parameters_;
+}
+
+void CreateMediaComplexTaskRequest::setParameters(const std::string& parameters)
+{
+	parameters_ = parameters;
+	setCoreParameter("Parameters", parameters);
+}
+
+std::string CreateMediaComplexTaskRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void CreateMediaComplexTaskRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setCoreParameter("AccessKeyId", accessKeyId);
+}
+

+ 62 - 0
imm/src/model/CreateMediaComplexTaskResult.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/CreateMediaComplexTaskResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Imm;
+using namespace AlibabaCloud::Imm::Model;
+
+CreateMediaComplexTaskResult::CreateMediaComplexTaskResult() :
+	ServiceResult()
+{}
+
+CreateMediaComplexTaskResult::CreateMediaComplexTaskResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateMediaComplexTaskResult::~CreateMediaComplexTaskResult()
+{}
+
+void CreateMediaComplexTaskResult::parse(const std::string &payload)
+{
+	Json::CharReaderBuilder builder;
+	Json::CharReader *reader = builder.newCharReader();
+	Json::Value *val;
+	Json::Value value;
+	JSONCPP_STRING *errs;
+	reader->parse(payload.data(), payload.data() + payload.size(), val, errs);
+	value = *val;
+	setRequestId(value["RequestId"].asString());
+	if(!value["TaskId"].isNull())
+		taskId_ = value["TaskId"].asString();
+	if(!value["TaskType"].isNull())
+		taskType_ = value["TaskType"].asString();
+
+}
+
+std::string CreateMediaComplexTaskResult::getTaskId()const
+{
+	return taskId_;
+}
+
+std::string CreateMediaComplexTaskResult::getTaskType()const
+{
+	return taskType_;
+}
+

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

@@ -58,6 +58,17 @@ void FindImagesRequest::setExternalId(const std::string& externalId)
 	setCoreParameter("ExternalId", externalId);
 }
 
+std::string FindImagesRequest::getFacesModifyTimeRange()const
+{
+	return facesModifyTimeRange_;
+}
+
+void FindImagesRequest::setFacesModifyTimeRange(const std::string& facesModifyTimeRange)
+{
+	facesModifyTimeRange_ = facesModifyTimeRange;
+	setCoreParameter("FacesModifyTimeRange", facesModifyTimeRange);
+}
+
 std::string FindImagesRequest::getImageSizeRange()const
 {
 	return imageSizeRange_;
@@ -157,6 +168,17 @@ void FindImagesRequest::setRemarksDPrefix(const std::string& remarksDPrefix)
 	setCoreParameter("RemarksDPrefix", remarksDPrefix);
 }
 
+std::string FindImagesRequest::getTagsModifyTimeRange()const
+{
+	return tagsModifyTimeRange_;
+}
+
+void FindImagesRequest::setTagsModifyTimeRange(const std::string& tagsModifyTimeRange)
+{
+	tagsModifyTimeRange_ = tagsModifyTimeRange;
+	setCoreParameter("TagsModifyTimeRange", tagsModifyTimeRange);
+}
+
 std::string FindImagesRequest::getSourceType()const
 {
 	return sourceType_;