Ver Fonte

Update to support new apis.

sdk-team há 1 ano atrás
pai
commit
cb3e058f3f
30 ficheiros alterados com 724 adições e 1 exclusões
  1. 1 1
      VERSION
  2. 8 0
      live/CMakeLists.txt
  3. 16 0
      live/include/alibabacloud/live/LiveClient.h
  4. 6 0
      live/include/alibabacloud/live/model/AddLiveAIProduceRulesRequest.h
  5. 7 0
      live/include/alibabacloud/live/model/AddLiveDomainRequest.h
  6. 48 0
      live/include/alibabacloud/live/model/ChangeLiveDomainResourceGroupRequest.h
  7. 49 0
      live/include/alibabacloud/live/model/ChangeLiveDomainResourceGroupResult.h
  8. 7 0
      live/include/alibabacloud/live/model/CreateCasterRequest.h
  9. 7 0
      live/include/alibabacloud/live/model/DescribeCastersRequest.h
  10. 6 0
      live/include/alibabacloud/live/model/DescribeCastersResult.h
  11. 1 0
      live/include/alibabacloud/live/model/DescribeLiveAIProduceRulesResult.h
  12. 57 0
      live/include/alibabacloud/live/model/DescribeLiveTrafficDomainLogRequest.h
  13. 73 0
      live/include/alibabacloud/live/model/DescribeLiveTrafficDomainLogResult.h
  14. 1 0
      live/include/alibabacloud/live/model/StartLiveMPUTaskRequest.h
  15. 6 0
      live/include/alibabacloud/live/model/UpdateLiveAIProduceRulesRequest.h
  16. 1 0
      live/include/alibabacloud/live/model/UpdateLiveMPUTaskRequest.h
  17. 72 0
      live/src/LiveClient.cc
  18. 18 0
      live/src/model/AddLiveAIProduceRulesRequest.cc
  19. 14 0
      live/src/model/AddLiveDomainRequest.cc
  20. 54 0
      live/src/model/ChangeLiveDomainResourceGroupRequest.cc
  21. 44 0
      live/src/model/ChangeLiveDomainResourceGroupResult.cc
  22. 14 0
      live/src/model/CreateCasterRequest.cc
  23. 14 0
      live/src/model/DescribeCastersRequest.cc
  24. 10 0
      live/src/model/DescribeCastersResult.cc
  25. 2 0
      live/src/model/DescribeLiveAIProduceRulesResult.cc
  26. 81 0
      live/src/model/DescribeLiveTrafficDomainLogRequest.cc
  27. 87 0
      live/src/model/DescribeLiveTrafficDomainLogResult.cc
  28. 1 0
      live/src/model/StartLiveMPUTaskRequest.cc
  29. 18 0
      live/src/model/UpdateLiveAIProduceRulesRequest.cc
  30. 1 0
      live/src/model/UpdateLiveMPUTaskRequest.cc

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.2010
+1.36.2011

+ 8 - 0
live/CMakeLists.txt

@@ -103,6 +103,8 @@ set(live_public_header_model
 	include/alibabacloud/live/model/CancelMuteAllGroupUserResult.h
 	include/alibabacloud/live/model/CancelMuteGroupUserRequest.h
 	include/alibabacloud/live/model/CancelMuteGroupUserResult.h
+	include/alibabacloud/live/model/ChangeLiveDomainResourceGroupRequest.h
+	include/alibabacloud/live/model/ChangeLiveDomainResourceGroupResult.h
 	include/alibabacloud/live/model/CheckLiveMessageUsersInGroupRequest.h
 	include/alibabacloud/live/model/CheckLiveMessageUsersInGroupResult.h
 	include/alibabacloud/live/model/CheckLiveMessageUsersOnlineRequest.h
@@ -487,6 +489,8 @@ set(live_public_header_model
 	include/alibabacloud/live/model/DescribeLiveStreamsTotalCountResult.h
 	include/alibabacloud/live/model/DescribeLiveTopDomainsByFlowRequest.h
 	include/alibabacloud/live/model/DescribeLiveTopDomainsByFlowResult.h
+	include/alibabacloud/live/model/DescribeLiveTrafficDomainLogRequest.h
+	include/alibabacloud/live/model/DescribeLiveTrafficDomainLogResult.h
 	include/alibabacloud/live/model/DescribeLiveUpVideoAudioInfoRequest.h
 	include/alibabacloud/live/model/DescribeLiveUpVideoAudioInfoResult.h
 	include/alibabacloud/live/model/DescribeLiveUserBillPredictionRequest.h
@@ -904,6 +908,8 @@ set(live_src
 	src/model/CancelMuteAllGroupUserResult.cc
 	src/model/CancelMuteGroupUserRequest.cc
 	src/model/CancelMuteGroupUserResult.cc
+	src/model/ChangeLiveDomainResourceGroupRequest.cc
+	src/model/ChangeLiveDomainResourceGroupResult.cc
 	src/model/CheckLiveMessageUsersInGroupRequest.cc
 	src/model/CheckLiveMessageUsersInGroupResult.cc
 	src/model/CheckLiveMessageUsersOnlineRequest.cc
@@ -1288,6 +1294,8 @@ set(live_src
 	src/model/DescribeLiveStreamsTotalCountResult.cc
 	src/model/DescribeLiveTopDomainsByFlowRequest.cc
 	src/model/DescribeLiveTopDomainsByFlowResult.cc
+	src/model/DescribeLiveTrafficDomainLogRequest.cc
+	src/model/DescribeLiveTrafficDomainLogResult.cc
 	src/model/DescribeLiveUpVideoAudioInfoRequest.cc
 	src/model/DescribeLiveUpVideoAudioInfoResult.cc
 	src/model/DescribeLiveUserBillPredictionRequest.cc

+ 16 - 0
live/include/alibabacloud/live/LiveClient.h

@@ -104,6 +104,8 @@
 #include "model/CancelMuteAllGroupUserResult.h"
 #include "model/CancelMuteGroupUserRequest.h"
 #include "model/CancelMuteGroupUserResult.h"
+#include "model/ChangeLiveDomainResourceGroupRequest.h"
+#include "model/ChangeLiveDomainResourceGroupResult.h"
 #include "model/CheckLiveMessageUsersInGroupRequest.h"
 #include "model/CheckLiveMessageUsersInGroupResult.h"
 #include "model/CheckLiveMessageUsersOnlineRequest.h"
@@ -488,6 +490,8 @@
 #include "model/DescribeLiveStreamsTotalCountResult.h"
 #include "model/DescribeLiveTopDomainsByFlowRequest.h"
 #include "model/DescribeLiveTopDomainsByFlowResult.h"
+#include "model/DescribeLiveTrafficDomainLogRequest.h"
+#include "model/DescribeLiveTrafficDomainLogResult.h"
 #include "model/DescribeLiveUpVideoAudioInfoRequest.h"
 #include "model/DescribeLiveUpVideoAudioInfoResult.h"
 #include "model/DescribeLiveUserBillPredictionRequest.h"
@@ -952,6 +956,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CancelMuteGroupUserResult> CancelMuteGroupUserOutcome;
 			typedef std::future<CancelMuteGroupUserOutcome> CancelMuteGroupUserOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::CancelMuteGroupUserRequest&, const CancelMuteGroupUserOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CancelMuteGroupUserAsyncHandler;
+			typedef Outcome<Error, Model::ChangeLiveDomainResourceGroupResult> ChangeLiveDomainResourceGroupOutcome;
+			typedef std::future<ChangeLiveDomainResourceGroupOutcome> ChangeLiveDomainResourceGroupOutcomeCallable;
+			typedef std::function<void(const LiveClient*, const Model::ChangeLiveDomainResourceGroupRequest&, const ChangeLiveDomainResourceGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ChangeLiveDomainResourceGroupAsyncHandler;
 			typedef Outcome<Error, Model::CheckLiveMessageUsersInGroupResult> CheckLiveMessageUsersInGroupOutcome;
 			typedef std::future<CheckLiveMessageUsersInGroupOutcome> CheckLiveMessageUsersInGroupOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::CheckLiveMessageUsersInGroupRequest&, const CheckLiveMessageUsersInGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CheckLiveMessageUsersInGroupAsyncHandler;
@@ -1528,6 +1535,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeLiveTopDomainsByFlowResult> DescribeLiveTopDomainsByFlowOutcome;
 			typedef std::future<DescribeLiveTopDomainsByFlowOutcome> DescribeLiveTopDomainsByFlowOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::DescribeLiveTopDomainsByFlowRequest&, const DescribeLiveTopDomainsByFlowOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeLiveTopDomainsByFlowAsyncHandler;
+			typedef Outcome<Error, Model::DescribeLiveTrafficDomainLogResult> DescribeLiveTrafficDomainLogOutcome;
+			typedef std::future<DescribeLiveTrafficDomainLogOutcome> DescribeLiveTrafficDomainLogOutcomeCallable;
+			typedef std::function<void(const LiveClient*, const Model::DescribeLiveTrafficDomainLogRequest&, const DescribeLiveTrafficDomainLogOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeLiveTrafficDomainLogAsyncHandler;
 			typedef Outcome<Error, Model::DescribeLiveUpVideoAudioInfoResult> DescribeLiveUpVideoAudioInfoOutcome;
 			typedef std::future<DescribeLiveUpVideoAudioInfoOutcome> DescribeLiveUpVideoAudioInfoOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::DescribeLiveUpVideoAudioInfoRequest&, const DescribeLiveUpVideoAudioInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeLiveUpVideoAudioInfoAsyncHandler;
@@ -2154,6 +2164,9 @@ namespace AlibabaCloud
 			CancelMuteGroupUserOutcome cancelMuteGroupUser(const Model::CancelMuteGroupUserRequest &request)const;
 			void cancelMuteGroupUserAsync(const Model::CancelMuteGroupUserRequest& request, const CancelMuteGroupUserAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CancelMuteGroupUserOutcomeCallable cancelMuteGroupUserCallable(const Model::CancelMuteGroupUserRequest& request) const;
+			ChangeLiveDomainResourceGroupOutcome changeLiveDomainResourceGroup(const Model::ChangeLiveDomainResourceGroupRequest &request)const;
+			void changeLiveDomainResourceGroupAsync(const Model::ChangeLiveDomainResourceGroupRequest& request, const ChangeLiveDomainResourceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ChangeLiveDomainResourceGroupOutcomeCallable changeLiveDomainResourceGroupCallable(const Model::ChangeLiveDomainResourceGroupRequest& request) const;
 			CheckLiveMessageUsersInGroupOutcome checkLiveMessageUsersInGroup(const Model::CheckLiveMessageUsersInGroupRequest &request)const;
 			void checkLiveMessageUsersInGroupAsync(const Model::CheckLiveMessageUsersInGroupRequest& request, const CheckLiveMessageUsersInGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CheckLiveMessageUsersInGroupOutcomeCallable checkLiveMessageUsersInGroupCallable(const Model::CheckLiveMessageUsersInGroupRequest& request) const;
@@ -2730,6 +2743,9 @@ namespace AlibabaCloud
 			DescribeLiveTopDomainsByFlowOutcome describeLiveTopDomainsByFlow(const Model::DescribeLiveTopDomainsByFlowRequest &request)const;
 			void describeLiveTopDomainsByFlowAsync(const Model::DescribeLiveTopDomainsByFlowRequest& request, const DescribeLiveTopDomainsByFlowAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeLiveTopDomainsByFlowOutcomeCallable describeLiveTopDomainsByFlowCallable(const Model::DescribeLiveTopDomainsByFlowRequest& request) const;
+			DescribeLiveTrafficDomainLogOutcome describeLiveTrafficDomainLog(const Model::DescribeLiveTrafficDomainLogRequest &request)const;
+			void describeLiveTrafficDomainLogAsync(const Model::DescribeLiveTrafficDomainLogRequest& request, const DescribeLiveTrafficDomainLogAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeLiveTrafficDomainLogOutcomeCallable describeLiveTrafficDomainLogCallable(const Model::DescribeLiveTrafficDomainLogRequest& request) const;
 			DescribeLiveUpVideoAudioInfoOutcome describeLiveUpVideoAudioInfo(const Model::DescribeLiveUpVideoAudioInfoRequest &request)const;
 			void describeLiveUpVideoAudioInfoAsync(const Model::DescribeLiveUpVideoAudioInfoRequest& request, const DescribeLiveUpVideoAudioInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeLiveUpVideoAudioInfoOutcomeCallable describeLiveUpVideoAudioInfoCallable(const Model::DescribeLiveUpVideoAudioInfoRequest& request) const;

+ 6 - 0
live/include/alibabacloud/live/model/AddLiveAIProduceRulesRequest.h

@@ -32,6 +32,8 @@ public:
 	~AddLiveAIProduceRulesRequest();
 	std::string getDescription() const;
 	void setDescription(const std::string &description);
+	std::string getSuffix() const;
+	void setSuffix(const std::string &suffix);
 	std::string getSubtitleName() const;
 	void setSubtitleName(const std::string &subtitleName);
 	std::string getApp() const;
@@ -40,6 +42,8 @@ public:
 	void setOwnerId(long ownerId);
 	bool getIsLazy() const;
 	void setIsLazy(bool isLazy);
+	std::string getStudioName() const;
+	void setStudioName(const std::string &studioName);
 	std::string getLiveTemplate() const;
 	void setLiveTemplate(const std::string &liveTemplate);
 	std::string getDomain() const;
@@ -49,10 +53,12 @@ public:
 
 private:
 	std::string description_;
+	std::string suffix_;
 	std::string subtitleName_;
 	std::string app_;
 	long ownerId_;
 	bool isLazy_;
+	std::string studioName_;
 	std::string liveTemplate_;
 	std::string domain_;
 	bool isOrigin_;

+ 7 - 0
live/include/alibabacloud/live/model/AddLiveDomainRequest.h

@@ -28,6 +28,10 @@ namespace Live {
 namespace Model {
 class ALIBABACLOUD_LIVE_EXPORT AddLiveDomainRequest : public RpcServiceRequest {
 public:
+	struct Tag {
+		std::string value;
+		std::string key;
+	};
 	AddLiveDomainRequest();
 	~AddLiveDomainRequest();
 	std::string getResourceGroupId() const;
@@ -36,6 +40,8 @@ public:
 	void setSecurityToken(const std::string &securityToken);
 	std::string getScope() const;
 	void setScope(const std::string &scope);
+	std::vector<Tag> getTag() const;
+	void setTag(const std::vector<Tag> &tag);
 	std::string getTopLevelDomain() const;
 	void setTopLevelDomain(const std::string &topLevelDomain);
 	std::string getOwnerAccount() const;
@@ -55,6 +61,7 @@ private:
 	std::string resourceGroupId_;
 	std::string securityToken_;
 	std::string scope_;
+	std::vector<Tag> tag_;
 	std::string topLevelDomain_;
 	std::string ownerAccount_;
 	std::string domainName_;

+ 48 - 0
live/include/alibabacloud/live/model/ChangeLiveDomainResourceGroupRequest.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_LIVE_MODEL_CHANGELIVEDOMAINRESOURCEGROUPREQUEST_H_
+#define ALIBABACLOUD_LIVE_MODEL_CHANGELIVEDOMAINRESOURCEGROUPREQUEST_H_
+
+#include <alibabacloud/live/LiveExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Live {
+namespace Model {
+class ALIBABACLOUD_LIVE_EXPORT ChangeLiveDomainResourceGroupRequest : public RpcServiceRequest {
+public:
+	ChangeLiveDomainResourceGroupRequest();
+	~ChangeLiveDomainResourceGroupRequest();
+	std::string getDomainName() const;
+	void setDomainName(const std::string &domainName);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+	std::string getNewResourceGroupId() const;
+	void setNewResourceGroupId(const std::string &newResourceGroupId);
+
+private:
+	std::string domainName_;
+	long ownerId_;
+	std::string newResourceGroupId_;
+};
+} // namespace Model
+} // namespace Live
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_LIVE_MODEL_CHANGELIVEDOMAINRESOURCEGROUPREQUEST_H_

+ 49 - 0
live/include/alibabacloud/live/model/ChangeLiveDomainResourceGroupResult.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_LIVE_MODEL_CHANGELIVEDOMAINRESOURCEGROUPRESULT_H_
+#define ALIBABACLOUD_LIVE_MODEL_CHANGELIVEDOMAINRESOURCEGROUPRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/live/LiveExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Live
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LIVE_EXPORT ChangeLiveDomainResourceGroupResult : public ServiceResult
+			{
+			public:
+
+
+				ChangeLiveDomainResourceGroupResult();
+				explicit ChangeLiveDomainResourceGroupResult(const std::string &payload);
+				~ChangeLiveDomainResourceGroupResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LIVE_MODEL_CHANGELIVEDOMAINRESOURCEGROUPRESULT_H_

+ 7 - 0
live/include/alibabacloud/live/model/CreateCasterRequest.h

@@ -28,6 +28,10 @@ namespace Live {
 namespace Model {
 class ALIBABACLOUD_LIVE_EXPORT CreateCasterRequest : public RpcServiceRequest {
 public:
+	struct Tag {
+		std::string key;
+		std::string value;
+	};
 	CreateCasterRequest();
 	~CreateCasterRequest();
 	std::string getClientToken() const;
@@ -36,6 +40,8 @@ public:
 	void setResourceGroupId(const std::string &resourceGroupId);
 	std::string getCasterName() const;
 	void setCasterName(const std::string &casterName);
+	std::vector<Tag> getTag() const;
+	void setTag(const std::vector<Tag> &tag);
 	std::string getCasterTemplate() const;
 	void setCasterTemplate(const std::string &casterTemplate);
 	std::string getExpireTime() const;
@@ -55,6 +61,7 @@ private:
 	std::string clientToken_;
 	std::string resourceGroupId_;
 	std::string casterName_;
+	std::vector<Tag> tag_;
 	std::string casterTemplate_;
 	std::string expireTime_;
 	int normType_;

+ 7 - 0
live/include/alibabacloud/live/model/DescribeCastersRequest.h

@@ -28,6 +28,10 @@ namespace Live {
 namespace Model {
 class ALIBABACLOUD_LIVE_EXPORT DescribeCastersRequest : public RpcServiceRequest {
 public:
+	struct Tag {
+		std::string key;
+		std::string value;
+	};
 	DescribeCastersRequest();
 	~DescribeCastersRequest();
 	std::string getStartTime() const;
@@ -40,6 +44,8 @@ public:
 	void setCasterName(const std::string &casterName);
 	int getPageSize() const;
 	void setPageSize(int pageSize);
+	std::vector<Tag> getTag() const;
+	void setTag(const std::vector<Tag> &tag);
 	std::string getNormType() const;
 	void setNormType(const std::string &normType);
 	std::string getCasterId() const;
@@ -61,6 +67,7 @@ private:
 	std::string resourceGroupId_;
 	std::string casterName_;
 	int pageSize_;
+	std::vector<Tag> tag_;
 	std::string normType_;
 	std::string casterId_;
 	std::string endTime_;

+ 6 - 0
live/include/alibabacloud/live/model/DescribeCastersResult.h

@@ -34,6 +34,11 @@ namespace AlibabaCloud
 			public:
 				struct Caster
 				{
+					struct Tag
+					{
+						std::string tagKey;
+						std::string tagValue;
+					};
 					int status;
 					std::string casterTemplate;
 					int channelEnable;
@@ -50,6 +55,7 @@ namespace AlibabaCloud
 					std::string chargeType;
 					std::string expireTime;
 					std::string casterId;
+					std::vector<Caster::Tag> tags;
 				};
 
 

+ 1 - 0
live/include/alibabacloud/live/model/DescribeLiveAIProduceRulesResult.h

@@ -41,6 +41,7 @@ namespace AlibabaCloud
 					std::string rulesId;
 					std::string subtitleName;
 					bool isOrigin;
+					std::string studioName;
 					std::string suffixName;
 					std::string domain;
 					std::string liveTemplate;

+ 57 - 0
live/include/alibabacloud/live/model/DescribeLiveTrafficDomainLogRequest.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_LIVE_MODEL_DESCRIBELIVETRAFFICDOMAINLOGREQUEST_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBELIVETRAFFICDOMAINLOGREQUEST_H_
+
+#include <alibabacloud/live/LiveExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Live {
+namespace Model {
+class ALIBABACLOUD_LIVE_EXPORT DescribeLiveTrafficDomainLogRequest : public RpcServiceRequest {
+public:
+	DescribeLiveTrafficDomainLogRequest();
+	~DescribeLiveTrafficDomainLogRequest();
+	std::string getStartTime() const;
+	void setStartTime(const std::string &startTime);
+	long getPageNumber() const;
+	void setPageNumber(long pageNumber);
+	long getPageSize() const;
+	void setPageSize(long pageSize);
+	std::string getDomainName() const;
+	void setDomainName(const std::string &domainName);
+	std::string getEndTime() const;
+	void setEndTime(const std::string &endTime);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+
+private:
+	std::string startTime_;
+	long pageNumber_;
+	long pageSize_;
+	std::string domainName_;
+	std::string endTime_;
+	long ownerId_;
+};
+} // namespace Model
+} // namespace Live
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBELIVETRAFFICDOMAINLOGREQUEST_H_

+ 73 - 0
live/include/alibabacloud/live/model/DescribeLiveTrafficDomainLogResult.h

@@ -0,0 +1,73 @@
+/*
+ * 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_LIVE_MODEL_DESCRIBELIVETRAFFICDOMAINLOGRESULT_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBELIVETRAFFICDOMAINLOGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/live/LiveExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Live
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LIVE_EXPORT DescribeLiveTrafficDomainLogResult : public ServiceResult
+			{
+			public:
+				struct DomainLogDetail
+				{
+					struct PageInfos
+					{
+						long pageSize;
+						long total;
+						long pageIndex;
+					};
+					struct LogInfoDetail
+					{
+						long logSize;
+						std::string endTime;
+						std::string startTime;
+						std::string logName;
+						std::string logPath;
+					};
+					std::vector<DomainLogDetail::LogInfoDetail> logInfos;
+					PageInfos pageInfos;
+					long logCount;
+				};
+
+
+				DescribeLiveTrafficDomainLogResult();
+				explicit DescribeLiveTrafficDomainLogResult(const std::string &payload);
+				~DescribeLiveTrafficDomainLogResult();
+				std::string getDomainName()const;
+				std::vector<DomainLogDetail> getDomainLogDetails()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string domainName_;
+				std::vector<DomainLogDetail> domainLogDetails_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBELIVETRAFFICDOMAINLOGRESULT_H_

+ 1 - 0
live/include/alibabacloud/live/model/StartLiveMPUTaskRequest.h

@@ -36,6 +36,7 @@ public:
 		std::string userId;
 	};
 	struct MultiStreamURL {
+		bool isAliCdn;
 		std::string uRL;
 	};
 	struct SeiParams {

+ 6 - 0
live/include/alibabacloud/live/model/UpdateLiveAIProduceRulesRequest.h

@@ -32,6 +32,8 @@ public:
 	~UpdateLiveAIProduceRulesRequest();
 	std::string getDescription() const;
 	void setDescription(const std::string &description);
+	std::string getSuffix() const;
+	void setSuffix(const std::string &suffix);
 	std::string getSubtitleName() const;
 	void setSubtitleName(const std::string &subtitleName);
 	std::string getRulesId() const;
@@ -42,6 +44,8 @@ public:
 	void setOwnerId(long ownerId);
 	bool getIsLazy() const;
 	void setIsLazy(bool isLazy);
+	std::string getStudioName() const;
+	void setStudioName(const std::string &studioName);
 	std::string getLiveTemplate() const;
 	void setLiveTemplate(const std::string &liveTemplate);
 	std::string getDomain() const;
@@ -53,11 +57,13 @@ public:
 
 private:
 	std::string description_;
+	std::string suffix_;
 	std::string subtitleName_;
 	std::string rulesId_;
 	std::string app_;
 	long ownerId_;
 	bool isLazy_;
+	std::string studioName_;
 	std::string liveTemplate_;
 	std::string domain_;
 	bool isOrigin_;

+ 1 - 0
live/include/alibabacloud/live/model/UpdateLiveMPUTaskRequest.h

@@ -29,6 +29,7 @@ namespace Model {
 class ALIBABACLOUD_LIVE_EXPORT UpdateLiveMPUTaskRequest : public RpcServiceRequest {
 public:
 	struct MultiStreamURL {
+		bool isAliCdn;
 		std::string uRL;
 	};
 	struct SingleSubParams {

+ 72 - 0
live/src/LiveClient.cc

@@ -1527,6 +1527,42 @@ LiveClient::CancelMuteGroupUserOutcomeCallable LiveClient::cancelMuteGroupUserCa
 	return task->get_future();
 }
 
+LiveClient::ChangeLiveDomainResourceGroupOutcome LiveClient::changeLiveDomainResourceGroup(const ChangeLiveDomainResourceGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ChangeLiveDomainResourceGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ChangeLiveDomainResourceGroupOutcome(ChangeLiveDomainResourceGroupResult(outcome.result()));
+	else
+		return ChangeLiveDomainResourceGroupOutcome(outcome.error());
+}
+
+void LiveClient::changeLiveDomainResourceGroupAsync(const ChangeLiveDomainResourceGroupRequest& request, const ChangeLiveDomainResourceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, changeLiveDomainResourceGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LiveClient::ChangeLiveDomainResourceGroupOutcomeCallable LiveClient::changeLiveDomainResourceGroupCallable(const ChangeLiveDomainResourceGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ChangeLiveDomainResourceGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->changeLiveDomainResourceGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 LiveClient::CheckLiveMessageUsersInGroupOutcome LiveClient::checkLiveMessageUsersInGroup(const CheckLiveMessageUsersInGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -8439,6 +8475,42 @@ LiveClient::DescribeLiveTopDomainsByFlowOutcomeCallable LiveClient::describeLive
 	return task->get_future();
 }
 
+LiveClient::DescribeLiveTrafficDomainLogOutcome LiveClient::describeLiveTrafficDomainLog(const DescribeLiveTrafficDomainLogRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeLiveTrafficDomainLogOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeLiveTrafficDomainLogOutcome(DescribeLiveTrafficDomainLogResult(outcome.result()));
+	else
+		return DescribeLiveTrafficDomainLogOutcome(outcome.error());
+}
+
+void LiveClient::describeLiveTrafficDomainLogAsync(const DescribeLiveTrafficDomainLogRequest& request, const DescribeLiveTrafficDomainLogAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeLiveTrafficDomainLog(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LiveClient::DescribeLiveTrafficDomainLogOutcomeCallable LiveClient::describeLiveTrafficDomainLogCallable(const DescribeLiveTrafficDomainLogRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeLiveTrafficDomainLogOutcome()>>(
+			[this, request]()
+			{
+			return this->describeLiveTrafficDomainLog(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 LiveClient::DescribeLiveUpVideoAudioInfoOutcome LiveClient::describeLiveUpVideoAudioInfo(const DescribeLiveUpVideoAudioInfoRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 18 - 0
live/src/model/AddLiveAIProduceRulesRequest.cc

@@ -34,6 +34,15 @@ void AddLiveAIProduceRulesRequest::setDescription(const std::string &description
   setParameter(std::string("Description"), description);
 }
 
+std::string AddLiveAIProduceRulesRequest::getSuffix() const {
+  return suffix_;
+}
+
+void AddLiveAIProduceRulesRequest::setSuffix(const std::string &suffix) {
+  suffix_ = suffix;
+  setParameter(std::string("Suffix"), suffix);
+}
+
 std::string AddLiveAIProduceRulesRequest::getSubtitleName() const {
   return subtitleName_;
 }
@@ -70,6 +79,15 @@ void AddLiveAIProduceRulesRequest::setIsLazy(bool isLazy) {
   setParameter(std::string("IsLazy"), isLazy ? "true" : "false");
 }
 
+std::string AddLiveAIProduceRulesRequest::getStudioName() const {
+  return studioName_;
+}
+
+void AddLiveAIProduceRulesRequest::setStudioName(const std::string &studioName) {
+  studioName_ = studioName;
+  setParameter(std::string("StudioName"), studioName);
+}
+
 std::string AddLiveAIProduceRulesRequest::getLiveTemplate() const {
   return liveTemplate_;
 }

+ 14 - 0
live/src/model/AddLiveDomainRequest.cc

@@ -52,6 +52,20 @@ void AddLiveDomainRequest::setScope(const std::string &scope) {
   setParameter(std::string("Scope"), scope);
 }
 
+std::vector<AddLiveDomainRequest::Tag> AddLiveDomainRequest::getTag() const {
+  return tag_;
+}
+
+void AddLiveDomainRequest::setTag(const std::vector<AddLiveDomainRequest::Tag> &tag) {
+  tag_ = tag;
+  for(int dep1 = 0; dep1 != tag.size(); dep1++) {
+  auto tagObj = tag.at(dep1);
+  std::string tagObjStr = std::string("Tag") + "." + std::to_string(dep1 + 1);
+    setParameter(tagObjStr + ".Value", tagObj.value);
+    setParameter(tagObjStr + ".Key", tagObj.key);
+  }
+}
+
 std::string AddLiveDomainRequest::getTopLevelDomain() const {
   return topLevelDomain_;
 }

+ 54 - 0
live/src/model/ChangeLiveDomainResourceGroupRequest.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/live/model/ChangeLiveDomainResourceGroupRequest.h>
+
+using AlibabaCloud::Live::Model::ChangeLiveDomainResourceGroupRequest;
+
+ChangeLiveDomainResourceGroupRequest::ChangeLiveDomainResourceGroupRequest()
+    : RpcServiceRequest("live", "2016-11-01", "ChangeLiveDomainResourceGroup") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ChangeLiveDomainResourceGroupRequest::~ChangeLiveDomainResourceGroupRequest() {}
+
+std::string ChangeLiveDomainResourceGroupRequest::getDomainName() const {
+  return domainName_;
+}
+
+void ChangeLiveDomainResourceGroupRequest::setDomainName(const std::string &domainName) {
+  domainName_ = domainName;
+  setParameter(std::string("DomainName"), domainName);
+}
+
+long ChangeLiveDomainResourceGroupRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void ChangeLiveDomainResourceGroupRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string ChangeLiveDomainResourceGroupRequest::getNewResourceGroupId() const {
+  return newResourceGroupId_;
+}
+
+void ChangeLiveDomainResourceGroupRequest::setNewResourceGroupId(const std::string &newResourceGroupId) {
+  newResourceGroupId_ = newResourceGroupId;
+  setParameter(std::string("NewResourceGroupId"), newResourceGroupId);
+}
+

+ 44 - 0
live/src/model/ChangeLiveDomainResourceGroupResult.cc

@@ -0,0 +1,44 @@
+/*
+ * 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/live/model/ChangeLiveDomainResourceGroupResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Live;
+using namespace AlibabaCloud::Live::Model;
+
+ChangeLiveDomainResourceGroupResult::ChangeLiveDomainResourceGroupResult() :
+	ServiceResult()
+{}
+
+ChangeLiveDomainResourceGroupResult::ChangeLiveDomainResourceGroupResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ChangeLiveDomainResourceGroupResult::~ChangeLiveDomainResourceGroupResult()
+{}
+
+void ChangeLiveDomainResourceGroupResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 14 - 0
live/src/model/CreateCasterRequest.cc

@@ -52,6 +52,20 @@ void CreateCasterRequest::setCasterName(const std::string &casterName) {
   setParameter(std::string("CasterName"), casterName);
 }
 
+std::vector<CreateCasterRequest::Tag> CreateCasterRequest::getTag() const {
+  return tag_;
+}
+
+void CreateCasterRequest::setTag(const std::vector<CreateCasterRequest::Tag> &tag) {
+  tag_ = tag;
+  for(int dep1 = 0; dep1 != tag.size(); dep1++) {
+  auto tagObj = tag.at(dep1);
+  std::string tagObjStr = std::string("Tag") + "." + std::to_string(dep1 + 1);
+    setParameter(tagObjStr + ".Key", tagObj.key);
+    setParameter(tagObjStr + ".Value", tagObj.value);
+  }
+}
+
 std::string CreateCasterRequest::getCasterTemplate() const {
   return casterTemplate_;
 }

+ 14 - 0
live/src/model/DescribeCastersRequest.cc

@@ -70,6 +70,20 @@ void DescribeCastersRequest::setPageSize(int pageSize) {
   setParameter(std::string("PageSize"), std::to_string(pageSize));
 }
 
+std::vector<DescribeCastersRequest::Tag> DescribeCastersRequest::getTag() const {
+  return tag_;
+}
+
+void DescribeCastersRequest::setTag(const std::vector<DescribeCastersRequest::Tag> &tag) {
+  tag_ = tag;
+  for(int dep1 = 0; dep1 != tag.size(); dep1++) {
+  auto tagObj = tag.at(dep1);
+  std::string tagObjStr = std::string("Tag") + "." + std::to_string(dep1 + 1);
+    setParameter(tagObjStr + ".Key", tagObj.key);
+    setParameter(tagObjStr + ".Value", tagObj.value);
+  }
+}
+
 std::string DescribeCastersRequest::getNormType() const {
   return normType_;
 }

+ 10 - 0
live/src/model/DescribeCastersResult.cc

@@ -75,6 +75,16 @@ void DescribeCastersResult::parse(const std::string &payload)
 			casterListObject.resourceGroupId = std::stoi(valueCasterListCaster["ResourceGroupId"].asString());
 		if(!valueCasterListCaster["ClientTokenId"].isNull())
 			casterListObject.clientTokenId = valueCasterListCaster["ClientTokenId"].asString();
+		auto allTagsNode = valueCasterListCaster["Tags"]["tag"];
+		for (auto valueCasterListCasterTagstag : allTagsNode)
+		{
+			Caster::Tag tagsObject;
+			if(!valueCasterListCasterTagstag["TagKey"].isNull())
+				tagsObject.tagKey = valueCasterListCasterTagstag["TagKey"].asString();
+			if(!valueCasterListCasterTagstag["TagValue"].isNull())
+				tagsObject.tagValue = valueCasterListCasterTagstag["TagValue"].asString();
+			casterListObject.tags.push_back(tagsObject);
+		}
 		casterList_.push_back(casterListObject);
 	}
 	if(!value["Total"].isNull())

+ 2 - 0
live/src/model/DescribeLiveAIProduceRulesResult.cc

@@ -61,6 +61,8 @@ void DescribeLiveAIProduceRulesResult::parse(const std::string &payload)
 			ruleInfoListObject.gmtModifyTime = valueRuleInfoListRuleInfo["GmtModifyTime"].asString();
 		if(!valueRuleInfoListRuleInfo["SuffixName"].isNull())
 			ruleInfoListObject.suffixName = valueRuleInfoListRuleInfo["SuffixName"].asString();
+		if(!valueRuleInfoListRuleInfo["StudioName"].isNull())
+			ruleInfoListObject.studioName = valueRuleInfoListRuleInfo["StudioName"].asString();
 		if(!valueRuleInfoListRuleInfo["Description"].isNull())
 			ruleInfoListObject.description = valueRuleInfoListRuleInfo["Description"].asString();
 		ruleInfoList_.push_back(ruleInfoListObject);

+ 81 - 0
live/src/model/DescribeLiveTrafficDomainLogRequest.cc

@@ -0,0 +1,81 @@
+/*
+ * 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/live/model/DescribeLiveTrafficDomainLogRequest.h>
+
+using AlibabaCloud::Live::Model::DescribeLiveTrafficDomainLogRequest;
+
+DescribeLiveTrafficDomainLogRequest::DescribeLiveTrafficDomainLogRequest()
+    : RpcServiceRequest("live", "2016-11-01", "DescribeLiveTrafficDomainLog") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeLiveTrafficDomainLogRequest::~DescribeLiveTrafficDomainLogRequest() {}
+
+std::string DescribeLiveTrafficDomainLogRequest::getStartTime() const {
+  return startTime_;
+}
+
+void DescribeLiveTrafficDomainLogRequest::setStartTime(const std::string &startTime) {
+  startTime_ = startTime;
+  setParameter(std::string("StartTime"), startTime);
+}
+
+long DescribeLiveTrafficDomainLogRequest::getPageNumber() const {
+  return pageNumber_;
+}
+
+void DescribeLiveTrafficDomainLogRequest::setPageNumber(long pageNumber) {
+  pageNumber_ = pageNumber;
+  setParameter(std::string("PageNumber"), std::to_string(pageNumber));
+}
+
+long DescribeLiveTrafficDomainLogRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void DescribeLiveTrafficDomainLogRequest::setPageSize(long pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+
+std::string DescribeLiveTrafficDomainLogRequest::getDomainName() const {
+  return domainName_;
+}
+
+void DescribeLiveTrafficDomainLogRequest::setDomainName(const std::string &domainName) {
+  domainName_ = domainName;
+  setParameter(std::string("DomainName"), domainName);
+}
+
+std::string DescribeLiveTrafficDomainLogRequest::getEndTime() const {
+  return endTime_;
+}
+
+void DescribeLiveTrafficDomainLogRequest::setEndTime(const std::string &endTime) {
+  endTime_ = endTime;
+  setParameter(std::string("EndTime"), endTime);
+}
+
+long DescribeLiveTrafficDomainLogRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void DescribeLiveTrafficDomainLogRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+

+ 87 - 0
live/src/model/DescribeLiveTrafficDomainLogResult.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/live/model/DescribeLiveTrafficDomainLogResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Live;
+using namespace AlibabaCloud::Live::Model;
+
+DescribeLiveTrafficDomainLogResult::DescribeLiveTrafficDomainLogResult() :
+	ServiceResult()
+{}
+
+DescribeLiveTrafficDomainLogResult::DescribeLiveTrafficDomainLogResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeLiveTrafficDomainLogResult::~DescribeLiveTrafficDomainLogResult()
+{}
+
+void DescribeLiveTrafficDomainLogResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allDomainLogDetailsNode = value["DomainLogDetails"]["DomainLogDetail"];
+	for (auto valueDomainLogDetailsDomainLogDetail : allDomainLogDetailsNode)
+	{
+		DomainLogDetail domainLogDetailsObject;
+		if(!valueDomainLogDetailsDomainLogDetail["LogCount"].isNull())
+			domainLogDetailsObject.logCount = std::stol(valueDomainLogDetailsDomainLogDetail["LogCount"].asString());
+		auto allLogInfosNode = valueDomainLogDetailsDomainLogDetail["LogInfos"]["LogInfoDetail"];
+		for (auto valueDomainLogDetailsDomainLogDetailLogInfosLogInfoDetail : allLogInfosNode)
+		{
+			DomainLogDetail::LogInfoDetail logInfosObject;
+			if(!valueDomainLogDetailsDomainLogDetailLogInfosLogInfoDetail["EndTime"].isNull())
+				logInfosObject.endTime = valueDomainLogDetailsDomainLogDetailLogInfosLogInfoDetail["EndTime"].asString();
+			if(!valueDomainLogDetailsDomainLogDetailLogInfosLogInfoDetail["LogSize"].isNull())
+				logInfosObject.logSize = std::stol(valueDomainLogDetailsDomainLogDetailLogInfosLogInfoDetail["LogSize"].asString());
+			if(!valueDomainLogDetailsDomainLogDetailLogInfosLogInfoDetail["StartTime"].isNull())
+				logInfosObject.startTime = valueDomainLogDetailsDomainLogDetailLogInfosLogInfoDetail["StartTime"].asString();
+			if(!valueDomainLogDetailsDomainLogDetailLogInfosLogInfoDetail["LogName"].isNull())
+				logInfosObject.logName = valueDomainLogDetailsDomainLogDetailLogInfosLogInfoDetail["LogName"].asString();
+			if(!valueDomainLogDetailsDomainLogDetailLogInfosLogInfoDetail["LogPath"].isNull())
+				logInfosObject.logPath = valueDomainLogDetailsDomainLogDetailLogInfosLogInfoDetail["LogPath"].asString();
+			domainLogDetailsObject.logInfos.push_back(logInfosObject);
+		}
+		auto pageInfosNode = value["PageInfos"];
+		if(!pageInfosNode["PageIndex"].isNull())
+			domainLogDetailsObject.pageInfos.pageIndex = std::stol(pageInfosNode["PageIndex"].asString());
+		if(!pageInfosNode["PageSize"].isNull())
+			domainLogDetailsObject.pageInfos.pageSize = std::stol(pageInfosNode["PageSize"].asString());
+		if(!pageInfosNode["Total"].isNull())
+			domainLogDetailsObject.pageInfos.total = std::stol(pageInfosNode["Total"].asString());
+		domainLogDetails_.push_back(domainLogDetailsObject);
+	}
+	if(!value["DomainName"].isNull())
+		domainName_ = value["DomainName"].asString();
+
+}
+
+std::string DescribeLiveTrafficDomainLogResult::getDomainName()const
+{
+	return domainName_;
+}
+
+std::vector<DescribeLiveTrafficDomainLogResult::DomainLogDetail> DescribeLiveTrafficDomainLogResult::getDomainLogDetails()const
+{
+	return domainLogDetails_;
+}
+

+ 1 - 0
live/src/model/StartLiveMPUTaskRequest.cc

@@ -64,6 +64,7 @@ std::vector<StartLiveMPUTaskRequest::MultiStreamURL> StartLiveMPUTaskRequest::ge
 void StartLiveMPUTaskRequest::setMultiStreamURL(const std::vector<StartLiveMPUTaskRequest::MultiStreamURL> &multiStreamURL) {
   multiStreamURL_ = multiStreamURL;
   for(int dep1 = 0; dep1 != multiStreamURL.size(); dep1++) {
+    setParameter(std::string("MultiStreamURL") + "." + std::to_string(dep1 + 1) + ".IsAliCdn", multiStreamURL[dep1].isAliCdn ? "true" : "false");
     setParameter(std::string("MultiStreamURL") + "." + std::to_string(dep1 + 1) + ".URL", multiStreamURL[dep1].uRL);
   }
 }

+ 18 - 0
live/src/model/UpdateLiveAIProduceRulesRequest.cc

@@ -34,6 +34,15 @@ void UpdateLiveAIProduceRulesRequest::setDescription(const std::string &descript
   setParameter(std::string("Description"), description);
 }
 
+std::string UpdateLiveAIProduceRulesRequest::getSuffix() const {
+  return suffix_;
+}
+
+void UpdateLiveAIProduceRulesRequest::setSuffix(const std::string &suffix) {
+  suffix_ = suffix;
+  setParameter(std::string("Suffix"), suffix);
+}
+
 std::string UpdateLiveAIProduceRulesRequest::getSubtitleName() const {
   return subtitleName_;
 }
@@ -79,6 +88,15 @@ void UpdateLiveAIProduceRulesRequest::setIsLazy(bool isLazy) {
   setParameter(std::string("IsLazy"), isLazy ? "true" : "false");
 }
 
+std::string UpdateLiveAIProduceRulesRequest::getStudioName() const {
+  return studioName_;
+}
+
+void UpdateLiveAIProduceRulesRequest::setStudioName(const std::string &studioName) {
+  studioName_ = studioName;
+  setParameter(std::string("StudioName"), studioName);
+}
+
 std::string UpdateLiveAIProduceRulesRequest::getLiveTemplate() const {
   return liveTemplate_;
 }

+ 1 - 0
live/src/model/UpdateLiveMPUTaskRequest.cc

@@ -32,6 +32,7 @@ std::vector<UpdateLiveMPUTaskRequest::MultiStreamURL> UpdateLiveMPUTaskRequest::
 void UpdateLiveMPUTaskRequest::setMultiStreamURL(const std::vector<UpdateLiveMPUTaskRequest::MultiStreamURL> &multiStreamURL) {
   multiStreamURL_ = multiStreamURL;
   for(int dep1 = 0; dep1 != multiStreamURL.size(); dep1++) {
+    setParameter(std::string("MultiStreamURL") + "." + std::to_string(dep1 + 1) + ".IsAliCdn", multiStreamURL[dep1].isAliCdn ? "true" : "false");
     setParameter(std::string("MultiStreamURL") + "." + std::to_string(dep1 + 1) + ".URL", multiStreamURL[dep1].uRL);
   }
 }