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

-offline add voice and industrycode

sdk-team 3 лет назад
Родитель
Сommit
93808b764c

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1646
+1.36.1647

+ 12 - 0
avatar/CMakeLists.txt

@@ -39,8 +39,14 @@ set(avatar_public_header_model
 	include/alibabacloud/avatar/model/QueryRunningInstanceResult.h
 	include/alibabacloud/avatar/model/QueryTimedResetOperateStatusRequest.h
 	include/alibabacloud/avatar/model/QueryTimedResetOperateStatusResult.h
+	include/alibabacloud/avatar/model/SendCommandRequest.h
+	include/alibabacloud/avatar/model/SendCommandResult.h
 	include/alibabacloud/avatar/model/SendMessageRequest.h
 	include/alibabacloud/avatar/model/SendMessageResult.h
+	include/alibabacloud/avatar/model/SendTextRequest.h
+	include/alibabacloud/avatar/model/SendTextResult.h
+	include/alibabacloud/avatar/model/SendVamlRequest.h
+	include/alibabacloud/avatar/model/SendVamlResult.h
 	include/alibabacloud/avatar/model/StartInstanceRequest.h
 	include/alibabacloud/avatar/model/StartInstanceResult.h
 	include/alibabacloud/avatar/model/StartTimedResetOperateRequest.h
@@ -76,8 +82,14 @@ set(avatar_src
 	src/model/QueryRunningInstanceResult.cc
 	src/model/QueryTimedResetOperateStatusRequest.cc
 	src/model/QueryTimedResetOperateStatusResult.cc
+	src/model/SendCommandRequest.cc
+	src/model/SendCommandResult.cc
 	src/model/SendMessageRequest.cc
 	src/model/SendMessageResult.cc
+	src/model/SendTextRequest.cc
+	src/model/SendTextResult.cc
+	src/model/SendVamlRequest.cc
+	src/model/SendVamlResult.cc
 	src/model/StartInstanceRequest.cc
 	src/model/StartInstanceResult.cc
 	src/model/StartTimedResetOperateRequest.cc

+ 24 - 0
avatar/include/alibabacloud/avatar/AvatarClient.h

@@ -40,8 +40,14 @@
 #include "model/QueryRunningInstanceResult.h"
 #include "model/QueryTimedResetOperateStatusRequest.h"
 #include "model/QueryTimedResetOperateStatusResult.h"
+#include "model/SendCommandRequest.h"
+#include "model/SendCommandResult.h"
 #include "model/SendMessageRequest.h"
 #include "model/SendMessageResult.h"
+#include "model/SendTextRequest.h"
+#include "model/SendTextResult.h"
+#include "model/SendVamlRequest.h"
+#include "model/SendVamlResult.h"
 #include "model/StartInstanceRequest.h"
 #include "model/StartInstanceResult.h"
 #include "model/StartTimedResetOperateRequest.h"
@@ -92,9 +98,18 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::QueryTimedResetOperateStatusResult> QueryTimedResetOperateStatusOutcome;
 			typedef std::future<QueryTimedResetOperateStatusOutcome> QueryTimedResetOperateStatusOutcomeCallable;
 			typedef std::function<void(const AvatarClient*, const Model::QueryTimedResetOperateStatusRequest&, const QueryTimedResetOperateStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryTimedResetOperateStatusAsyncHandler;
+			typedef Outcome<Error, Model::SendCommandResult> SendCommandOutcome;
+			typedef std::future<SendCommandOutcome> SendCommandOutcomeCallable;
+			typedef std::function<void(const AvatarClient*, const Model::SendCommandRequest&, const SendCommandOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SendCommandAsyncHandler;
 			typedef Outcome<Error, Model::SendMessageResult> SendMessageOutcome;
 			typedef std::future<SendMessageOutcome> SendMessageOutcomeCallable;
 			typedef std::function<void(const AvatarClient*, const Model::SendMessageRequest&, const SendMessageOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SendMessageAsyncHandler;
+			typedef Outcome<Error, Model::SendTextResult> SendTextOutcome;
+			typedef std::future<SendTextOutcome> SendTextOutcomeCallable;
+			typedef std::function<void(const AvatarClient*, const Model::SendTextRequest&, const SendTextOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SendTextAsyncHandler;
+			typedef Outcome<Error, Model::SendVamlResult> SendVamlOutcome;
+			typedef std::future<SendVamlOutcome> SendVamlOutcomeCallable;
+			typedef std::function<void(const AvatarClient*, const Model::SendVamlRequest&, const SendVamlOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SendVamlAsyncHandler;
 			typedef Outcome<Error, Model::StartInstanceResult> StartInstanceOutcome;
 			typedef std::future<StartInstanceOutcome> StartInstanceOutcomeCallable;
 			typedef std::function<void(const AvatarClient*, const Model::StartInstanceRequest&, const StartInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StartInstanceAsyncHandler;
@@ -148,9 +163,18 @@ namespace AlibabaCloud
 			QueryTimedResetOperateStatusOutcome queryTimedResetOperateStatus(const Model::QueryTimedResetOperateStatusRequest &request)const;
 			void queryTimedResetOperateStatusAsync(const Model::QueryTimedResetOperateStatusRequest& request, const QueryTimedResetOperateStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			QueryTimedResetOperateStatusOutcomeCallable queryTimedResetOperateStatusCallable(const Model::QueryTimedResetOperateStatusRequest& request) const;
+			SendCommandOutcome sendCommand(const Model::SendCommandRequest &request)const;
+			void sendCommandAsync(const Model::SendCommandRequest& request, const SendCommandAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SendCommandOutcomeCallable sendCommandCallable(const Model::SendCommandRequest& request) const;
 			SendMessageOutcome sendMessage(const Model::SendMessageRequest &request)const;
 			void sendMessageAsync(const Model::SendMessageRequest& request, const SendMessageAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			SendMessageOutcomeCallable sendMessageCallable(const Model::SendMessageRequest& request) const;
+			SendTextOutcome sendText(const Model::SendTextRequest &request)const;
+			void sendTextAsync(const Model::SendTextRequest& request, const SendTextAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SendTextOutcomeCallable sendTextCallable(const Model::SendTextRequest& request) const;
+			SendVamlOutcome sendVaml(const Model::SendVamlRequest &request)const;
+			void sendVamlAsync(const Model::SendVamlRequest& request, const SendVamlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SendVamlOutcomeCallable sendVamlCallable(const Model::SendVamlRequest& request) const;
 			StartInstanceOutcome startInstance(const Model::StartInstanceRequest &request)const;
 			void startInstanceAsync(const Model::StartInstanceRequest& request, const StartInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			StartInstanceOutcomeCallable startInstanceCallable(const Model::StartInstanceRequest& request) const;

+ 57 - 0
avatar/include/alibabacloud/avatar/model/SendCommandRequest.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_AVATAR_MODEL_SENDCOMMANDREQUEST_H_
+#define ALIBABACLOUD_AVATAR_MODEL_SENDCOMMANDREQUEST_H_
+
+#include <alibabacloud/avatar/AvatarExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Avatar {
+namespace Model {
+class ALIBABACLOUD_AVATAR_EXPORT SendCommandRequest : public RpcServiceRequest {
+public:
+	SendCommandRequest();
+	~SendCommandRequest();
+	bool getFeedback() const;
+	void setFeedback(bool feedback);
+	std::string getCode() const;
+	void setCode(const std::string &code);
+	std::string getUniqueCode() const;
+	void setUniqueCode(const std::string &uniqueCode);
+	long getTenantId() const;
+	void setTenantId(long tenantId);
+	std::string getSessionId() const;
+	void setSessionId(const std::string &sessionId);
+	std::map<std::string, std::string> getContent() const;
+	void setContent(const std::map<std::string, std::string> &content);
+
+private:
+	bool feedback_;
+	std::string code_;
+	std::string uniqueCode_;
+	long tenantId_;
+	std::string sessionId_;
+	std::map<std::string, std::string> content_;
+};
+} // namespace Model
+} // namespace Avatar
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_AVATAR_MODEL_SENDCOMMANDREQUEST_H_

+ 62 - 0
avatar/include/alibabacloud/avatar/model/SendCommandResult.h

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

+ 65 - 0
avatar/include/alibabacloud/avatar/model/SendTextRequest.h

@@ -0,0 +1,65 @@
+/*
+ * 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_AVATAR_MODEL_SENDTEXTREQUEST_H_
+#define ALIBABACLOUD_AVATAR_MODEL_SENDTEXTREQUEST_H_
+
+#include <alibabacloud/avatar/AvatarExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Avatar {
+namespace Model {
+class ALIBABACLOUD_AVATAR_EXPORT SendTextRequest : public RpcServiceRequest {
+public:
+	struct StreamExtension {
+		bool isStream;
+		int index;
+		std::string position;
+	};
+	SendTextRequest();
+	~SendTextRequest();
+	bool getFeedback() const;
+	void setFeedback(bool feedback);
+	std::string getUniqueCode() const;
+	void setUniqueCode(const std::string &uniqueCode);
+	StreamExtension getStreamExtension() const;
+	void setStreamExtension(const StreamExtension &streamExtension);
+	long getTenantId() const;
+	void setTenantId(long tenantId);
+	bool getInterrupt() const;
+	void setInterrupt(bool interrupt);
+	std::string getSessionId() const;
+	void setSessionId(const std::string &sessionId);
+	std::string getText() const;
+	void setText(const std::string &text);
+
+private:
+	bool feedback_;
+	std::string uniqueCode_;
+	StreamExtension streamExtension_;
+	long tenantId_;
+	bool interrupt_;
+	std::string sessionId_;
+	std::string text_;
+};
+} // namespace Model
+} // namespace Avatar
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_AVATAR_MODEL_SENDTEXTREQUEST_H_

+ 62 - 0
avatar/include/alibabacloud/avatar/model/SendTextResult.h

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

+ 48 - 0
avatar/include/alibabacloud/avatar/model/SendVamlRequest.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_AVATAR_MODEL_SENDVAMLREQUEST_H_
+#define ALIBABACLOUD_AVATAR_MODEL_SENDVAMLREQUEST_H_
+
+#include <alibabacloud/avatar/AvatarExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Avatar {
+namespace Model {
+class ALIBABACLOUD_AVATAR_EXPORT SendVamlRequest : public RpcServiceRequest {
+public:
+	SendVamlRequest();
+	~SendVamlRequest();
+	long getTenantId() const;
+	void setTenantId(long tenantId);
+	std::string getSessionId() const;
+	void setSessionId(const std::string &sessionId);
+	std::string getVaml() const;
+	void setVaml(const std::string &vaml);
+
+private:
+	long tenantId_;
+	std::string sessionId_;
+	std::string vaml_;
+};
+} // namespace Model
+} // namespace Avatar
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_AVATAR_MODEL_SENDVAMLREQUEST_H_

+ 62 - 0
avatar/include/alibabacloud/avatar/model/SendVamlResult.h

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

+ 108 - 0
avatar/src/AvatarClient.cc

@@ -375,6 +375,42 @@ AvatarClient::QueryTimedResetOperateStatusOutcomeCallable AvatarClient::queryTim
 	return task->get_future();
 }
 
+AvatarClient::SendCommandOutcome AvatarClient::sendCommand(const SendCommandRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SendCommandOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SendCommandOutcome(SendCommandResult(outcome.result()));
+	else
+		return SendCommandOutcome(outcome.error());
+}
+
+void AvatarClient::sendCommandAsync(const SendCommandRequest& request, const SendCommandAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, sendCommand(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+AvatarClient::SendCommandOutcomeCallable AvatarClient::sendCommandCallable(const SendCommandRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SendCommandOutcome()>>(
+			[this, request]()
+			{
+			return this->sendCommand(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 AvatarClient::SendMessageOutcome AvatarClient::sendMessage(const SendMessageRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -411,6 +447,78 @@ AvatarClient::SendMessageOutcomeCallable AvatarClient::sendMessageCallable(const
 	return task->get_future();
 }
 
+AvatarClient::SendTextOutcome AvatarClient::sendText(const SendTextRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SendTextOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SendTextOutcome(SendTextResult(outcome.result()));
+	else
+		return SendTextOutcome(outcome.error());
+}
+
+void AvatarClient::sendTextAsync(const SendTextRequest& request, const SendTextAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, sendText(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+AvatarClient::SendTextOutcomeCallable AvatarClient::sendTextCallable(const SendTextRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SendTextOutcome()>>(
+			[this, request]()
+			{
+			return this->sendText(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+AvatarClient::SendVamlOutcome AvatarClient::sendVaml(const SendVamlRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SendVamlOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SendVamlOutcome(SendVamlResult(outcome.result()));
+	else
+		return SendVamlOutcome(outcome.error());
+}
+
+void AvatarClient::sendVamlAsync(const SendVamlRequest& request, const SendVamlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, sendVaml(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+AvatarClient::SendVamlOutcomeCallable AvatarClient::sendVamlCallable(const SendVamlRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SendVamlOutcome()>>(
+			[this, request]()
+			{
+			return this->sendVaml(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 AvatarClient::StartInstanceOutcome AvatarClient::startInstance(const StartInstanceRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 83 - 0
avatar/src/model/SendCommandRequest.cc

@@ -0,0 +1,83 @@
+/*
+ * 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/avatar/model/SendCommandRequest.h>
+
+using AlibabaCloud::Avatar::Model::SendCommandRequest;
+
+SendCommandRequest::SendCommandRequest()
+    : RpcServiceRequest("avatar", "2022-01-30", "SendCommand") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+SendCommandRequest::~SendCommandRequest() {}
+
+bool SendCommandRequest::getFeedback() const {
+  return feedback_;
+}
+
+void SendCommandRequest::setFeedback(bool feedback) {
+  feedback_ = feedback;
+  setParameter(std::string("Feedback"), feedback ? "true" : "false");
+}
+
+std::string SendCommandRequest::getCode() const {
+  return code_;
+}
+
+void SendCommandRequest::setCode(const std::string &code) {
+  code_ = code;
+  setParameter(std::string("Code"), code);
+}
+
+std::string SendCommandRequest::getUniqueCode() const {
+  return uniqueCode_;
+}
+
+void SendCommandRequest::setUniqueCode(const std::string &uniqueCode) {
+  uniqueCode_ = uniqueCode;
+  setParameter(std::string("UniqueCode"), uniqueCode);
+}
+
+long SendCommandRequest::getTenantId() const {
+  return tenantId_;
+}
+
+void SendCommandRequest::setTenantId(long tenantId) {
+  tenantId_ = tenantId;
+  setParameter(std::string("TenantId"), std::to_string(tenantId));
+}
+
+std::string SendCommandRequest::getSessionId() const {
+  return sessionId_;
+}
+
+void SendCommandRequest::setSessionId(const std::string &sessionId) {
+  sessionId_ = sessionId;
+  setParameter(std::string("SessionId"), sessionId);
+}
+
+std::map<std::string, std::string> SendCommandRequest::getContent() const {
+  return content_;
+}
+
+void SendCommandRequest::setContent(const std::map<std::string, std::string> &content) {
+  content_ = content;
+  for(auto const &iter1 : content) {
+    setParameter(std::string("Content") + "." + iter1.first, iter1.second);
+  }
+}
+

+ 75 - 0
avatar/src/model/SendCommandResult.cc

@@ -0,0 +1,75 @@
+/*
+ * 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/avatar/model/SendCommandResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Avatar;
+using namespace AlibabaCloud::Avatar::Model;
+
+SendCommandResult::SendCommandResult() :
+	ServiceResult()
+{}
+
+SendCommandResult::SendCommandResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+SendCommandResult::~SendCommandResult()
+{}
+
+void SendCommandResult::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["SessionId"].isNull())
+		data_.sessionId = dataNode["SessionId"].asString();
+	if(!dataNode["UniqueCode"].isNull())
+		data_.uniqueCode = dataNode["UniqueCode"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string SendCommandResult::getMessage()const
+{
+	return message_;
+}
+
+SendCommandResult::Data SendCommandResult::getData()const
+{
+	return data_;
+}
+
+std::string SendCommandResult::getCode()const
+{
+	return code_;
+}
+
+bool SendCommandResult::getSuccess()const
+{
+	return success_;
+}
+

+ 92 - 0
avatar/src/model/SendTextRequest.cc

@@ -0,0 +1,92 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/avatar/model/SendTextRequest.h>
+
+using AlibabaCloud::Avatar::Model::SendTextRequest;
+
+SendTextRequest::SendTextRequest()
+    : RpcServiceRequest("avatar", "2022-01-30", "SendText") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+SendTextRequest::~SendTextRequest() {}
+
+bool SendTextRequest::getFeedback() const {
+  return feedback_;
+}
+
+void SendTextRequest::setFeedback(bool feedback) {
+  feedback_ = feedback;
+  setParameter(std::string("Feedback"), feedback ? "true" : "false");
+}
+
+std::string SendTextRequest::getUniqueCode() const {
+  return uniqueCode_;
+}
+
+void SendTextRequest::setUniqueCode(const std::string &uniqueCode) {
+  uniqueCode_ = uniqueCode;
+  setParameter(std::string("UniqueCode"), uniqueCode);
+}
+
+SendTextRequest::StreamExtension SendTextRequest::getStreamExtension() const {
+  return streamExtension_;
+}
+
+void SendTextRequest::setStreamExtension(const SendTextRequest::StreamExtension &streamExtension) {
+  streamExtension_ = streamExtension;
+  setParameter(std::string("StreamExtension") + ".IsStream", streamExtension.isStream ? "true" : "false");
+  setParameter(std::string("StreamExtension") + ".Index", std::to_string(streamExtension.index));
+  setParameter(std::string("StreamExtension") + ".Position", streamExtension.position);
+}
+
+long SendTextRequest::getTenantId() const {
+  return tenantId_;
+}
+
+void SendTextRequest::setTenantId(long tenantId) {
+  tenantId_ = tenantId;
+  setParameter(std::string("TenantId"), std::to_string(tenantId));
+}
+
+bool SendTextRequest::getInterrupt() const {
+  return interrupt_;
+}
+
+void SendTextRequest::setInterrupt(bool interrupt) {
+  interrupt_ = interrupt;
+  setParameter(std::string("Interrupt"), interrupt ? "true" : "false");
+}
+
+std::string SendTextRequest::getSessionId() const {
+  return sessionId_;
+}
+
+void SendTextRequest::setSessionId(const std::string &sessionId) {
+  sessionId_ = sessionId;
+  setParameter(std::string("SessionId"), sessionId);
+}
+
+std::string SendTextRequest::getText() const {
+  return text_;
+}
+
+void SendTextRequest::setText(const std::string &text) {
+  text_ = text;
+  setParameter(std::string("Text"), text);
+}
+

+ 75 - 0
avatar/src/model/SendTextResult.cc

@@ -0,0 +1,75 @@
+/*
+ * 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/avatar/model/SendTextResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Avatar;
+using namespace AlibabaCloud::Avatar::Model;
+
+SendTextResult::SendTextResult() :
+	ServiceResult()
+{}
+
+SendTextResult::SendTextResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+SendTextResult::~SendTextResult()
+{}
+
+void SendTextResult::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["SessionId"].isNull())
+		data_.sessionId = dataNode["SessionId"].asString();
+	if(!dataNode["UniqueCode"].isNull())
+		data_.uniqueCode = dataNode["UniqueCode"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string SendTextResult::getMessage()const
+{
+	return message_;
+}
+
+SendTextResult::Data SendTextResult::getData()const
+{
+	return data_;
+}
+
+std::string SendTextResult::getCode()const
+{
+	return code_;
+}
+
+bool SendTextResult::getSuccess()const
+{
+	return success_;
+}
+

+ 54 - 0
avatar/src/model/SendVamlRequest.cc

@@ -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.
+ */
+
+#include <alibabacloud/avatar/model/SendVamlRequest.h>
+
+using AlibabaCloud::Avatar::Model::SendVamlRequest;
+
+SendVamlRequest::SendVamlRequest()
+    : RpcServiceRequest("avatar", "2022-01-30", "SendVaml") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+SendVamlRequest::~SendVamlRequest() {}
+
+long SendVamlRequest::getTenantId() const {
+  return tenantId_;
+}
+
+void SendVamlRequest::setTenantId(long tenantId) {
+  tenantId_ = tenantId;
+  setParameter(std::string("TenantId"), std::to_string(tenantId));
+}
+
+std::string SendVamlRequest::getSessionId() const {
+  return sessionId_;
+}
+
+void SendVamlRequest::setSessionId(const std::string &sessionId) {
+  sessionId_ = sessionId;
+  setParameter(std::string("SessionId"), sessionId);
+}
+
+std::string SendVamlRequest::getVaml() const {
+  return vaml_;
+}
+
+void SendVamlRequest::setVaml(const std::string &vaml) {
+  vaml_ = vaml;
+  setParameter(std::string("Vaml"), vaml);
+}
+

+ 75 - 0
avatar/src/model/SendVamlResult.cc

@@ -0,0 +1,75 @@
+/*
+ * 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/avatar/model/SendVamlResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Avatar;
+using namespace AlibabaCloud::Avatar::Model;
+
+SendVamlResult::SendVamlResult() :
+	ServiceResult()
+{}
+
+SendVamlResult::SendVamlResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+SendVamlResult::~SendVamlResult()
+{}
+
+void SendVamlResult::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["SessionId"].isNull())
+		data_.sessionId = dataNode["SessionId"].asString();
+	if(!dataNode["UniqueCode"].isNull())
+		data_.uniqueCode = dataNode["UniqueCode"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string SendVamlResult::getMessage()const
+{
+	return message_;
+}
+
+SendVamlResult::Data SendVamlResult::getData()const
+{
+	return data_;
+}
+
+std::string SendVamlResult::getCode()const
+{
+	return code_;
+}
+
+bool SendVamlResult::getSuccess()const
+{
+	return success_;
+}
+