소스 검색

Release SegmentHalfBody.

sdk-team 6 년 전
부모
커밋
8af4775c5e

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2020-08-13 Version: 1.36.573
+- Release SegmentHalfBody.
+
 2020-08-12 Version: 1.36.572
 2020-08-12 Version: 1.36.572
 - Support corp group api.
 - Support corp group api.
 
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.572
+1.36.573

+ 94 - 0
videoseg/CMakeLists.txt

@@ -0,0 +1,94 @@
+#
+# 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(videoseg_public_header 
+	include/alibabacloud/videoseg/VideosegClient.h
+	include/alibabacloud/videoseg/VideosegExport.h )
+
+set(videoseg_public_header_model 
+	include/alibabacloud/videoseg/model/GetAsyncJobResultRequest.h
+	include/alibabacloud/videoseg/model/GetAsyncJobResultResult.h
+	include/alibabacloud/videoseg/model/SegmentHalfBodyRequest.h
+	include/alibabacloud/videoseg/model/SegmentHalfBodyResult.h
+	include/alibabacloud/videoseg/model/SegmentVideoBodyRequest.h
+	include/alibabacloud/videoseg/model/SegmentVideoBodyResult.h )
+
+set(videoseg_src 
+	src/VideosegClient.cc
+	src/model/GetAsyncJobResultRequest.cc
+	src/model/GetAsyncJobResultResult.cc
+	src/model/SegmentHalfBodyRequest.cc
+	src/model/SegmentHalfBodyResult.cc
+	src/model/SegmentVideoBodyRequest.cc
+	src/model/SegmentVideoBodyResult.cc )
+
+add_library(videoseg ${LIB_TYPE}
+	${videoseg_public_header}
+	${videoseg_public_header_model}
+	${videoseg_src})
+
+set_target_properties(videoseg
+	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}videoseg
+	)
+
+if(${LIB_TYPE} STREQUAL "SHARED")
+	set_target_properties(videoseg
+		PROPERTIES
+		DEFINE_SYMBOL ALIBABACLOUD_VIDEOSEG_LIBRARY)
+endif()
+
+target_include_directories(videoseg
+	PRIVATE include
+		${CMAKE_SOURCE_DIR}/core/include
+	)
+target_link_libraries(videoseg
+	core)
+
+if(CMAKE_HOST_WIN32)
+	ExternalProject_Get_Property(jsoncpp INSTALL_DIR)
+	set(jsoncpp_install_dir ${INSTALL_DIR})
+	add_dependencies(videoseg
+		jsoncpp)
+	target_include_directories(videoseg
+		PRIVATE	${jsoncpp_install_dir}/include)
+	target_link_libraries(videoseg
+		${jsoncpp_install_dir}/lib/jsoncpp.lib)
+	set_target_properties(videoseg
+    	PROPERTIES
+    		COMPILE_OPTIONS "/bigobj")
+else()
+	target_include_directories(videoseg
+		PRIVATE /usr/include/jsoncpp)
+	target_link_libraries(videoseg
+		jsoncpp)
+endif()
+
+install(FILES ${videoseg_public_header}
+	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/videoseg)
+install(FILES ${videoseg_public_header_model}
+	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/videoseg/model)
+install(TARGETS videoseg
+	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+	)

+ 70 - 0
videoseg/include/alibabacloud/videoseg/VideosegClient.h

@@ -0,0 +1,70 @@
+/*
+ * 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_VIDEOSEG_VIDEOSEGCLIENT_H_
+#define ALIBABACLOUD_VIDEOSEG_VIDEOSEGCLIENT_H_
+
+#include <future>
+#include <alibabacloud/core/AsyncCallerContext.h>
+#include <alibabacloud/core/EndpointProvider.h>
+#include <alibabacloud/core/RpcServiceClient.h>
+#include "VideosegExport.h"
+#include "model/GetAsyncJobResultRequest.h"
+#include "model/GetAsyncJobResultResult.h"
+#include "model/SegmentHalfBodyRequest.h"
+#include "model/SegmentHalfBodyResult.h"
+#include "model/SegmentVideoBodyRequest.h"
+#include "model/SegmentVideoBodyResult.h"
+
+
+namespace AlibabaCloud
+{
+	namespace Videoseg
+	{
+		class ALIBABACLOUD_VIDEOSEG_EXPORT VideosegClient : public RpcServiceClient
+		{
+		public:
+			typedef Outcome<Error, Model::GetAsyncJobResultResult> GetAsyncJobResultOutcome;
+			typedef std::future<GetAsyncJobResultOutcome> GetAsyncJobResultOutcomeCallable;
+			typedef std::function<void(const VideosegClient*, const Model::GetAsyncJobResultRequest&, const GetAsyncJobResultOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetAsyncJobResultAsyncHandler;
+			typedef Outcome<Error, Model::SegmentHalfBodyResult> SegmentHalfBodyOutcome;
+			typedef std::future<SegmentHalfBodyOutcome> SegmentHalfBodyOutcomeCallable;
+			typedef std::function<void(const VideosegClient*, const Model::SegmentHalfBodyRequest&, const SegmentHalfBodyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SegmentHalfBodyAsyncHandler;
+			typedef Outcome<Error, Model::SegmentVideoBodyResult> SegmentVideoBodyOutcome;
+			typedef std::future<SegmentVideoBodyOutcome> SegmentVideoBodyOutcomeCallable;
+			typedef std::function<void(const VideosegClient*, const Model::SegmentVideoBodyRequest&, const SegmentVideoBodyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SegmentVideoBodyAsyncHandler;
+
+			VideosegClient(const Credentials &credentials, const ClientConfiguration &configuration);
+			VideosegClient(const std::shared_ptr<CredentialsProvider> &credentialsProvider, const ClientConfiguration &configuration);
+			VideosegClient(const std::string &accessKeyId, const std::string &accessKeySecret, const ClientConfiguration &configuration);
+			~VideosegClient();
+			GetAsyncJobResultOutcome getAsyncJobResult(const Model::GetAsyncJobResultRequest &request)const;
+			void getAsyncJobResultAsync(const Model::GetAsyncJobResultRequest& request, const GetAsyncJobResultAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetAsyncJobResultOutcomeCallable getAsyncJobResultCallable(const Model::GetAsyncJobResultRequest& request) const;
+			SegmentHalfBodyOutcome segmentHalfBody(const Model::SegmentHalfBodyRequest &request)const;
+			void segmentHalfBodyAsync(const Model::SegmentHalfBodyRequest& request, const SegmentHalfBodyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SegmentHalfBodyOutcomeCallable segmentHalfBodyCallable(const Model::SegmentHalfBodyRequest& request) const;
+			SegmentVideoBodyOutcome segmentVideoBody(const Model::SegmentVideoBodyRequest &request)const;
+			void segmentVideoBodyAsync(const Model::SegmentVideoBodyRequest& request, const SegmentVideoBodyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SegmentVideoBodyOutcomeCallable segmentVideoBodyCallable(const Model::SegmentVideoBodyRequest& request) const;
+	
+		private:
+			std::shared_ptr<EndpointProvider> endpointProvider_;
+		};
+	}
+}
+
+#endif // !ALIBABACLOUD_VIDEOSEG_VIDEOSEGCLIENT_H_

+ 32 - 0
videoseg/include/alibabacloud/videoseg/VideosegExport.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_VIDEOSEG_VIDEOSEGEXPORT_H_
+#define ALIBABACLOUD_VIDEOSEG_VIDEOSEGEXPORT_H_
+
+#include <alibabacloud/core/Global.h>
+
+#if defined(ALIBABACLOUD_SHARED)
+#	if defined(ALIBABACLOUD_VIDEOSEG_LIBRARY)
+#		define ALIBABACLOUD_VIDEOSEG_EXPORT ALIBABACLOUD_DECL_EXPORT
+#	else
+#		define ALIBABACLOUD_VIDEOSEG_EXPORT ALIBABACLOUD_DECL_IMPORT
+#	endif
+#else
+#	define ALIBABACLOUD_VIDEOSEG_EXPORT
+#endif
+
+#endif // !ALIBABACLOUD_VIDEOSEG_VIDEOSEGEXPORT_H_

+ 51 - 0
videoseg/include/alibabacloud/videoseg/model/GetAsyncJobResultRequest.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_VIDEOSEG_MODEL_GETASYNCJOBRESULTREQUEST_H_
+#define ALIBABACLOUD_VIDEOSEG_MODEL_GETASYNCJOBRESULTREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/videoseg/VideosegExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Videoseg
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VIDEOSEG_EXPORT GetAsyncJobResultRequest : public RpcServiceRequest
+			{
+
+			public:
+				GetAsyncJobResultRequest();
+				~GetAsyncJobResultRequest();
+
+				bool getAsync()const;
+				void setAsync(bool async);
+				std::string getJobId()const;
+				void setJobId(const std::string& jobId);
+
+            private:
+				bool async_;
+				std::string jobId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VIDEOSEG_MODEL_GETASYNCJOBRESULTREQUEST_H_

+ 59 - 0
videoseg/include/alibabacloud/videoseg/model/GetAsyncJobResultResult.h

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

+ 51 - 0
videoseg/include/alibabacloud/videoseg/model/SegmentHalfBodyRequest.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_VIDEOSEG_MODEL_SEGMENTHALFBODYREQUEST_H_
+#define ALIBABACLOUD_VIDEOSEG_MODEL_SEGMENTHALFBODYREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/videoseg/VideosegExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Videoseg
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VIDEOSEG_EXPORT SegmentHalfBodyRequest : public RpcServiceRequest
+			{
+
+			public:
+				SegmentHalfBodyRequest();
+				~SegmentHalfBodyRequest();
+
+				bool getAsync()const;
+				void setAsync(bool async);
+				std::string getVideoUrl()const;
+				void setVideoUrl(const std::string& videoUrl);
+
+            private:
+				bool async_;
+				std::string videoUrl_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VIDEOSEG_MODEL_SEGMENTHALFBODYREQUEST_H_

+ 55 - 0
videoseg/include/alibabacloud/videoseg/model/SegmentHalfBodyResult.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_VIDEOSEG_MODEL_SEGMENTHALFBODYRESULT_H_
+#define ALIBABACLOUD_VIDEOSEG_MODEL_SEGMENTHALFBODYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/videoseg/VideosegExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Videoseg
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VIDEOSEG_EXPORT SegmentHalfBodyResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string videoUrl;
+				};
+
+
+				SegmentHalfBodyResult();
+				explicit SegmentHalfBodyResult(const std::string &payload);
+				~SegmentHalfBodyResult();
+				Data getData()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Data data_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VIDEOSEG_MODEL_SEGMENTHALFBODYRESULT_H_

+ 51 - 0
videoseg/include/alibabacloud/videoseg/model/SegmentVideoBodyRequest.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_VIDEOSEG_MODEL_SEGMENTVIDEOBODYREQUEST_H_
+#define ALIBABACLOUD_VIDEOSEG_MODEL_SEGMENTVIDEOBODYREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/videoseg/VideosegExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Videoseg
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VIDEOSEG_EXPORT SegmentVideoBodyRequest : public RpcServiceRequest
+			{
+
+			public:
+				SegmentVideoBodyRequest();
+				~SegmentVideoBodyRequest();
+
+				bool getAsync()const;
+				void setAsync(bool async);
+				std::string getVideoUrl()const;
+				void setVideoUrl(const std::string& videoUrl);
+
+            private:
+				bool async_;
+				std::string videoUrl_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VIDEOSEG_MODEL_SEGMENTVIDEOBODYREQUEST_H_

+ 55 - 0
videoseg/include/alibabacloud/videoseg/model/SegmentVideoBodyResult.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_VIDEOSEG_MODEL_SEGMENTVIDEOBODYRESULT_H_
+#define ALIBABACLOUD_VIDEOSEG_MODEL_SEGMENTVIDEOBODYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/videoseg/VideosegExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Videoseg
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_VIDEOSEG_EXPORT SegmentVideoBodyResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string videoUrl;
+				};
+
+
+				SegmentVideoBodyResult();
+				explicit SegmentVideoBodyResult(const std::string &payload);
+				~SegmentVideoBodyResult();
+				Data getData()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Data data_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_VIDEOSEG_MODEL_SEGMENTVIDEOBODYRESULT_H_

+ 161 - 0
videoseg/src/VideosegClient.cc

@@ -0,0 +1,161 @@
+/*
+ * 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/videoseg/VideosegClient.h>
+#include <alibabacloud/core/SimpleCredentialsProvider.h>
+
+using namespace AlibabaCloud;
+using namespace AlibabaCloud::Location;
+using namespace AlibabaCloud::Videoseg;
+using namespace AlibabaCloud::Videoseg::Model;
+
+namespace
+{
+	const std::string SERVICE_NAME = "videoseg";
+}
+
+VideosegClient::VideosegClient(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, "videoseg");
+}
+
+VideosegClient::VideosegClient(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, "videoseg");
+}
+
+VideosegClient::VideosegClient(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, "videoseg");
+}
+
+VideosegClient::~VideosegClient()
+{}
+
+VideosegClient::GetAsyncJobResultOutcome VideosegClient::getAsyncJobResult(const GetAsyncJobResultRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetAsyncJobResultOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetAsyncJobResultOutcome(GetAsyncJobResultResult(outcome.result()));
+	else
+		return GetAsyncJobResultOutcome(outcome.error());
+}
+
+void VideosegClient::getAsyncJobResultAsync(const GetAsyncJobResultRequest& request, const GetAsyncJobResultAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getAsyncJobResult(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+VideosegClient::GetAsyncJobResultOutcomeCallable VideosegClient::getAsyncJobResultCallable(const GetAsyncJobResultRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetAsyncJobResultOutcome()>>(
+			[this, request]()
+			{
+			return this->getAsyncJobResult(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+VideosegClient::SegmentHalfBodyOutcome VideosegClient::segmentHalfBody(const SegmentHalfBodyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SegmentHalfBodyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SegmentHalfBodyOutcome(SegmentHalfBodyResult(outcome.result()));
+	else
+		return SegmentHalfBodyOutcome(outcome.error());
+}
+
+void VideosegClient::segmentHalfBodyAsync(const SegmentHalfBodyRequest& request, const SegmentHalfBodyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, segmentHalfBody(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+VideosegClient::SegmentHalfBodyOutcomeCallable VideosegClient::segmentHalfBodyCallable(const SegmentHalfBodyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SegmentHalfBodyOutcome()>>(
+			[this, request]()
+			{
+			return this->segmentHalfBody(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+VideosegClient::SegmentVideoBodyOutcome VideosegClient::segmentVideoBody(const SegmentVideoBodyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SegmentVideoBodyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SegmentVideoBodyOutcome(SegmentVideoBodyResult(outcome.result()));
+	else
+		return SegmentVideoBodyOutcome(outcome.error());
+}
+
+void VideosegClient::segmentVideoBodyAsync(const SegmentVideoBodyRequest& request, const SegmentVideoBodyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, segmentVideoBody(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+VideosegClient::SegmentVideoBodyOutcomeCallable VideosegClient::segmentVideoBodyCallable(const SegmentVideoBodyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SegmentVideoBodyOutcome()>>(
+			[this, request]()
+			{
+			return this->segmentVideoBody(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+

+ 51 - 0
videoseg/src/model/GetAsyncJobResultRequest.cc

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/videoseg/model/GetAsyncJobResultRequest.h>
+
+using AlibabaCloud::Videoseg::Model::GetAsyncJobResultRequest;
+
+GetAsyncJobResultRequest::GetAsyncJobResultRequest() :
+	RpcServiceRequest("videoseg", "2020-03-20", "GetAsyncJobResult")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+GetAsyncJobResultRequest::~GetAsyncJobResultRequest()
+{}
+
+bool GetAsyncJobResultRequest::getAsync()const
+{
+	return async_;
+}
+
+void GetAsyncJobResultRequest::setAsync(bool async)
+{
+	async_ = async;
+	setBodyParameter("Async", async ? "true" : "false");
+}
+
+std::string GetAsyncJobResultRequest::getJobId()const
+{
+	return jobId_;
+}
+
+void GetAsyncJobResultRequest::setJobId(const std::string& jobId)
+{
+	jobId_ = jobId;
+	setBodyParameter("JobId", jobId);
+}
+

+ 60 - 0
videoseg/src/model/GetAsyncJobResultResult.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/videoseg/model/GetAsyncJobResultResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Videoseg;
+using namespace AlibabaCloud::Videoseg::Model;
+
+GetAsyncJobResultResult::GetAsyncJobResultResult() :
+	ServiceResult()
+{}
+
+GetAsyncJobResultResult::GetAsyncJobResultResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetAsyncJobResultResult::~GetAsyncJobResultResult()
+{}
+
+void GetAsyncJobResultResult::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["JobId"].isNull())
+		data_.jobId = dataNode["JobId"].asString();
+	if(!dataNode["Status"].isNull())
+		data_.status = dataNode["Status"].asString();
+	if(!dataNode["Result"].isNull())
+		data_.result = dataNode["Result"].asString();
+	if(!dataNode["ErrorCode"].isNull())
+		data_.errorCode = dataNode["ErrorCode"].asString();
+	if(!dataNode["ErrorMessage"].isNull())
+		data_.errorMessage = dataNode["ErrorMessage"].asString();
+
+}
+
+GetAsyncJobResultResult::Data GetAsyncJobResultResult::getData()const
+{
+	return data_;
+}
+

+ 51 - 0
videoseg/src/model/SegmentHalfBodyRequest.cc

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/videoseg/model/SegmentHalfBodyRequest.h>
+
+using AlibabaCloud::Videoseg::Model::SegmentHalfBodyRequest;
+
+SegmentHalfBodyRequest::SegmentHalfBodyRequest() :
+	RpcServiceRequest("videoseg", "2020-03-20", "SegmentHalfBody")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+SegmentHalfBodyRequest::~SegmentHalfBodyRequest()
+{}
+
+bool SegmentHalfBodyRequest::getAsync()const
+{
+	return async_;
+}
+
+void SegmentHalfBodyRequest::setAsync(bool async)
+{
+	async_ = async;
+	setBodyParameter("Async", async ? "true" : "false");
+}
+
+std::string SegmentHalfBodyRequest::getVideoUrl()const
+{
+	return videoUrl_;
+}
+
+void SegmentHalfBodyRequest::setVideoUrl(const std::string& videoUrl)
+{
+	videoUrl_ = videoUrl;
+	setBodyParameter("VideoUrl", videoUrl);
+}
+

+ 52 - 0
videoseg/src/model/SegmentHalfBodyResult.cc

@@ -0,0 +1,52 @@
+/*
+ * 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/videoseg/model/SegmentHalfBodyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Videoseg;
+using namespace AlibabaCloud::Videoseg::Model;
+
+SegmentHalfBodyResult::SegmentHalfBodyResult() :
+	ServiceResult()
+{}
+
+SegmentHalfBodyResult::SegmentHalfBodyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+SegmentHalfBodyResult::~SegmentHalfBodyResult()
+{}
+
+void SegmentHalfBodyResult::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["VideoUrl"].isNull())
+		data_.videoUrl = dataNode["VideoUrl"].asString();
+
+}
+
+SegmentHalfBodyResult::Data SegmentHalfBodyResult::getData()const
+{
+	return data_;
+}
+

+ 51 - 0
videoseg/src/model/SegmentVideoBodyRequest.cc

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/videoseg/model/SegmentVideoBodyRequest.h>
+
+using AlibabaCloud::Videoseg::Model::SegmentVideoBodyRequest;
+
+SegmentVideoBodyRequest::SegmentVideoBodyRequest() :
+	RpcServiceRequest("videoseg", "2020-03-20", "SegmentVideoBody")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+SegmentVideoBodyRequest::~SegmentVideoBodyRequest()
+{}
+
+bool SegmentVideoBodyRequest::getAsync()const
+{
+	return async_;
+}
+
+void SegmentVideoBodyRequest::setAsync(bool async)
+{
+	async_ = async;
+	setBodyParameter("Async", async ? "true" : "false");
+}
+
+std::string SegmentVideoBodyRequest::getVideoUrl()const
+{
+	return videoUrl_;
+}
+
+void SegmentVideoBodyRequest::setVideoUrl(const std::string& videoUrl)
+{
+	videoUrl_ = videoUrl;
+	setBodyParameter("VideoUrl", videoUrl);
+}
+

+ 52 - 0
videoseg/src/model/SegmentVideoBodyResult.cc

@@ -0,0 +1,52 @@
+/*
+ * 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/videoseg/model/SegmentVideoBodyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Videoseg;
+using namespace AlibabaCloud::Videoseg::Model;
+
+SegmentVideoBodyResult::SegmentVideoBodyResult() :
+	ServiceResult()
+{}
+
+SegmentVideoBodyResult::SegmentVideoBodyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+SegmentVideoBodyResult::~SegmentVideoBodyResult()
+{}
+
+void SegmentVideoBodyResult::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["VideoUrl"].isNull())
+		data_.videoUrl = dataNode["VideoUrl"].asString();
+
+}
+
+SegmentVideoBodyResult::Data SegmentVideoBodyResult::getData()const
+{
+	return data_;
+}
+