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

LINKFACE SDK Auto Released By jhon.zh,Version:1.21.3

Signed-off-by: yixiong.jxy <yixiong.jxy@alibaba-inc.com>
yixiong.jxy 8 лет назад
Родитель
Сommit
7282a6a906
67 измененных файлов с 4582 добавлено и 2 удалено
  1. 3 0
      CHANGELOG
  2. 2 1
      CMakeLists.txt
  3. 1 1
      VERSION
  4. 142 0
      linkface/CMakeLists.txt
  5. 166 0
      linkface/include/alibabacloud/linkface/LinkFaceClient.h
  6. 32 0
      linkface/include/alibabacloud/linkface/LinkFaceExport.h
  7. 48 0
      linkface/include/alibabacloud/linkface/model/CreateGroupRequest.h
  8. 55 0
      linkface/include/alibabacloud/linkface/model/CreateGroupResult.h
  9. 51 0
      linkface/include/alibabacloud/linkface/model/DeleteFaceRequest.h
  10. 55 0
      linkface/include/alibabacloud/linkface/model/DeleteFaceResult.h
  11. 48 0
      linkface/include/alibabacloud/linkface/model/DeleteGroupRequest.h
  12. 55 0
      linkface/include/alibabacloud/linkface/model/DeleteGroupResult.h
  13. 51 0
      linkface/include/alibabacloud/linkface/model/LinkFaceRequest.h
  14. 55 0
      linkface/include/alibabacloud/linkface/model/LinkFaceResult.h
  15. 48 0
      linkface/include/alibabacloud/linkface/model/QueryAddUserInfoRequest.h
  16. 74 0
      linkface/include/alibabacloud/linkface/model/QueryAddUserInfoResult.h
  17. 51 0
      linkface/include/alibabacloud/linkface/model/QueryAllGroupsRequest.h
  18. 69 0
      linkface/include/alibabacloud/linkface/model/QueryAllGroupsResult.h
  19. 57 0
      linkface/include/alibabacloud/linkface/model/QueryAuthenticationRequest.h
  20. 72 0
      linkface/include/alibabacloud/linkface/model/QueryAuthenticationResult.h
  21. 48 0
      linkface/include/alibabacloud/linkface/model/QueryFaceRequest.h
  22. 68 0
      linkface/include/alibabacloud/linkface/model/QueryFaceResult.h
  23. 54 0
      linkface/include/alibabacloud/linkface/model/QueryGroupUsersRequest.h
  24. 69 0
      linkface/include/alibabacloud/linkface/model/QueryGroupUsersResult.h
  25. 54 0
      linkface/include/alibabacloud/linkface/model/QueryLicensesRequest.h
  26. 71 0
      linkface/include/alibabacloud/linkface/model/QueryLicensesResult.h
  27. 48 0
      linkface/include/alibabacloud/linkface/model/QuerySyncPicScheduleRequest.h
  28. 61 0
      linkface/include/alibabacloud/linkface/model/QuerySyncPicScheduleResult.h
  29. 54 0
      linkface/include/alibabacloud/linkface/model/RegisterFaceRequest.h
  30. 55 0
      linkface/include/alibabacloud/linkface/model/RegisterFaceResult.h
  31. 51 0
      linkface/include/alibabacloud/linkface/model/SyncFacePicturesRequest.h
  32. 55 0
      linkface/include/alibabacloud/linkface/model/SyncFacePicturesResult.h
  33. 51 0
      linkface/include/alibabacloud/linkface/model/UnlinkFaceRequest.h
  34. 55 0
      linkface/include/alibabacloud/linkface/model/UnlinkFaceResult.h
  35. 51 0
      linkface/include/alibabacloud/linkface/model/UpdateFaceRequest.h
  36. 55 0
      linkface/include/alibabacloud/linkface/model/UpdateFaceResult.h
  37. 593 0
      linkface/src/LinkFaceClient.cc
  38. 38 0
      linkface/src/model/CreateGroupRequest.cc
  39. 66 0
      linkface/src/model/CreateGroupResult.cc
  40. 49 0
      linkface/src/model/DeleteFaceRequest.cc
  41. 66 0
      linkface/src/model/DeleteFaceResult.cc
  42. 38 0
      linkface/src/model/DeleteGroupRequest.cc
  43. 66 0
      linkface/src/model/DeleteGroupResult.cc
  44. 49 0
      linkface/src/model/LinkFaceRequest.cc
  45. 66 0
      linkface/src/model/LinkFaceResult.cc
  46. 38 0
      linkface/src/model/QueryAddUserInfoRequest.cc
  47. 96 0
      linkface/src/model/QueryAddUserInfoResult.cc
  48. 49 0
      linkface/src/model/QueryAllGroupsRequest.cc
  49. 103 0
      linkface/src/model/QueryAllGroupsResult.cc
  50. 71 0
      linkface/src/model/QueryAuthenticationRequest.cc
  51. 113 0
      linkface/src/model/QueryAuthenticationResult.cc
  52. 38 0
      linkface/src/model/QueryFaceRequest.cc
  53. 87 0
      linkface/src/model/QueryFaceResult.cc
  54. 60 0
      linkface/src/model/QueryGroupUsersRequest.cc
  55. 107 0
      linkface/src/model/QueryGroupUsersResult.cc
  56. 60 0
      linkface/src/model/QueryLicensesRequest.cc
  57. 111 0
      linkface/src/model/QueryLicensesResult.cc
  58. 38 0
      linkface/src/model/QuerySyncPicScheduleRequest.cc
  59. 74 0
      linkface/src/model/QuerySyncPicScheduleResult.cc
  60. 60 0
      linkface/src/model/RegisterFaceRequest.cc
  61. 66 0
      linkface/src/model/RegisterFaceResult.cc
  62. 49 0
      linkface/src/model/SyncFacePicturesRequest.cc
  63. 66 0
      linkface/src/model/SyncFacePicturesResult.cc
  64. 49 0
      linkface/src/model/UnlinkFaceRequest.cc
  65. 66 0
      linkface/src/model/UnlinkFaceResult.cc
  66. 49 0
      linkface/src/model/UpdateFaceRequest.cc
  67. 66 0
      linkface/src/model/UpdateFaceResult.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2018-08-08 Version: 1.21.3
+1, First release.
+
 2018-08-07 Version: 1.21.2
 2018-08-07 Version: 1.21.2
 1, Add api GetGatewayBySubDevice.
 1, Add api GetGatewayBySubDevice.
 2, Modified the time related response parameters.
 2, Modified the time related response parameters.

+ 2 - 1
CMakeLists.txt

@@ -83,4 +83,5 @@ add_subdirectory(chatbot)
 add_subdirectory(teslastream)
 add_subdirectory(teslastream)
 add_subdirectory(mopen)
 add_subdirectory(mopen)
 add_subdirectory(mts)
 add_subdirectory(mts)
-add_subdirectory(iot)
+add_subdirectory(iot)
+add_subdirectory(linkface)

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.21.2
+1.21.3

+ 142 - 0
linkface/CMakeLists.txt

@@ -0,0 +1,142 @@
+#
+# 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.
+#
+
+set(public_header_dir ${CMAKE_CURRENT_SOURCE_DIR}/../include)
+
+set(linkface_public_header 
+	include/alibabacloud/linkface/LinkFaceClient.h
+	include/alibabacloud/linkface/LinkFaceExport.h )
+
+set(linkface_public_header_model 
+	include/alibabacloud/linkface/model/UnlinkFaceRequest.h
+	include/alibabacloud/linkface/model/UnlinkFaceResult.h
+	include/alibabacloud/linkface/model/UpdateFaceRequest.h
+	include/alibabacloud/linkface/model/UpdateFaceResult.h
+	include/alibabacloud/linkface/model/QuerySyncPicScheduleRequest.h
+	include/alibabacloud/linkface/model/QuerySyncPicScheduleResult.h
+	include/alibabacloud/linkface/model/SyncFacePicturesRequest.h
+	include/alibabacloud/linkface/model/SyncFacePicturesResult.h
+	include/alibabacloud/linkface/model/CreateGroupRequest.h
+	include/alibabacloud/linkface/model/CreateGroupResult.h
+	include/alibabacloud/linkface/model/DeleteGroupRequest.h
+	include/alibabacloud/linkface/model/DeleteGroupResult.h
+	include/alibabacloud/linkface/model/DeleteFaceRequest.h
+	include/alibabacloud/linkface/model/DeleteFaceResult.h
+	include/alibabacloud/linkface/model/QueryAuthenticationRequest.h
+	include/alibabacloud/linkface/model/QueryAuthenticationResult.h
+	include/alibabacloud/linkface/model/QueryGroupUsersRequest.h
+	include/alibabacloud/linkface/model/QueryGroupUsersResult.h
+	include/alibabacloud/linkface/model/LinkFaceRequest.h
+	include/alibabacloud/linkface/model/LinkFaceResult.h
+	include/alibabacloud/linkface/model/QueryAllGroupsRequest.h
+	include/alibabacloud/linkface/model/QueryAllGroupsResult.h
+	include/alibabacloud/linkface/model/RegisterFaceRequest.h
+	include/alibabacloud/linkface/model/RegisterFaceResult.h
+	include/alibabacloud/linkface/model/QueryAddUserInfoRequest.h
+	include/alibabacloud/linkface/model/QueryAddUserInfoResult.h
+	include/alibabacloud/linkface/model/QueryLicensesRequest.h
+	include/alibabacloud/linkface/model/QueryLicensesResult.h
+	include/alibabacloud/linkface/model/QueryFaceRequest.h
+	include/alibabacloud/linkface/model/QueryFaceResult.h )
+
+set(linkface_src 
+	src/LinkFaceClient.cc
+	src/model/UnlinkFaceRequest.cc
+	src/model/UnlinkFaceResult.cc
+	src/model/UpdateFaceRequest.cc
+	src/model/UpdateFaceResult.cc
+	src/model/QuerySyncPicScheduleRequest.cc
+	src/model/QuerySyncPicScheduleResult.cc
+	src/model/SyncFacePicturesRequest.cc
+	src/model/SyncFacePicturesResult.cc
+	src/model/CreateGroupRequest.cc
+	src/model/CreateGroupResult.cc
+	src/model/DeleteGroupRequest.cc
+	src/model/DeleteGroupResult.cc
+	src/model/DeleteFaceRequest.cc
+	src/model/DeleteFaceResult.cc
+	src/model/QueryAuthenticationRequest.cc
+	src/model/QueryAuthenticationResult.cc
+	src/model/QueryGroupUsersRequest.cc
+	src/model/QueryGroupUsersResult.cc
+	src/model/LinkFaceRequest.cc
+	src/model/LinkFaceResult.cc
+	src/model/QueryAllGroupsRequest.cc
+	src/model/QueryAllGroupsResult.cc
+	src/model/RegisterFaceRequest.cc
+	src/model/RegisterFaceResult.cc
+	src/model/QueryAddUserInfoRequest.cc
+	src/model/QueryAddUserInfoResult.cc
+	src/model/QueryLicensesRequest.cc
+	src/model/QueryLicensesResult.cc
+	src/model/QueryFaceRequest.cc
+	src/model/QueryFaceResult.cc )
+
+add_library(linkface ${LIB_TYPE}
+	${linkface_public_header}
+	${linkface_public_header_model}
+	${linkface_src})
+
+set_target_properties(linkface
+	PROPERTIES
+	LINKER_LANGUAGE CXX
+	ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
+	LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
+	RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+	OUTPUT_NAME ${TARGET_OUTPUT_NAME_PREFIX}linkface
+	)
+
+if(${LIB_TYPE} STREQUAL "SHARED")
+	set_target_properties(linkface
+		PROPERTIES
+		DEFINE_SYMBOL ALIBABACLOUD_LINKFACE_LIBRARY)
+endif()
+
+target_include_directories(linkface
+	PRIVATE include
+		${CMAKE_SOURCE_DIR}/core/include
+	)
+target_link_libraries(linkface
+	core)
+
+if(CMAKE_HOST_WIN32)
+	ExternalProject_Get_Property(jsoncpp INSTALL_DIR)
+	set(jsoncpp_install_dir ${INSTALL_DIR})
+	add_dependencies(linkface
+		jsoncpp)
+	target_include_directories(linkface
+		PRIVATE	${jsoncpp_install_dir}/include)
+	target_link_libraries(linkface
+		${jsoncpp_install_dir}/lib/jsoncpp.lib)
+	set_target_properties(linkface
+    	PROPERTIES
+    		COMPILE_OPTIONS "/bigobj")
+else()
+	target_include_directories(linkface
+		PRIVATE /usr/include/jsoncpp)
+	target_link_libraries(linkface
+		jsoncpp)
+endif()
+
+install(FILES ${linkface_public_header}
+	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/linkface)
+install(FILES ${linkface_public_header_model}
+	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/linkface/model)
+install(TARGETS linkface
+	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+	)

+ 166 - 0
linkface/include/alibabacloud/linkface/LinkFaceClient.h

@@ -0,0 +1,166 @@
+/*
+ * 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_LINKFACE_LINKFACECLIENT_H_
+#define ALIBABACLOUD_LINKFACE_LINKFACECLIENT_H_
+
+#include <future>
+#include <alibabacloud/core/AsyncCallerContext.h>
+#include <alibabacloud/core/EndpointProvider.h>
+#include <alibabacloud/core/RpcServiceClient.h>
+#include "LinkFaceExport.h"
+#include "model/UnlinkFaceRequest.h"
+#include "model/UnlinkFaceResult.h"
+#include "model/UpdateFaceRequest.h"
+#include "model/UpdateFaceResult.h"
+#include "model/QuerySyncPicScheduleRequest.h"
+#include "model/QuerySyncPicScheduleResult.h"
+#include "model/SyncFacePicturesRequest.h"
+#include "model/SyncFacePicturesResult.h"
+#include "model/CreateGroupRequest.h"
+#include "model/CreateGroupResult.h"
+#include "model/DeleteGroupRequest.h"
+#include "model/DeleteGroupResult.h"
+#include "model/DeleteFaceRequest.h"
+#include "model/DeleteFaceResult.h"
+#include "model/QueryAuthenticationRequest.h"
+#include "model/QueryAuthenticationResult.h"
+#include "model/QueryGroupUsersRequest.h"
+#include "model/QueryGroupUsersResult.h"
+#include "model/LinkFaceRequest.h"
+#include "model/LinkFaceResult.h"
+#include "model/QueryAllGroupsRequest.h"
+#include "model/QueryAllGroupsResult.h"
+#include "model/RegisterFaceRequest.h"
+#include "model/RegisterFaceResult.h"
+#include "model/QueryAddUserInfoRequest.h"
+#include "model/QueryAddUserInfoResult.h"
+#include "model/QueryLicensesRequest.h"
+#include "model/QueryLicensesResult.h"
+#include "model/QueryFaceRequest.h"
+#include "model/QueryFaceResult.h"
+
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		class ALIBABACLOUD_LINKFACE_EXPORT LinkFaceClient : public RpcServiceClient
+		{
+		public:
+			typedef Outcome<Error, Model::UnlinkFaceResult> UnlinkFaceOutcome;
+			typedef std::future<UnlinkFaceOutcome> UnlinkFaceOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::UnlinkFaceRequest&, const UnlinkFaceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UnlinkFaceAsyncHandler;
+			typedef Outcome<Error, Model::UpdateFaceResult> UpdateFaceOutcome;
+			typedef std::future<UpdateFaceOutcome> UpdateFaceOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::UpdateFaceRequest&, const UpdateFaceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateFaceAsyncHandler;
+			typedef Outcome<Error, Model::QuerySyncPicScheduleResult> QuerySyncPicScheduleOutcome;
+			typedef std::future<QuerySyncPicScheduleOutcome> QuerySyncPicScheduleOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::QuerySyncPicScheduleRequest&, const QuerySyncPicScheduleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QuerySyncPicScheduleAsyncHandler;
+			typedef Outcome<Error, Model::SyncFacePicturesResult> SyncFacePicturesOutcome;
+			typedef std::future<SyncFacePicturesOutcome> SyncFacePicturesOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::SyncFacePicturesRequest&, const SyncFacePicturesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SyncFacePicturesAsyncHandler;
+			typedef Outcome<Error, Model::CreateGroupResult> CreateGroupOutcome;
+			typedef std::future<CreateGroupOutcome> CreateGroupOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::CreateGroupRequest&, const CreateGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateGroupAsyncHandler;
+			typedef Outcome<Error, Model::DeleteGroupResult> DeleteGroupOutcome;
+			typedef std::future<DeleteGroupOutcome> DeleteGroupOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::DeleteGroupRequest&, const DeleteGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteGroupAsyncHandler;
+			typedef Outcome<Error, Model::DeleteFaceResult> DeleteFaceOutcome;
+			typedef std::future<DeleteFaceOutcome> DeleteFaceOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::DeleteFaceRequest&, const DeleteFaceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteFaceAsyncHandler;
+			typedef Outcome<Error, Model::QueryAuthenticationResult> QueryAuthenticationOutcome;
+			typedef std::future<QueryAuthenticationOutcome> QueryAuthenticationOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::QueryAuthenticationRequest&, const QueryAuthenticationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryAuthenticationAsyncHandler;
+			typedef Outcome<Error, Model::QueryGroupUsersResult> QueryGroupUsersOutcome;
+			typedef std::future<QueryGroupUsersOutcome> QueryGroupUsersOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::QueryGroupUsersRequest&, const QueryGroupUsersOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryGroupUsersAsyncHandler;
+			typedef Outcome<Error, Model::LinkFaceResult> LinkFaceOutcome;
+			typedef std::future<LinkFaceOutcome> LinkFaceOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::LinkFaceRequest&, const LinkFaceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> LinkFaceAsyncHandler;
+			typedef Outcome<Error, Model::QueryAllGroupsResult> QueryAllGroupsOutcome;
+			typedef std::future<QueryAllGroupsOutcome> QueryAllGroupsOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::QueryAllGroupsRequest&, const QueryAllGroupsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryAllGroupsAsyncHandler;
+			typedef Outcome<Error, Model::RegisterFaceResult> RegisterFaceOutcome;
+			typedef std::future<RegisterFaceOutcome> RegisterFaceOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::RegisterFaceRequest&, const RegisterFaceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RegisterFaceAsyncHandler;
+			typedef Outcome<Error, Model::QueryAddUserInfoResult> QueryAddUserInfoOutcome;
+			typedef std::future<QueryAddUserInfoOutcome> QueryAddUserInfoOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::QueryAddUserInfoRequest&, const QueryAddUserInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryAddUserInfoAsyncHandler;
+			typedef Outcome<Error, Model::QueryLicensesResult> QueryLicensesOutcome;
+			typedef std::future<QueryLicensesOutcome> QueryLicensesOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::QueryLicensesRequest&, const QueryLicensesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryLicensesAsyncHandler;
+			typedef Outcome<Error, Model::QueryFaceResult> QueryFaceOutcome;
+			typedef std::future<QueryFaceOutcome> QueryFaceOutcomeCallable;
+			typedef std::function<void(const LinkFaceClient*, const Model::QueryFaceRequest&, const QueryFaceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryFaceAsyncHandler;
+
+			LinkFaceClient(const Credentials &credentials, const ClientConfiguration &configuration);
+			LinkFaceClient(const std::shared_ptr<CredentialsProvider> &credentialsProvider, const ClientConfiguration &configuration);
+			LinkFaceClient(const std::string &accessKeyId, const std::string &accessKeySecret, const ClientConfiguration &configuration);
+			~LinkFaceClient();
+			UnlinkFaceOutcome unlinkFace(const Model::UnlinkFaceRequest &request)const;
+			void unlinkFaceAsync(const Model::UnlinkFaceRequest& request, const UnlinkFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UnlinkFaceOutcomeCallable unlinkFaceCallable(const Model::UnlinkFaceRequest& request) const;
+			UpdateFaceOutcome updateFace(const Model::UpdateFaceRequest &request)const;
+			void updateFaceAsync(const Model::UpdateFaceRequest& request, const UpdateFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateFaceOutcomeCallable updateFaceCallable(const Model::UpdateFaceRequest& request) const;
+			QuerySyncPicScheduleOutcome querySyncPicSchedule(const Model::QuerySyncPicScheduleRequest &request)const;
+			void querySyncPicScheduleAsync(const Model::QuerySyncPicScheduleRequest& request, const QuerySyncPicScheduleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QuerySyncPicScheduleOutcomeCallable querySyncPicScheduleCallable(const Model::QuerySyncPicScheduleRequest& request) const;
+			SyncFacePicturesOutcome syncFacePictures(const Model::SyncFacePicturesRequest &request)const;
+			void syncFacePicturesAsync(const Model::SyncFacePicturesRequest& request, const SyncFacePicturesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SyncFacePicturesOutcomeCallable syncFacePicturesCallable(const Model::SyncFacePicturesRequest& request) const;
+			CreateGroupOutcome createGroup(const Model::CreateGroupRequest &request)const;
+			void createGroupAsync(const Model::CreateGroupRequest& request, const CreateGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateGroupOutcomeCallable createGroupCallable(const Model::CreateGroupRequest& request) const;
+			DeleteGroupOutcome deleteGroup(const Model::DeleteGroupRequest &request)const;
+			void deleteGroupAsync(const Model::DeleteGroupRequest& request, const DeleteGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteGroupOutcomeCallable deleteGroupCallable(const Model::DeleteGroupRequest& request) const;
+			DeleteFaceOutcome deleteFace(const Model::DeleteFaceRequest &request)const;
+			void deleteFaceAsync(const Model::DeleteFaceRequest& request, const DeleteFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteFaceOutcomeCallable deleteFaceCallable(const Model::DeleteFaceRequest& request) const;
+			QueryAuthenticationOutcome queryAuthentication(const Model::QueryAuthenticationRequest &request)const;
+			void queryAuthenticationAsync(const Model::QueryAuthenticationRequest& request, const QueryAuthenticationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryAuthenticationOutcomeCallable queryAuthenticationCallable(const Model::QueryAuthenticationRequest& request) const;
+			QueryGroupUsersOutcome queryGroupUsers(const Model::QueryGroupUsersRequest &request)const;
+			void queryGroupUsersAsync(const Model::QueryGroupUsersRequest& request, const QueryGroupUsersAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryGroupUsersOutcomeCallable queryGroupUsersCallable(const Model::QueryGroupUsersRequest& request) const;
+			LinkFaceOutcome linkFace(const Model::LinkFaceRequest &request)const;
+			void linkFaceAsync(const Model::LinkFaceRequest& request, const LinkFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			LinkFaceOutcomeCallable linkFaceCallable(const Model::LinkFaceRequest& request) const;
+			QueryAllGroupsOutcome queryAllGroups(const Model::QueryAllGroupsRequest &request)const;
+			void queryAllGroupsAsync(const Model::QueryAllGroupsRequest& request, const QueryAllGroupsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryAllGroupsOutcomeCallable queryAllGroupsCallable(const Model::QueryAllGroupsRequest& request) const;
+			RegisterFaceOutcome registerFace(const Model::RegisterFaceRequest &request)const;
+			void registerFaceAsync(const Model::RegisterFaceRequest& request, const RegisterFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			RegisterFaceOutcomeCallable registerFaceCallable(const Model::RegisterFaceRequest& request) const;
+			QueryAddUserInfoOutcome queryAddUserInfo(const Model::QueryAddUserInfoRequest &request)const;
+			void queryAddUserInfoAsync(const Model::QueryAddUserInfoRequest& request, const QueryAddUserInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryAddUserInfoOutcomeCallable queryAddUserInfoCallable(const Model::QueryAddUserInfoRequest& request) const;
+			QueryLicensesOutcome queryLicenses(const Model::QueryLicensesRequest &request)const;
+			void queryLicensesAsync(const Model::QueryLicensesRequest& request, const QueryLicensesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryLicensesOutcomeCallable queryLicensesCallable(const Model::QueryLicensesRequest& request) const;
+			QueryFaceOutcome queryFace(const Model::QueryFaceRequest &request)const;
+			void queryFaceAsync(const Model::QueryFaceRequest& request, const QueryFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryFaceOutcomeCallable queryFaceCallable(const Model::QueryFaceRequest& request) const;
+	
+		private:
+			std::shared_ptr<EndpointProvider> endpointProvider_;
+		};
+	}
+}
+
+#endif // !ALIBABACLOUD_LINKFACE_LINKFACECLIENT_H_

+ 32 - 0
linkface/include/alibabacloud/linkface/LinkFaceExport.h

@@ -0,0 +1,32 @@
+/*
+ * 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_LINKFACE_LINKFACEEXPORT_H_
+#define ALIBABACLOUD_LINKFACE_LINKFACEEXPORT_H_
+
+#include <alibabacloud/core/Global.h>
+
+#if defined(ALIBABACLOUD_SHARED)
+#	if defined(ALIBABACLOUD_LINKFACE_LIBRARY)
+#		define ALIBABACLOUD_LINKFACE_EXPORT ALIBABACLOUD_DECL_EXPORT
+#	else
+#		define ALIBABACLOUD_LINKFACE_EXPORT ALIBABACLOUD_DECL_IMPORT
+#	endif
+#else
+#	define ALIBABACLOUD_LINKFACE_EXPORT
+#endif
+
+#endif // !ALIBABACLOUD_LINKFACE_LINKFACEEXPORT_H_

+ 48 - 0
linkface/include/alibabacloud/linkface/model/CreateGroupRequest.h

@@ -0,0 +1,48 @@
+/*
+ * 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_LINKFACE_MODEL_CREATEGROUPREQUEST_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_CREATEGROUPREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT CreateGroupRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateGroupRequest();
+				~CreateGroupRequest();
+
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+
+            private:
+				std::string groupId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_CREATEGROUPREQUEST_H_

+ 55 - 0
linkface/include/alibabacloud/linkface/model/CreateGroupResult.h

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

+ 51 - 0
linkface/include/alibabacloud/linkface/model/DeleteFaceRequest.h

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

+ 55 - 0
linkface/include/alibabacloud/linkface/model/DeleteFaceResult.h

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

+ 48 - 0
linkface/include/alibabacloud/linkface/model/DeleteGroupRequest.h

@@ -0,0 +1,48 @@
+/*
+ * 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_LINKFACE_MODEL_DELETEGROUPREQUEST_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_DELETEGROUPREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT DeleteGroupRequest : public RpcServiceRequest
+			{
+
+			public:
+				DeleteGroupRequest();
+				~DeleteGroupRequest();
+
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+
+            private:
+				std::string groupId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_DELETEGROUPREQUEST_H_

+ 55 - 0
linkface/include/alibabacloud/linkface/model/DeleteGroupResult.h

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

+ 51 - 0
linkface/include/alibabacloud/linkface/model/LinkFaceRequest.h

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

+ 55 - 0
linkface/include/alibabacloud/linkface/model/LinkFaceResult.h

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

+ 48 - 0
linkface/include/alibabacloud/linkface/model/QueryAddUserInfoRequest.h

@@ -0,0 +1,48 @@
+/*
+ * 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_LINKFACE_MODEL_QUERYADDUSERINFOREQUEST_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_QUERYADDUSERINFOREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT QueryAddUserInfoRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryAddUserInfoRequest();
+				~QueryAddUserInfoRequest();
+
+				std::string getIotId()const;
+				void setIotId(const std::string& iotId);
+
+            private:
+				std::string iotId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_QUERYADDUSERINFOREQUEST_H_

+ 74 - 0
linkface/include/alibabacloud/linkface/model/QueryAddUserInfoResult.h

@@ -0,0 +1,74 @@
+/*
+ * 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_LINKFACE_MODEL_QUERYADDUSERINFORESULT_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_QUERYADDUSERINFORESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT QueryAddUserInfoResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct CurrentFaceInfosItem
+					{
+						std::string userId;
+						int index;
+						std::string clientTag;
+					};
+					struct FailedFaceInfosItem
+					{
+						std::string userId;
+						int index;
+						std::string clientTag;
+					};
+					std::vector<CurrentFaceInfosItem> currentFaceInfos;
+					std::vector<FailedFaceInfosItem> failedFaceInfos;
+				};
+
+
+				QueryAddUserInfoResult();
+				explicit QueryAddUserInfoResult(const std::string &payload);
+				~QueryAddUserInfoResult();
+				std::string getMessage()const;
+				Data getData()const;
+				int getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				Data data_;
+				int code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_QUERYADDUSERINFORESULT_H_

+ 51 - 0
linkface/include/alibabacloud/linkface/model/QueryAllGroupsRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_LINKFACE_MODEL_QUERYALLGROUPSREQUEST_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_QUERYALLGROUPSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT QueryAllGroupsRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryAllGroupsRequest();
+				~QueryAllGroupsRequest();
+
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				int getCurrentPage()const;
+				void setCurrentPage(int currentPage);
+
+            private:
+				int pageSize_;
+				int currentPage_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_QUERYALLGROUPSREQUEST_H_

+ 69 - 0
linkface/include/alibabacloud/linkface/model/QueryAllGroupsResult.h

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

+ 57 - 0
linkface/include/alibabacloud/linkface/model/QueryAuthenticationRequest.h

@@ -0,0 +1,57 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_LINKFACE_MODEL_QUERYAUTHENTICATIONREQUEST_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_QUERYAUTHENTICATIONREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT QueryAuthenticationRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryAuthenticationRequest();
+				~QueryAuthenticationRequest();
+
+				int getLicenseType()const;
+				void setLicenseType(int licenseType);
+				std::string getIotId()const;
+				void setIotId(const std::string& iotId);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				int getCurrentPage()const;
+				void setCurrentPage(int currentPage);
+
+            private:
+				int licenseType_;
+				std::string iotId_;
+				int pageSize_;
+				int currentPage_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_QUERYAUTHENTICATIONREQUEST_H_

+ 72 - 0
linkface/include/alibabacloud/linkface/model/QueryAuthenticationResult.h

@@ -0,0 +1,72 @@
+/*
+ * 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_LINKFACE_MODEL_QUERYAUTHENTICATIONRESULT_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_QUERYAUTHENTICATIONRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT QueryAuthenticationResult : public ServiceResult
+			{
+			public:
+				struct DataItem
+				{
+					std::string iotId;
+					std::string expiredTime;
+					std::string beginTime;
+					int licenseType;
+				};
+
+
+				QueryAuthenticationResult();
+				explicit QueryAuthenticationResult(const std::string &payload);
+				~QueryAuthenticationResult();
+				std::string getMessage()const;
+				int getPageCount()const;
+				int getPageSize()const;
+				int getTotal()const;
+				std::vector<DataItem> getData()const;
+				int getPage()const;
+				int getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				int pageCount_;
+				int pageSize_;
+				int total_;
+				std::vector<DataItem> data_;
+				int page_;
+				int code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_QUERYAUTHENTICATIONRESULT_H_

+ 48 - 0
linkface/include/alibabacloud/linkface/model/QueryFaceRequest.h

@@ -0,0 +1,48 @@
+/*
+ * 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_LINKFACE_MODEL_QUERYFACEREQUEST_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_QUERYFACEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT QueryFaceRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryFaceRequest();
+				~QueryFaceRequest();
+
+				std::string getUserId()const;
+				void setUserId(const std::string& userId);
+
+            private:
+				std::string userId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_QUERYFACEREQUEST_H_

+ 68 - 0
linkface/include/alibabacloud/linkface/model/QueryFaceResult.h

@@ -0,0 +1,68 @@
+/*
+ * 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_LINKFACE_MODEL_QUERYFACERESULT_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_QUERYFACERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT QueryFaceResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct UserFaceMetasItem
+					{
+						int index;
+						std::string clientTag;
+						std::string faceUrl;
+					};
+					std::vector<std::string> groupIds;
+					std::vector<UserFaceMetasItem> userFaceMetas;
+				};
+
+
+				QueryFaceResult();
+				explicit QueryFaceResult(const std::string &payload);
+				~QueryFaceResult();
+				std::string getMessage()const;
+				Data getData()const;
+				int getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				Data data_;
+				int code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_QUERYFACERESULT_H_

+ 54 - 0
linkface/include/alibabacloud/linkface/model/QueryGroupUsersRequest.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_LINKFACE_MODEL_QUERYGROUPUSERSREQUEST_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_QUERYGROUPUSERSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT QueryGroupUsersRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryGroupUsersRequest();
+				~QueryGroupUsersRequest();
+
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				int getCurrentPage()const;
+				void setCurrentPage(int currentPage);
+
+            private:
+				std::string groupId_;
+				int pageSize_;
+				int currentPage_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_QUERYGROUPUSERSREQUEST_H_

+ 69 - 0
linkface/include/alibabacloud/linkface/model/QueryGroupUsersResult.h

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

+ 54 - 0
linkface/include/alibabacloud/linkface/model/QueryLicensesRequest.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_LINKFACE_MODEL_QUERYLICENSESREQUEST_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_QUERYLICENSESREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT QueryLicensesRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryLicensesRequest();
+				~QueryLicensesRequest();
+
+				int getLicenseType()const;
+				void setLicenseType(int licenseType);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				int getCurrentPage()const;
+				void setCurrentPage(int currentPage);
+
+            private:
+				int licenseType_;
+				int pageSize_;
+				int currentPage_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_QUERYLICENSESREQUEST_H_

+ 71 - 0
linkface/include/alibabacloud/linkface/model/QueryLicensesResult.h

@@ -0,0 +1,71 @@
+/*
+ * 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_LINKFACE_MODEL_QUERYLICENSESRESULT_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_QUERYLICENSESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT QueryLicensesResult : public ServiceResult
+			{
+			public:
+				struct DataItem
+				{
+					int costQuantity;
+					int quantity;
+					int licenseType;
+				};
+
+
+				QueryLicensesResult();
+				explicit QueryLicensesResult(const std::string &payload);
+				~QueryLicensesResult();
+				std::string getMessage()const;
+				int getPageCount()const;
+				int getPageSize()const;
+				int getTotal()const;
+				std::vector<DataItem> getData()const;
+				int getPage()const;
+				int getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				int pageCount_;
+				int pageSize_;
+				int total_;
+				std::vector<DataItem> data_;
+				int page_;
+				int code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_QUERYLICENSESRESULT_H_

+ 48 - 0
linkface/include/alibabacloud/linkface/model/QuerySyncPicScheduleRequest.h

@@ -0,0 +1,48 @@
+/*
+ * 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_LINKFACE_MODEL_QUERYSYNCPICSCHEDULEREQUEST_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_QUERYSYNCPICSCHEDULEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT QuerySyncPicScheduleRequest : public RpcServiceRequest
+			{
+
+			public:
+				QuerySyncPicScheduleRequest();
+				~QuerySyncPicScheduleRequest();
+
+				std::string getIotId()const;
+				void setIotId(const std::string& iotId);
+
+            private:
+				std::string iotId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_QUERYSYNCPICSCHEDULEREQUEST_H_

+ 61 - 0
linkface/include/alibabacloud/linkface/model/QuerySyncPicScheduleResult.h

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

+ 54 - 0
linkface/include/alibabacloud/linkface/model/RegisterFaceRequest.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_LINKFACE_MODEL_REGISTERFACEREQUEST_H_
+#define ALIBABACLOUD_LINKFACE_MODEL_REGISTERFACEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/linkface/LinkFaceExport.h>
+
+namespace AlibabaCloud
+{
+	namespace LinkFace
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LINKFACE_EXPORT RegisterFaceRequest : public RpcServiceRequest
+			{
+
+			public:
+				RegisterFaceRequest();
+				~RegisterFaceRequest();
+
+				std::string getImage()const;
+				void setImage(const std::string& image);
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+				std::string getUserId()const;
+				void setUserId(const std::string& userId);
+
+            private:
+				std::string image_;
+				std::string groupId_;
+				std::string userId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LINKFACE_MODEL_REGISTERFACEREQUEST_H_

+ 55 - 0
linkface/include/alibabacloud/linkface/model/RegisterFaceResult.h

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

+ 51 - 0
linkface/include/alibabacloud/linkface/model/SyncFacePicturesRequest.h

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

+ 55 - 0
linkface/include/alibabacloud/linkface/model/SyncFacePicturesResult.h

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

+ 51 - 0
linkface/include/alibabacloud/linkface/model/UnlinkFaceRequest.h

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

+ 55 - 0
linkface/include/alibabacloud/linkface/model/UnlinkFaceResult.h

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

+ 51 - 0
linkface/include/alibabacloud/linkface/model/UpdateFaceRequest.h

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

+ 55 - 0
linkface/include/alibabacloud/linkface/model/UpdateFaceResult.h

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

+ 593 - 0
linkface/src/LinkFaceClient.cc

@@ -0,0 +1,593 @@
+/*
+ * 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/linkface/LinkFaceClient.h>
+#include <alibabacloud/core/SimpleCredentialsProvider.h>
+
+using namespace AlibabaCloud;
+using namespace AlibabaCloud::Location;
+using namespace AlibabaCloud::LinkFace;
+using namespace AlibabaCloud::LinkFace::Model;
+
+namespace
+{
+	const std::string SERVICE_NAME = "LinkFace";
+}
+
+LinkFaceClient::LinkFaceClient(const Credentials &credentials, const ClientConfiguration &configuration) :
+	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(credentials), configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(credentials, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+}
+
+LinkFaceClient::LinkFaceClient(const std::shared_ptr<CredentialsProvider>& credentialsProvider, const ClientConfiguration & configuration) :
+	RpcServiceClient(SERVICE_NAME, credentialsProvider, configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(credentialsProvider, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+}
+
+LinkFaceClient::LinkFaceClient(const std::string & accessKeyId, const std::string & accessKeySecret, const ClientConfiguration & configuration) :
+	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(accessKeyId, accessKeySecret), configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(accessKeyId, accessKeySecret, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+}
+
+LinkFaceClient::~LinkFaceClient()
+{}
+
+LinkFaceClient::UnlinkFaceOutcome LinkFaceClient::unlinkFace(const UnlinkFaceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UnlinkFaceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UnlinkFaceOutcome(UnlinkFaceResult(outcome.result()));
+	else
+		return UnlinkFaceOutcome(outcome.error());
+}
+
+void LinkFaceClient::unlinkFaceAsync(const UnlinkFaceRequest& request, const UnlinkFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, unlinkFace(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::UnlinkFaceOutcomeCallable LinkFaceClient::unlinkFaceCallable(const UnlinkFaceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UnlinkFaceOutcome()>>(
+			[this, request]()
+			{
+			return this->unlinkFace(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::UpdateFaceOutcome LinkFaceClient::updateFace(const UpdateFaceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateFaceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateFaceOutcome(UpdateFaceResult(outcome.result()));
+	else
+		return UpdateFaceOutcome(outcome.error());
+}
+
+void LinkFaceClient::updateFaceAsync(const UpdateFaceRequest& request, const UpdateFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateFace(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::UpdateFaceOutcomeCallable LinkFaceClient::updateFaceCallable(const UpdateFaceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateFaceOutcome()>>(
+			[this, request]()
+			{
+			return this->updateFace(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::QuerySyncPicScheduleOutcome LinkFaceClient::querySyncPicSchedule(const QuerySyncPicScheduleRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QuerySyncPicScheduleOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QuerySyncPicScheduleOutcome(QuerySyncPicScheduleResult(outcome.result()));
+	else
+		return QuerySyncPicScheduleOutcome(outcome.error());
+}
+
+void LinkFaceClient::querySyncPicScheduleAsync(const QuerySyncPicScheduleRequest& request, const QuerySyncPicScheduleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, querySyncPicSchedule(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::QuerySyncPicScheduleOutcomeCallable LinkFaceClient::querySyncPicScheduleCallable(const QuerySyncPicScheduleRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QuerySyncPicScheduleOutcome()>>(
+			[this, request]()
+			{
+			return this->querySyncPicSchedule(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::SyncFacePicturesOutcome LinkFaceClient::syncFacePictures(const SyncFacePicturesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SyncFacePicturesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SyncFacePicturesOutcome(SyncFacePicturesResult(outcome.result()));
+	else
+		return SyncFacePicturesOutcome(outcome.error());
+}
+
+void LinkFaceClient::syncFacePicturesAsync(const SyncFacePicturesRequest& request, const SyncFacePicturesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, syncFacePictures(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::SyncFacePicturesOutcomeCallable LinkFaceClient::syncFacePicturesCallable(const SyncFacePicturesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SyncFacePicturesOutcome()>>(
+			[this, request]()
+			{
+			return this->syncFacePictures(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::CreateGroupOutcome LinkFaceClient::createGroup(const CreateGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateGroupOutcome(CreateGroupResult(outcome.result()));
+	else
+		return CreateGroupOutcome(outcome.error());
+}
+
+void LinkFaceClient::createGroupAsync(const CreateGroupRequest& request, const CreateGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::CreateGroupOutcomeCallable LinkFaceClient::createGroupCallable(const CreateGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->createGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::DeleteGroupOutcome LinkFaceClient::deleteGroup(const DeleteGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteGroupOutcome(DeleteGroupResult(outcome.result()));
+	else
+		return DeleteGroupOutcome(outcome.error());
+}
+
+void LinkFaceClient::deleteGroupAsync(const DeleteGroupRequest& request, const DeleteGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::DeleteGroupOutcomeCallable LinkFaceClient::deleteGroupCallable(const DeleteGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::DeleteFaceOutcome LinkFaceClient::deleteFace(const DeleteFaceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteFaceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteFaceOutcome(DeleteFaceResult(outcome.result()));
+	else
+		return DeleteFaceOutcome(outcome.error());
+}
+
+void LinkFaceClient::deleteFaceAsync(const DeleteFaceRequest& request, const DeleteFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteFace(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::DeleteFaceOutcomeCallable LinkFaceClient::deleteFaceCallable(const DeleteFaceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteFaceOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteFace(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::QueryAuthenticationOutcome LinkFaceClient::queryAuthentication(const QueryAuthenticationRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryAuthenticationOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryAuthenticationOutcome(QueryAuthenticationResult(outcome.result()));
+	else
+		return QueryAuthenticationOutcome(outcome.error());
+}
+
+void LinkFaceClient::queryAuthenticationAsync(const QueryAuthenticationRequest& request, const QueryAuthenticationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryAuthentication(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::QueryAuthenticationOutcomeCallable LinkFaceClient::queryAuthenticationCallable(const QueryAuthenticationRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryAuthenticationOutcome()>>(
+			[this, request]()
+			{
+			return this->queryAuthentication(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::QueryGroupUsersOutcome LinkFaceClient::queryGroupUsers(const QueryGroupUsersRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryGroupUsersOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryGroupUsersOutcome(QueryGroupUsersResult(outcome.result()));
+	else
+		return QueryGroupUsersOutcome(outcome.error());
+}
+
+void LinkFaceClient::queryGroupUsersAsync(const QueryGroupUsersRequest& request, const QueryGroupUsersAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryGroupUsers(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::QueryGroupUsersOutcomeCallable LinkFaceClient::queryGroupUsersCallable(const QueryGroupUsersRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryGroupUsersOutcome()>>(
+			[this, request]()
+			{
+			return this->queryGroupUsers(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::LinkFaceOutcome LinkFaceClient::linkFace(const LinkFaceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return LinkFaceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return LinkFaceOutcome(LinkFaceResult(outcome.result()));
+	else
+		return LinkFaceOutcome(outcome.error());
+}
+
+void LinkFaceClient::linkFaceAsync(const LinkFaceRequest& request, const LinkFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, linkFace(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::LinkFaceOutcomeCallable LinkFaceClient::linkFaceCallable(const LinkFaceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<LinkFaceOutcome()>>(
+			[this, request]()
+			{
+			return this->linkFace(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::QueryAllGroupsOutcome LinkFaceClient::queryAllGroups(const QueryAllGroupsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryAllGroupsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryAllGroupsOutcome(QueryAllGroupsResult(outcome.result()));
+	else
+		return QueryAllGroupsOutcome(outcome.error());
+}
+
+void LinkFaceClient::queryAllGroupsAsync(const QueryAllGroupsRequest& request, const QueryAllGroupsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryAllGroups(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::QueryAllGroupsOutcomeCallable LinkFaceClient::queryAllGroupsCallable(const QueryAllGroupsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryAllGroupsOutcome()>>(
+			[this, request]()
+			{
+			return this->queryAllGroups(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::RegisterFaceOutcome LinkFaceClient::registerFace(const RegisterFaceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return RegisterFaceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return RegisterFaceOutcome(RegisterFaceResult(outcome.result()));
+	else
+		return RegisterFaceOutcome(outcome.error());
+}
+
+void LinkFaceClient::registerFaceAsync(const RegisterFaceRequest& request, const RegisterFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, registerFace(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::RegisterFaceOutcomeCallable LinkFaceClient::registerFaceCallable(const RegisterFaceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<RegisterFaceOutcome()>>(
+			[this, request]()
+			{
+			return this->registerFace(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::QueryAddUserInfoOutcome LinkFaceClient::queryAddUserInfo(const QueryAddUserInfoRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryAddUserInfoOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryAddUserInfoOutcome(QueryAddUserInfoResult(outcome.result()));
+	else
+		return QueryAddUserInfoOutcome(outcome.error());
+}
+
+void LinkFaceClient::queryAddUserInfoAsync(const QueryAddUserInfoRequest& request, const QueryAddUserInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryAddUserInfo(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::QueryAddUserInfoOutcomeCallable LinkFaceClient::queryAddUserInfoCallable(const QueryAddUserInfoRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryAddUserInfoOutcome()>>(
+			[this, request]()
+			{
+			return this->queryAddUserInfo(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::QueryLicensesOutcome LinkFaceClient::queryLicenses(const QueryLicensesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryLicensesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryLicensesOutcome(QueryLicensesResult(outcome.result()));
+	else
+		return QueryLicensesOutcome(outcome.error());
+}
+
+void LinkFaceClient::queryLicensesAsync(const QueryLicensesRequest& request, const QueryLicensesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryLicenses(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::QueryLicensesOutcomeCallable LinkFaceClient::queryLicensesCallable(const QueryLicensesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryLicensesOutcome()>>(
+			[this, request]()
+			{
+			return this->queryLicenses(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LinkFaceClient::QueryFaceOutcome LinkFaceClient::queryFace(const QueryFaceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryFaceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryFaceOutcome(QueryFaceResult(outcome.result()));
+	else
+		return QueryFaceOutcome(outcome.error());
+}
+
+void LinkFaceClient::queryFaceAsync(const QueryFaceRequest& request, const QueryFaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryFace(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LinkFaceClient::QueryFaceOutcomeCallable LinkFaceClient::queryFaceCallable(const QueryFaceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryFaceOutcome()>>(
+			[this, request]()
+			{
+			return this->queryFace(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+

+ 38 - 0
linkface/src/model/CreateGroupRequest.cc

@@ -0,0 +1,38 @@
+/*
+ * 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/linkface/model/CreateGroupRequest.h>
+
+using AlibabaCloud::LinkFace::Model::CreateGroupRequest;
+
+CreateGroupRequest::CreateGroupRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "CreateGroup")
+{}
+
+CreateGroupRequest::~CreateGroupRequest()
+{}
+
+std::string CreateGroupRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void CreateGroupRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+

+ 66 - 0
linkface/src/model/CreateGroupResult.cc

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

+ 49 - 0
linkface/src/model/DeleteFaceRequest.cc

@@ -0,0 +1,49 @@
+/*
+ * 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/linkface/model/DeleteFaceRequest.h>
+
+using AlibabaCloud::LinkFace::Model::DeleteFaceRequest;
+
+DeleteFaceRequest::DeleteFaceRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "DeleteFace")
+{}
+
+DeleteFaceRequest::~DeleteFaceRequest()
+{}
+
+std::string DeleteFaceRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void DeleteFaceRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+std::string DeleteFaceRequest::getUserId()const
+{
+	return userId_;
+}
+
+void DeleteFaceRequest::setUserId(const std::string& userId)
+{
+	userId_ = userId;
+	setParameter("UserId", userId);
+}
+

+ 66 - 0
linkface/src/model/DeleteFaceResult.cc

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

+ 38 - 0
linkface/src/model/DeleteGroupRequest.cc

@@ -0,0 +1,38 @@
+/*
+ * 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/linkface/model/DeleteGroupRequest.h>
+
+using AlibabaCloud::LinkFace::Model::DeleteGroupRequest;
+
+DeleteGroupRequest::DeleteGroupRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "DeleteGroup")
+{}
+
+DeleteGroupRequest::~DeleteGroupRequest()
+{}
+
+std::string DeleteGroupRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void DeleteGroupRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+

+ 66 - 0
linkface/src/model/DeleteGroupResult.cc

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

+ 49 - 0
linkface/src/model/LinkFaceRequest.cc

@@ -0,0 +1,49 @@
+/*
+ * 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/linkface/model/LinkFaceRequest.h>
+
+using AlibabaCloud::LinkFace::Model::LinkFaceRequest;
+
+LinkFaceRequest::LinkFaceRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "LinkFace")
+{}
+
+LinkFaceRequest::~LinkFaceRequest()
+{}
+
+std::string LinkFaceRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void LinkFaceRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+std::string LinkFaceRequest::getUserId()const
+{
+	return userId_;
+}
+
+void LinkFaceRequest::setUserId(const std::string& userId)
+{
+	userId_ = userId;
+	setParameter("UserId", userId);
+}
+

+ 66 - 0
linkface/src/model/LinkFaceResult.cc

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

+ 38 - 0
linkface/src/model/QueryAddUserInfoRequest.cc

@@ -0,0 +1,38 @@
+/*
+ * 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/linkface/model/QueryAddUserInfoRequest.h>
+
+using AlibabaCloud::LinkFace::Model::QueryAddUserInfoRequest;
+
+QueryAddUserInfoRequest::QueryAddUserInfoRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "QueryAddUserInfo")
+{}
+
+QueryAddUserInfoRequest::~QueryAddUserInfoRequest()
+{}
+
+std::string QueryAddUserInfoRequest::getIotId()const
+{
+	return iotId_;
+}
+
+void QueryAddUserInfoRequest::setIotId(const std::string& iotId)
+{
+	iotId_ = iotId;
+	setParameter("IotId", iotId);
+}
+

+ 96 - 0
linkface/src/model/QueryAddUserInfoResult.cc

@@ -0,0 +1,96 @@
+/*
+ * 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/linkface/model/QueryAddUserInfoResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::LinkFace;
+using namespace AlibabaCloud::LinkFace::Model;
+
+QueryAddUserInfoResult::QueryAddUserInfoResult() :
+	ServiceResult()
+{}
+
+QueryAddUserInfoResult::QueryAddUserInfoResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryAddUserInfoResult::~QueryAddUserInfoResult()
+{}
+
+void QueryAddUserInfoResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	auto allCurrentFaceInfos = value["CurrentFaceInfos"]["CurrentFaceInfosItem"];
+	for (auto value : allCurrentFaceInfos)
+	{
+		Data::CurrentFaceInfosItem currentFaceInfosItemObject;
+		if(!value["UserId"].isNull())
+			currentFaceInfosItemObject.userId = value["UserId"].asString();
+		if(!value["ClientTag"].isNull())
+			currentFaceInfosItemObject.clientTag = value["ClientTag"].asString();
+		if(!value["Index"].isNull())
+			currentFaceInfosItemObject.index = std::stoi(value["Index"].asString());
+		data_.currentFaceInfos.push_back(currentFaceInfosItemObject);
+	}
+	auto allFailedFaceInfos = value["FailedFaceInfos"]["FailedFaceInfosItem"];
+	for (auto value : allFailedFaceInfos)
+	{
+		Data::FailedFaceInfosItem failedFaceInfosItemObject;
+		if(!value["UserId"].isNull())
+			failedFaceInfosItemObject.userId = value["UserId"].asString();
+		if(!value["ClientTag"].isNull())
+			failedFaceInfosItemObject.clientTag = value["ClientTag"].asString();
+		if(!value["Index"].isNull())
+			failedFaceInfosItemObject.index = std::stoi(value["Index"].asString());
+		data_.failedFaceInfos.push_back(failedFaceInfosItemObject);
+	}
+	if(!value["Code"].isNull())
+		code_ = std::stoi(value["Code"].asString());
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string QueryAddUserInfoResult::getMessage()const
+{
+	return message_;
+}
+
+QueryAddUserInfoResult::Data QueryAddUserInfoResult::getData()const
+{
+	return data_;
+}
+
+int QueryAddUserInfoResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryAddUserInfoResult::getSuccess()const
+{
+	return success_;
+}
+

+ 49 - 0
linkface/src/model/QueryAllGroupsRequest.cc

@@ -0,0 +1,49 @@
+/*
+ * 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/linkface/model/QueryAllGroupsRequest.h>
+
+using AlibabaCloud::LinkFace::Model::QueryAllGroupsRequest;
+
+QueryAllGroupsRequest::QueryAllGroupsRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "QueryAllGroups")
+{}
+
+QueryAllGroupsRequest::~QueryAllGroupsRequest()
+{}
+
+int QueryAllGroupsRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void QueryAllGroupsRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+int QueryAllGroupsRequest::getCurrentPage()const
+{
+	return currentPage_;
+}
+
+void QueryAllGroupsRequest::setCurrentPage(int currentPage)
+{
+	currentPage_ = currentPage;
+	setParameter("CurrentPage", std::to_string(currentPage));
+}
+

+ 103 - 0
linkface/src/model/QueryAllGroupsResult.cc

@@ -0,0 +1,103 @@
+/*
+ * 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/linkface/model/QueryAllGroupsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::LinkFace;
+using namespace AlibabaCloud::LinkFace::Model;
+
+QueryAllGroupsResult::QueryAllGroupsResult() :
+	ServiceResult()
+{}
+
+QueryAllGroupsResult::QueryAllGroupsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryAllGroupsResult::~QueryAllGroupsResult()
+{}
+
+void QueryAllGroupsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+		auto allGroups = dataNode["Groups"]["Groups"];
+		for (auto value : allGroups)
+			data_.groups.push_back(value.asString());
+	if(!value["Code"].isNull())
+		code_ = std::stoi(value["Code"].asString());
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["PageCount"].isNull())
+		pageCount_ = std::stoi(value["PageCount"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["Page"].isNull())
+		page_ = std::stoi(value["Page"].asString());
+	if(!value["Total"].isNull())
+		total_ = std::stoi(value["Total"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string QueryAllGroupsResult::getMessage()const
+{
+	return message_;
+}
+
+int QueryAllGroupsResult::getPageCount()const
+{
+	return pageCount_;
+}
+
+int QueryAllGroupsResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int QueryAllGroupsResult::getTotal()const
+{
+	return total_;
+}
+
+QueryAllGroupsResult::Data QueryAllGroupsResult::getData()const
+{
+	return data_;
+}
+
+int QueryAllGroupsResult::getPage()const
+{
+	return page_;
+}
+
+int QueryAllGroupsResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryAllGroupsResult::getSuccess()const
+{
+	return success_;
+}
+

+ 71 - 0
linkface/src/model/QueryAuthenticationRequest.cc

@@ -0,0 +1,71 @@
+/*
+ * 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/linkface/model/QueryAuthenticationRequest.h>
+
+using AlibabaCloud::LinkFace::Model::QueryAuthenticationRequest;
+
+QueryAuthenticationRequest::QueryAuthenticationRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "QueryAuthentication")
+{}
+
+QueryAuthenticationRequest::~QueryAuthenticationRequest()
+{}
+
+int QueryAuthenticationRequest::getLicenseType()const
+{
+	return licenseType_;
+}
+
+void QueryAuthenticationRequest::setLicenseType(int licenseType)
+{
+	licenseType_ = licenseType;
+	setParameter("LicenseType", std::to_string(licenseType));
+}
+
+std::string QueryAuthenticationRequest::getIotId()const
+{
+	return iotId_;
+}
+
+void QueryAuthenticationRequest::setIotId(const std::string& iotId)
+{
+	iotId_ = iotId;
+	setParameter("IotId", iotId);
+}
+
+int QueryAuthenticationRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void QueryAuthenticationRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+int QueryAuthenticationRequest::getCurrentPage()const
+{
+	return currentPage_;
+}
+
+void QueryAuthenticationRequest::setCurrentPage(int currentPage)
+{
+	currentPage_ = currentPage;
+	setParameter("CurrentPage", std::to_string(currentPage));
+}
+

+ 113 - 0
linkface/src/model/QueryAuthenticationResult.cc

@@ -0,0 +1,113 @@
+/*
+ * 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/linkface/model/QueryAuthenticationResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::LinkFace;
+using namespace AlibabaCloud::LinkFace::Model;
+
+QueryAuthenticationResult::QueryAuthenticationResult() :
+	ServiceResult()
+{}
+
+QueryAuthenticationResult::QueryAuthenticationResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryAuthenticationResult::~QueryAuthenticationResult()
+{}
+
+void QueryAuthenticationResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	auto allData = value["Data"]["DataItem"];
+	for (auto value : allData)
+	{
+		DataItem dataObject;
+		if(!value["LicenseType"].isNull())
+			dataObject.licenseType = std::stoi(value["LicenseType"].asString());
+		if(!value["IotId"].isNull())
+			dataObject.iotId = value["IotId"].asString();
+		if(!value["BeginTime"].isNull())
+			dataObject.beginTime = value["BeginTime"].asString();
+		if(!value["ExpiredTime"].isNull())
+			dataObject.expiredTime = value["ExpiredTime"].asString();
+		data_.push_back(dataObject);
+	}
+	if(!value["Code"].isNull())
+		code_ = std::stoi(value["Code"].asString());
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["PageCount"].isNull())
+		pageCount_ = std::stoi(value["PageCount"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["Page"].isNull())
+		page_ = std::stoi(value["Page"].asString());
+	if(!value["Total"].isNull())
+		total_ = std::stoi(value["Total"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string QueryAuthenticationResult::getMessage()const
+{
+	return message_;
+}
+
+int QueryAuthenticationResult::getPageCount()const
+{
+	return pageCount_;
+}
+
+int QueryAuthenticationResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int QueryAuthenticationResult::getTotal()const
+{
+	return total_;
+}
+
+std::vector<QueryAuthenticationResult::DataItem> QueryAuthenticationResult::getData()const
+{
+	return data_;
+}
+
+int QueryAuthenticationResult::getPage()const
+{
+	return page_;
+}
+
+int QueryAuthenticationResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryAuthenticationResult::getSuccess()const
+{
+	return success_;
+}
+

+ 38 - 0
linkface/src/model/QueryFaceRequest.cc

@@ -0,0 +1,38 @@
+/*
+ * 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/linkface/model/QueryFaceRequest.h>
+
+using AlibabaCloud::LinkFace::Model::QueryFaceRequest;
+
+QueryFaceRequest::QueryFaceRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "QueryFace")
+{}
+
+QueryFaceRequest::~QueryFaceRequest()
+{}
+
+std::string QueryFaceRequest::getUserId()const
+{
+	return userId_;
+}
+
+void QueryFaceRequest::setUserId(const std::string& userId)
+{
+	userId_ = userId;
+	setParameter("UserId", userId);
+}
+

+ 87 - 0
linkface/src/model/QueryFaceResult.cc

@@ -0,0 +1,87 @@
+/*
+ * 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/linkface/model/QueryFaceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::LinkFace;
+using namespace AlibabaCloud::LinkFace::Model;
+
+QueryFaceResult::QueryFaceResult() :
+	ServiceResult()
+{}
+
+QueryFaceResult::QueryFaceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryFaceResult::~QueryFaceResult()
+{}
+
+void QueryFaceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	auto allUserFaceMetas = value["UserFaceMetas"]["UserFaceMetasItem"];
+	for (auto value : allUserFaceMetas)
+	{
+		Data::UserFaceMetasItem userFaceMetasItemObject;
+		if(!value["ClientTag"].isNull())
+			userFaceMetasItemObject.clientTag = value["ClientTag"].asString();
+		if(!value["Index"].isNull())
+			userFaceMetasItemObject.index = std::stoi(value["Index"].asString());
+		if(!value["FaceUrl"].isNull())
+			userFaceMetasItemObject.faceUrl = value["FaceUrl"].asString();
+		data_.userFaceMetas.push_back(userFaceMetasItemObject);
+	}
+		auto allGroupIds = dataNode["GroupIds"]["GroupIds"];
+		for (auto value : allGroupIds)
+			data_.groupIds.push_back(value.asString());
+	if(!value["Code"].isNull())
+		code_ = std::stoi(value["Code"].asString());
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string QueryFaceResult::getMessage()const
+{
+	return message_;
+}
+
+QueryFaceResult::Data QueryFaceResult::getData()const
+{
+	return data_;
+}
+
+int QueryFaceResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryFaceResult::getSuccess()const
+{
+	return success_;
+}
+

+ 60 - 0
linkface/src/model/QueryGroupUsersRequest.cc

@@ -0,0 +1,60 @@
+/*
+ * 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/linkface/model/QueryGroupUsersRequest.h>
+
+using AlibabaCloud::LinkFace::Model::QueryGroupUsersRequest;
+
+QueryGroupUsersRequest::QueryGroupUsersRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "QueryGroupUsers")
+{}
+
+QueryGroupUsersRequest::~QueryGroupUsersRequest()
+{}
+
+std::string QueryGroupUsersRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void QueryGroupUsersRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+int QueryGroupUsersRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void QueryGroupUsersRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+int QueryGroupUsersRequest::getCurrentPage()const
+{
+	return currentPage_;
+}
+
+void QueryGroupUsersRequest::setCurrentPage(int currentPage)
+{
+	currentPage_ = currentPage;
+	setParameter("CurrentPage", std::to_string(currentPage));
+}
+

+ 107 - 0
linkface/src/model/QueryGroupUsersResult.cc

@@ -0,0 +1,107 @@
+/*
+ * 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/linkface/model/QueryGroupUsersResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::LinkFace;
+using namespace AlibabaCloud::LinkFace::Model;
+
+QueryGroupUsersResult::QueryGroupUsersResult() :
+	ServiceResult()
+{}
+
+QueryGroupUsersResult::QueryGroupUsersResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryGroupUsersResult::~QueryGroupUsersResult()
+{}
+
+void QueryGroupUsersResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	auto allData = value["Data"]["DataItem"];
+	for (auto value : allData)
+	{
+		DataItem dataObject;
+		if(!value["UserId"].isNull())
+			dataObject.userId = value["UserId"].asString();
+		data_.push_back(dataObject);
+	}
+	if(!value["Code"].isNull())
+		code_ = std::stoi(value["Code"].asString());
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["PageCount"].isNull())
+		pageCount_ = std::stoi(value["PageCount"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["Page"].isNull())
+		page_ = std::stoi(value["Page"].asString());
+	if(!value["Total"].isNull())
+		total_ = std::stoi(value["Total"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string QueryGroupUsersResult::getMessage()const
+{
+	return message_;
+}
+
+int QueryGroupUsersResult::getPageCount()const
+{
+	return pageCount_;
+}
+
+int QueryGroupUsersResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int QueryGroupUsersResult::getTotal()const
+{
+	return total_;
+}
+
+std::vector<QueryGroupUsersResult::DataItem> QueryGroupUsersResult::getData()const
+{
+	return data_;
+}
+
+int QueryGroupUsersResult::getPage()const
+{
+	return page_;
+}
+
+int QueryGroupUsersResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryGroupUsersResult::getSuccess()const
+{
+	return success_;
+}
+

+ 60 - 0
linkface/src/model/QueryLicensesRequest.cc

@@ -0,0 +1,60 @@
+/*
+ * 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/linkface/model/QueryLicensesRequest.h>
+
+using AlibabaCloud::LinkFace::Model::QueryLicensesRequest;
+
+QueryLicensesRequest::QueryLicensesRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "QueryLicenses")
+{}
+
+QueryLicensesRequest::~QueryLicensesRequest()
+{}
+
+int QueryLicensesRequest::getLicenseType()const
+{
+	return licenseType_;
+}
+
+void QueryLicensesRequest::setLicenseType(int licenseType)
+{
+	licenseType_ = licenseType;
+	setParameter("LicenseType", std::to_string(licenseType));
+}
+
+int QueryLicensesRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void QueryLicensesRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+int QueryLicensesRequest::getCurrentPage()const
+{
+	return currentPage_;
+}
+
+void QueryLicensesRequest::setCurrentPage(int currentPage)
+{
+	currentPage_ = currentPage;
+	setParameter("CurrentPage", std::to_string(currentPage));
+}
+

+ 111 - 0
linkface/src/model/QueryLicensesResult.cc

@@ -0,0 +1,111 @@
+/*
+ * 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/linkface/model/QueryLicensesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::LinkFace;
+using namespace AlibabaCloud::LinkFace::Model;
+
+QueryLicensesResult::QueryLicensesResult() :
+	ServiceResult()
+{}
+
+QueryLicensesResult::QueryLicensesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryLicensesResult::~QueryLicensesResult()
+{}
+
+void QueryLicensesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	auto allData = value["Data"]["DataItem"];
+	for (auto value : allData)
+	{
+		DataItem dataObject;
+		if(!value["LicenseType"].isNull())
+			dataObject.licenseType = std::stoi(value["LicenseType"].asString());
+		if(!value["Quantity"].isNull())
+			dataObject.quantity = std::stoi(value["Quantity"].asString());
+		if(!value["CostQuantity"].isNull())
+			dataObject.costQuantity = std::stoi(value["CostQuantity"].asString());
+		data_.push_back(dataObject);
+	}
+	if(!value["Code"].isNull())
+		code_ = std::stoi(value["Code"].asString());
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["PageCount"].isNull())
+		pageCount_ = std::stoi(value["PageCount"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["Page"].isNull())
+		page_ = std::stoi(value["Page"].asString());
+	if(!value["Total"].isNull())
+		total_ = std::stoi(value["Total"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string QueryLicensesResult::getMessage()const
+{
+	return message_;
+}
+
+int QueryLicensesResult::getPageCount()const
+{
+	return pageCount_;
+}
+
+int QueryLicensesResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int QueryLicensesResult::getTotal()const
+{
+	return total_;
+}
+
+std::vector<QueryLicensesResult::DataItem> QueryLicensesResult::getData()const
+{
+	return data_;
+}
+
+int QueryLicensesResult::getPage()const
+{
+	return page_;
+}
+
+int QueryLicensesResult::getCode()const
+{
+	return code_;
+}
+
+bool QueryLicensesResult::getSuccess()const
+{
+	return success_;
+}
+

+ 38 - 0
linkface/src/model/QuerySyncPicScheduleRequest.cc

@@ -0,0 +1,38 @@
+/*
+ * 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/linkface/model/QuerySyncPicScheduleRequest.h>
+
+using AlibabaCloud::LinkFace::Model::QuerySyncPicScheduleRequest;
+
+QuerySyncPicScheduleRequest::QuerySyncPicScheduleRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "QuerySyncPicSchedule")
+{}
+
+QuerySyncPicScheduleRequest::~QuerySyncPicScheduleRequest()
+{}
+
+std::string QuerySyncPicScheduleRequest::getIotId()const
+{
+	return iotId_;
+}
+
+void QuerySyncPicScheduleRequest::setIotId(const std::string& iotId)
+{
+	iotId_ = iotId;
+	setParameter("IotId", iotId);
+}
+

+ 74 - 0
linkface/src/model/QuerySyncPicScheduleResult.cc

@@ -0,0 +1,74 @@
+/*
+ * 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/linkface/model/QuerySyncPicScheduleResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::LinkFace;
+using namespace AlibabaCloud::LinkFace::Model;
+
+QuerySyncPicScheduleResult::QuerySyncPicScheduleResult() :
+	ServiceResult()
+{}
+
+QuerySyncPicScheduleResult::QuerySyncPicScheduleResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QuerySyncPicScheduleResult::~QuerySyncPicScheduleResult()
+{}
+
+void QuerySyncPicScheduleResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Rate"].isNull())
+		data_.rate = std::stof(dataNode["Rate"].asString());
+	if(!value["Code"].isNull())
+		code_ = std::stoi(value["Code"].asString());
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string QuerySyncPicScheduleResult::getMessage()const
+{
+	return message_;
+}
+
+QuerySyncPicScheduleResult::Data QuerySyncPicScheduleResult::getData()const
+{
+	return data_;
+}
+
+int QuerySyncPicScheduleResult::getCode()const
+{
+	return code_;
+}
+
+bool QuerySyncPicScheduleResult::getSuccess()const
+{
+	return success_;
+}
+

+ 60 - 0
linkface/src/model/RegisterFaceRequest.cc

@@ -0,0 +1,60 @@
+/*
+ * 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/linkface/model/RegisterFaceRequest.h>
+
+using AlibabaCloud::LinkFace::Model::RegisterFaceRequest;
+
+RegisterFaceRequest::RegisterFaceRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "RegisterFace")
+{}
+
+RegisterFaceRequest::~RegisterFaceRequest()
+{}
+
+std::string RegisterFaceRequest::getImage()const
+{
+	return image_;
+}
+
+void RegisterFaceRequest::setImage(const std::string& image)
+{
+	image_ = image;
+	setParameter("Image", image);
+}
+
+std::string RegisterFaceRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void RegisterFaceRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+std::string RegisterFaceRequest::getUserId()const
+{
+	return userId_;
+}
+
+void RegisterFaceRequest::setUserId(const std::string& userId)
+{
+	userId_ = userId;
+	setParameter("UserId", userId);
+}
+

+ 66 - 0
linkface/src/model/RegisterFaceResult.cc

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

+ 49 - 0
linkface/src/model/SyncFacePicturesRequest.cc

@@ -0,0 +1,49 @@
+/*
+ * 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/linkface/model/SyncFacePicturesRequest.h>
+
+using AlibabaCloud::LinkFace::Model::SyncFacePicturesRequest;
+
+SyncFacePicturesRequest::SyncFacePicturesRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "SyncFacePictures")
+{}
+
+SyncFacePicturesRequest::~SyncFacePicturesRequest()
+{}
+
+std::string SyncFacePicturesRequest::getIotId()const
+{
+	return iotId_;
+}
+
+void SyncFacePicturesRequest::setIotId(const std::string& iotId)
+{
+	iotId_ = iotId;
+	setParameter("IotId", iotId);
+}
+
+std::string SyncFacePicturesRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void SyncFacePicturesRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+

+ 66 - 0
linkface/src/model/SyncFacePicturesResult.cc

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

+ 49 - 0
linkface/src/model/UnlinkFaceRequest.cc

@@ -0,0 +1,49 @@
+/*
+ * 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/linkface/model/UnlinkFaceRequest.h>
+
+using AlibabaCloud::LinkFace::Model::UnlinkFaceRequest;
+
+UnlinkFaceRequest::UnlinkFaceRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "UnlinkFace")
+{}
+
+UnlinkFaceRequest::~UnlinkFaceRequest()
+{}
+
+std::string UnlinkFaceRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void UnlinkFaceRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setParameter("GroupId", groupId);
+}
+
+std::string UnlinkFaceRequest::getUserId()const
+{
+	return userId_;
+}
+
+void UnlinkFaceRequest::setUserId(const std::string& userId)
+{
+	userId_ = userId;
+	setParameter("UserId", userId);
+}
+

+ 66 - 0
linkface/src/model/UnlinkFaceResult.cc

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

+ 49 - 0
linkface/src/model/UpdateFaceRequest.cc

@@ -0,0 +1,49 @@
+/*
+ * 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/linkface/model/UpdateFaceRequest.h>
+
+using AlibabaCloud::LinkFace::Model::UpdateFaceRequest;
+
+UpdateFaceRequest::UpdateFaceRequest() :
+	RpcServiceRequest("linkface", "2018-07-20", "UpdateFace")
+{}
+
+UpdateFaceRequest::~UpdateFaceRequest()
+{}
+
+std::string UpdateFaceRequest::getImage()const
+{
+	return image_;
+}
+
+void UpdateFaceRequest::setImage(const std::string& image)
+{
+	image_ = image;
+	setParameter("Image", image);
+}
+
+std::string UpdateFaceRequest::getUserId()const
+{
+	return userId_;
+}
+
+void UpdateFaceRequest::setUserId(const std::string& userId)
+{
+	userId_ = userId;
+	setParameter("UserId", userId);
+}
+

+ 66 - 0
linkface/src/model/UpdateFaceResult.cc

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