sdk-team 5 лет назад
Родитель
Сommit
b04b7f6033
50 измененных файлов с 2540 добавлено и 1040 удалено
  1. 3 0
      CHANGELOG
  2. 28 20
      rtc/CMakeLists.txt
  3. 56 40
      rtc/include/alibabacloud/rtc/RtcClient.h
  4. 37 3
      rtc/include/alibabacloud/rtc/model/AddRecordTemplateRequest.h
  5. 72 0
      rtc/include/alibabacloud/rtc/model/DescribeRecordFilesRequest.h
  6. 66 0
      rtc/include/alibabacloud/rtc/model/DescribeRecordFilesResult.h
  7. 75 0
      rtc/include/alibabacloud/rtc/model/DescribeRecordTasksRequest.h
  8. 72 0
      rtc/include/alibabacloud/rtc/model/DescribeRecordTasksResult.h
  9. 21 9
      rtc/include/alibabacloud/rtc/model/DescribeRtcChannelDetailRequest.h
  10. 70 0
      rtc/include/alibabacloud/rtc/model/DescribeRtcChannelDetailResult.h
  11. 21 9
      rtc/include/alibabacloud/rtc/model/DescribeRtcChannelMetricsRequest.h
  12. 13 16
      rtc/include/alibabacloud/rtc/model/DescribeRtcChannelMetricsResult.h
  13. 21 6
      rtc/include/alibabacloud/rtc/model/DescribeRtcChannelsRequest.h
  14. 22 7
      rtc/include/alibabacloud/rtc/model/DescribeRtcChannelsResult.h
  15. 18 18
      rtc/include/alibabacloud/rtc/model/DescribeRtcUserEventsRequest.h
  16. 15 9
      rtc/include/alibabacloud/rtc/model/DescribeRtcUserEventsResult.h
  17. 0 57
      rtc/include/alibabacloud/rtc/model/EnableMAURuleRequest.h
  18. 0 49
      rtc/include/alibabacloud/rtc/model/EnableMAURuleResult.h
  19. 22 0
      rtc/include/alibabacloud/rtc/model/StartRecordTaskRequest.h
  20. 98 0
      rtc/include/alibabacloud/rtc/model/UpdateRecordTaskRequest.h
  21. 7 7
      rtc/include/alibabacloud/rtc/model/UpdateRecordTaskResult.h
  22. 31 0
      rtc/include/alibabacloud/rtc/model/UpdateRecordTemplateRequest.h
  23. 243 171
      rtc/src/RtcClient.cc
  24. 70 5
      rtc/src/model/AddRecordTemplateRequest.cc
  25. 0 106
      rtc/src/model/CreateMAURuleRequest.cc
  26. 0 51
      rtc/src/model/CreateMAURuleResult.cc
  27. 0 73
      rtc/src/model/DeleteMAURuleRequest.cc
  28. 0 44
      rtc/src/model/DeleteMAURuleResult.cc
  29. 0 62
      rtc/src/model/DescribeMAURuleRequest.cc
  30. 0 67
      rtc/src/model/DescribeMAURuleResult.cc
  31. 16 16
      rtc/src/model/DescribeMPULayoutInfoListResult.cc
  32. 130 0
      rtc/src/model/DescribeRecordFilesRequest.cc
  33. 85 0
      rtc/src/model/DescribeRecordFilesResult.cc
  34. 141 0
      rtc/src/model/DescribeRecordTasksRequest.cc
  35. 96 0
      rtc/src/model/DescribeRecordTasksResult.cc
  36. 117 0
      rtc/src/model/DescribeRtcChannelDetailRequest.cc
  37. 99 0
      rtc/src/model/DescribeRtcChannelDetailResult.cc
  38. 117 0
      rtc/src/model/DescribeRtcChannelMetricsRequest.cc
  39. 62 0
      rtc/src/model/DescribeRtcChannelMetricsResult.cc
  40. 117 0
      rtc/src/model/DescribeRtcChannelsRequest.cc
  41. 84 0
      rtc/src/model/DescribeRtcChannelsResult.cc
  42. 106 0
      rtc/src/model/DescribeRtcUserEventsRequest.cc
  43. 61 0
      rtc/src/model/DescribeRtcUserEventsResult.cc
  44. 0 73
      rtc/src/model/DisableMAURuleRequest.cc
  45. 0 73
      rtc/src/model/EnableMAURuleRequest.cc
  46. 0 44
      rtc/src/model/EnableMAURuleResult.cc
  47. 22 0
      rtc/src/model/StartRecordTaskRequest.cc
  48. 147 0
      rtc/src/model/UpdateRecordTaskRequest.cc
  49. 5 5
      rtc/src/model/UpdateRecordTaskResult.cc
  50. 54 0
      rtc/src/model/UpdateRecordTemplateRequest.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2020-11-18 Version: patch
+- Generated 2018-01-11 for `rtc`.
+
 2020-11-18 Version: patch
 - Supported webpage scan.
 

+ 28 - 20
rtc/CMakeLists.txt

@@ -27,8 +27,6 @@ set(rtc_public_header_model
 	include/alibabacloud/rtc/model/CreateChannelResult.h
 	include/alibabacloud/rtc/model/CreateConferenceRequest.h
 	include/alibabacloud/rtc/model/CreateConferenceResult.h
-	include/alibabacloud/rtc/model/CreateMAURuleRequest.h
-	include/alibabacloud/rtc/model/CreateMAURuleResult.h
 	include/alibabacloud/rtc/model/CreateMPULayoutRequest.h
 	include/alibabacloud/rtc/model/CreateMPULayoutResult.h
 	include/alibabacloud/rtc/model/CreateMPURuleRequest.h
@@ -39,8 +37,6 @@ set(rtc_public_header_model
 	include/alibabacloud/rtc/model/DeleteChannelResult.h
 	include/alibabacloud/rtc/model/DeleteConferenceRequest.h
 	include/alibabacloud/rtc/model/DeleteConferenceResult.h
-	include/alibabacloud/rtc/model/DeleteMAURuleRequest.h
-	include/alibabacloud/rtc/model/DeleteMAURuleResult.h
 	include/alibabacloud/rtc/model/DeleteMPULayoutRequest.h
 	include/alibabacloud/rtc/model/DeleteMPULayoutResult.h
 	include/alibabacloud/rtc/model/DeleteMPURuleRequest.h
@@ -55,8 +51,6 @@ set(rtc_public_header_model
 	include/alibabacloud/rtc/model/DescribeChannelUsersResult.h
 	include/alibabacloud/rtc/model/DescribeConferenceAuthInfoRequest.h
 	include/alibabacloud/rtc/model/DescribeConferenceAuthInfoResult.h
-	include/alibabacloud/rtc/model/DescribeMAURuleRequest.h
-	include/alibabacloud/rtc/model/DescribeMAURuleResult.h
 	include/alibabacloud/rtc/model/DescribeMPULayoutInfoRequest.h
 	include/alibabacloud/rtc/model/DescribeMPULayoutInfoResult.h
 	include/alibabacloud/rtc/model/DescribeMPULayoutInfoListRequest.h
@@ -67,16 +61,26 @@ set(rtc_public_header_model
 	include/alibabacloud/rtc/model/DescribeMPURuleResult.h
 	include/alibabacloud/rtc/model/DescribeRTCAppKeyRequest.h
 	include/alibabacloud/rtc/model/DescribeRTCAppKeyResult.h
+	include/alibabacloud/rtc/model/DescribeRecordFilesRequest.h
+	include/alibabacloud/rtc/model/DescribeRecordFilesResult.h
+	include/alibabacloud/rtc/model/DescribeRecordTasksRequest.h
+	include/alibabacloud/rtc/model/DescribeRecordTasksResult.h
 	include/alibabacloud/rtc/model/DescribeRecordTemplatesRequest.h
 	include/alibabacloud/rtc/model/DescribeRecordTemplatesResult.h
 	include/alibabacloud/rtc/model/DescribeRtcChannelCntDataRequest.h
 	include/alibabacloud/rtc/model/DescribeRtcChannelCntDataResult.h
+	include/alibabacloud/rtc/model/DescribeRtcChannelDetailRequest.h
+	include/alibabacloud/rtc/model/DescribeRtcChannelDetailResult.h
 	include/alibabacloud/rtc/model/DescribeRtcChannelListRequest.h
 	include/alibabacloud/rtc/model/DescribeRtcChannelListResult.h
 	include/alibabacloud/rtc/model/DescribeRtcChannelMetricRequest.h
 	include/alibabacloud/rtc/model/DescribeRtcChannelMetricResult.h
+	include/alibabacloud/rtc/model/DescribeRtcChannelMetricsRequest.h
+	include/alibabacloud/rtc/model/DescribeRtcChannelMetricsResult.h
 	include/alibabacloud/rtc/model/DescribeRtcChannelUserListRequest.h
 	include/alibabacloud/rtc/model/DescribeRtcChannelUserListResult.h
+	include/alibabacloud/rtc/model/DescribeRtcChannelsRequest.h
+	include/alibabacloud/rtc/model/DescribeRtcChannelsResult.h
 	include/alibabacloud/rtc/model/DescribeRtcDurationDataRequest.h
 	include/alibabacloud/rtc/model/DescribeRtcDurationDataResult.h
 	include/alibabacloud/rtc/model/DescribeRtcPeakChannelCntDataRequest.h
@@ -87,16 +91,14 @@ set(rtc_public_header_model
 	include/alibabacloud/rtc/model/DescribeRtcQualityMetricResult.h
 	include/alibabacloud/rtc/model/DescribeRtcUserCntDataRequest.h
 	include/alibabacloud/rtc/model/DescribeRtcUserCntDataResult.h
+	include/alibabacloud/rtc/model/DescribeRtcUserEventsRequest.h
+	include/alibabacloud/rtc/model/DescribeRtcUserEventsResult.h
 	include/alibabacloud/rtc/model/DescribeRtcUserListRequest.h
 	include/alibabacloud/rtc/model/DescribeRtcUserListResult.h
 	include/alibabacloud/rtc/model/DescribeUserInfoInChannelRequest.h
 	include/alibabacloud/rtc/model/DescribeUserInfoInChannelResult.h
-	include/alibabacloud/rtc/model/DisableMAURuleRequest.h
-	include/alibabacloud/rtc/model/DisableMAURuleResult.h
 	include/alibabacloud/rtc/model/DisableMPURuleRequest.h
 	include/alibabacloud/rtc/model/DisableMPURuleResult.h
-	include/alibabacloud/rtc/model/EnableMAURuleRequest.h
-	include/alibabacloud/rtc/model/EnableMAURuleResult.h
 	include/alibabacloud/rtc/model/EnableMPURuleRequest.h
 	include/alibabacloud/rtc/model/EnableMPURuleResult.h
 	include/alibabacloud/rtc/model/GetMPUTaskStatusRequest.h
@@ -137,6 +139,8 @@ set(rtc_public_header_model
 	include/alibabacloud/rtc/model/UpdateChannelResult.h
 	include/alibabacloud/rtc/model/UpdateMPULayoutRequest.h
 	include/alibabacloud/rtc/model/UpdateMPULayoutResult.h
+	include/alibabacloud/rtc/model/UpdateRecordTaskRequest.h
+	include/alibabacloud/rtc/model/UpdateRecordTaskResult.h
 	include/alibabacloud/rtc/model/UpdateRecordTemplateRequest.h
 	include/alibabacloud/rtc/model/UpdateRecordTemplateResult.h )
 
@@ -148,8 +152,6 @@ set(rtc_src
 	src/model/CreateChannelResult.cc
 	src/model/CreateConferenceRequest.cc
 	src/model/CreateConferenceResult.cc
-	src/model/CreateMAURuleRequest.cc
-	src/model/CreateMAURuleResult.cc
 	src/model/CreateMPULayoutRequest.cc
 	src/model/CreateMPULayoutResult.cc
 	src/model/CreateMPURuleRequest.cc
@@ -160,8 +162,6 @@ set(rtc_src
 	src/model/DeleteChannelResult.cc
 	src/model/DeleteConferenceRequest.cc
 	src/model/DeleteConferenceResult.cc
-	src/model/DeleteMAURuleRequest.cc
-	src/model/DeleteMAURuleResult.cc
 	src/model/DeleteMPULayoutRequest.cc
 	src/model/DeleteMPULayoutResult.cc
 	src/model/DeleteMPURuleRequest.cc
@@ -176,8 +176,6 @@ set(rtc_src
 	src/model/DescribeChannelUsersResult.cc
 	src/model/DescribeConferenceAuthInfoRequest.cc
 	src/model/DescribeConferenceAuthInfoResult.cc
-	src/model/DescribeMAURuleRequest.cc
-	src/model/DescribeMAURuleResult.cc
 	src/model/DescribeMPULayoutInfoRequest.cc
 	src/model/DescribeMPULayoutInfoResult.cc
 	src/model/DescribeMPULayoutInfoListRequest.cc
@@ -188,16 +186,26 @@ set(rtc_src
 	src/model/DescribeMPURuleResult.cc
 	src/model/DescribeRTCAppKeyRequest.cc
 	src/model/DescribeRTCAppKeyResult.cc
+	src/model/DescribeRecordFilesRequest.cc
+	src/model/DescribeRecordFilesResult.cc
+	src/model/DescribeRecordTasksRequest.cc
+	src/model/DescribeRecordTasksResult.cc
 	src/model/DescribeRecordTemplatesRequest.cc
 	src/model/DescribeRecordTemplatesResult.cc
 	src/model/DescribeRtcChannelCntDataRequest.cc
 	src/model/DescribeRtcChannelCntDataResult.cc
+	src/model/DescribeRtcChannelDetailRequest.cc
+	src/model/DescribeRtcChannelDetailResult.cc
 	src/model/DescribeRtcChannelListRequest.cc
 	src/model/DescribeRtcChannelListResult.cc
 	src/model/DescribeRtcChannelMetricRequest.cc
 	src/model/DescribeRtcChannelMetricResult.cc
+	src/model/DescribeRtcChannelMetricsRequest.cc
+	src/model/DescribeRtcChannelMetricsResult.cc
 	src/model/DescribeRtcChannelUserListRequest.cc
 	src/model/DescribeRtcChannelUserListResult.cc
+	src/model/DescribeRtcChannelsRequest.cc
+	src/model/DescribeRtcChannelsResult.cc
 	src/model/DescribeRtcDurationDataRequest.cc
 	src/model/DescribeRtcDurationDataResult.cc
 	src/model/DescribeRtcPeakChannelCntDataRequest.cc
@@ -208,16 +216,14 @@ set(rtc_src
 	src/model/DescribeRtcQualityMetricResult.cc
 	src/model/DescribeRtcUserCntDataRequest.cc
 	src/model/DescribeRtcUserCntDataResult.cc
+	src/model/DescribeRtcUserEventsRequest.cc
+	src/model/DescribeRtcUserEventsResult.cc
 	src/model/DescribeRtcUserListRequest.cc
 	src/model/DescribeRtcUserListResult.cc
 	src/model/DescribeUserInfoInChannelRequest.cc
 	src/model/DescribeUserInfoInChannelResult.cc
-	src/model/DisableMAURuleRequest.cc
-	src/model/DisableMAURuleResult.cc
 	src/model/DisableMPURuleRequest.cc
 	src/model/DisableMPURuleResult.cc
-	src/model/EnableMAURuleRequest.cc
-	src/model/EnableMAURuleResult.cc
 	src/model/EnableMPURuleRequest.cc
 	src/model/EnableMPURuleResult.cc
 	src/model/GetMPUTaskStatusRequest.cc
@@ -258,6 +264,8 @@ set(rtc_src
 	src/model/UpdateChannelResult.cc
 	src/model/UpdateMPULayoutRequest.cc
 	src/model/UpdateMPULayoutResult.cc
+	src/model/UpdateRecordTaskRequest.cc
+	src/model/UpdateRecordTaskResult.cc
 	src/model/UpdateRecordTemplateRequest.cc
 	src/model/UpdateRecordTemplateResult.cc )
 

+ 56 - 40
rtc/include/alibabacloud/rtc/RtcClient.h

@@ -28,8 +28,6 @@
 #include "model/CreateChannelResult.h"
 #include "model/CreateConferenceRequest.h"
 #include "model/CreateConferenceResult.h"
-#include "model/CreateMAURuleRequest.h"
-#include "model/CreateMAURuleResult.h"
 #include "model/CreateMPULayoutRequest.h"
 #include "model/CreateMPULayoutResult.h"
 #include "model/CreateMPURuleRequest.h"
@@ -40,8 +38,6 @@
 #include "model/DeleteChannelResult.h"
 #include "model/DeleteConferenceRequest.h"
 #include "model/DeleteConferenceResult.h"
-#include "model/DeleteMAURuleRequest.h"
-#include "model/DeleteMAURuleResult.h"
 #include "model/DeleteMPULayoutRequest.h"
 #include "model/DeleteMPULayoutResult.h"
 #include "model/DeleteMPURuleRequest.h"
@@ -56,8 +52,6 @@
 #include "model/DescribeChannelUsersResult.h"
 #include "model/DescribeConferenceAuthInfoRequest.h"
 #include "model/DescribeConferenceAuthInfoResult.h"
-#include "model/DescribeMAURuleRequest.h"
-#include "model/DescribeMAURuleResult.h"
 #include "model/DescribeMPULayoutInfoRequest.h"
 #include "model/DescribeMPULayoutInfoResult.h"
 #include "model/DescribeMPULayoutInfoListRequest.h"
@@ -68,16 +62,26 @@
 #include "model/DescribeMPURuleResult.h"
 #include "model/DescribeRTCAppKeyRequest.h"
 #include "model/DescribeRTCAppKeyResult.h"
+#include "model/DescribeRecordFilesRequest.h"
+#include "model/DescribeRecordFilesResult.h"
+#include "model/DescribeRecordTasksRequest.h"
+#include "model/DescribeRecordTasksResult.h"
 #include "model/DescribeRecordTemplatesRequest.h"
 #include "model/DescribeRecordTemplatesResult.h"
 #include "model/DescribeRtcChannelCntDataRequest.h"
 #include "model/DescribeRtcChannelCntDataResult.h"
+#include "model/DescribeRtcChannelDetailRequest.h"
+#include "model/DescribeRtcChannelDetailResult.h"
 #include "model/DescribeRtcChannelListRequest.h"
 #include "model/DescribeRtcChannelListResult.h"
 #include "model/DescribeRtcChannelMetricRequest.h"
 #include "model/DescribeRtcChannelMetricResult.h"
+#include "model/DescribeRtcChannelMetricsRequest.h"
+#include "model/DescribeRtcChannelMetricsResult.h"
 #include "model/DescribeRtcChannelUserListRequest.h"
 #include "model/DescribeRtcChannelUserListResult.h"
+#include "model/DescribeRtcChannelsRequest.h"
+#include "model/DescribeRtcChannelsResult.h"
 #include "model/DescribeRtcDurationDataRequest.h"
 #include "model/DescribeRtcDurationDataResult.h"
 #include "model/DescribeRtcPeakChannelCntDataRequest.h"
@@ -88,16 +92,14 @@
 #include "model/DescribeRtcQualityMetricResult.h"
 #include "model/DescribeRtcUserCntDataRequest.h"
 #include "model/DescribeRtcUserCntDataResult.h"
+#include "model/DescribeRtcUserEventsRequest.h"
+#include "model/DescribeRtcUserEventsResult.h"
 #include "model/DescribeRtcUserListRequest.h"
 #include "model/DescribeRtcUserListResult.h"
 #include "model/DescribeUserInfoInChannelRequest.h"
 #include "model/DescribeUserInfoInChannelResult.h"
-#include "model/DisableMAURuleRequest.h"
-#include "model/DisableMAURuleResult.h"
 #include "model/DisableMPURuleRequest.h"
 #include "model/DisableMPURuleResult.h"
-#include "model/EnableMAURuleRequest.h"
-#include "model/EnableMAURuleResult.h"
 #include "model/EnableMPURuleRequest.h"
 #include "model/EnableMPURuleResult.h"
 #include "model/GetMPUTaskStatusRequest.h"
@@ -138,6 +140,8 @@
 #include "model/UpdateChannelResult.h"
 #include "model/UpdateMPULayoutRequest.h"
 #include "model/UpdateMPULayoutResult.h"
+#include "model/UpdateRecordTaskRequest.h"
+#include "model/UpdateRecordTaskResult.h"
 #include "model/UpdateRecordTemplateRequest.h"
 #include "model/UpdateRecordTemplateResult.h"
 
@@ -158,9 +162,6 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateConferenceResult> CreateConferenceOutcome;
 			typedef std::future<CreateConferenceOutcome> CreateConferenceOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::CreateConferenceRequest&, const CreateConferenceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateConferenceAsyncHandler;
-			typedef Outcome<Error, Model::CreateMAURuleResult> CreateMAURuleOutcome;
-			typedef std::future<CreateMAURuleOutcome> CreateMAURuleOutcomeCallable;
-			typedef std::function<void(const RtcClient*, const Model::CreateMAURuleRequest&, const CreateMAURuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateMAURuleAsyncHandler;
 			typedef Outcome<Error, Model::CreateMPULayoutResult> CreateMPULayoutOutcome;
 			typedef std::future<CreateMPULayoutOutcome> CreateMPULayoutOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::CreateMPULayoutRequest&, const CreateMPULayoutOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateMPULayoutAsyncHandler;
@@ -176,9 +177,6 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteConferenceResult> DeleteConferenceOutcome;
 			typedef std::future<DeleteConferenceOutcome> DeleteConferenceOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DeleteConferenceRequest&, const DeleteConferenceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteConferenceAsyncHandler;
-			typedef Outcome<Error, Model::DeleteMAURuleResult> DeleteMAURuleOutcome;
-			typedef std::future<DeleteMAURuleOutcome> DeleteMAURuleOutcomeCallable;
-			typedef std::function<void(const RtcClient*, const Model::DeleteMAURuleRequest&, const DeleteMAURuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteMAURuleAsyncHandler;
 			typedef Outcome<Error, Model::DeleteMPULayoutResult> DeleteMPULayoutOutcome;
 			typedef std::future<DeleteMPULayoutOutcome> DeleteMPULayoutOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DeleteMPULayoutRequest&, const DeleteMPULayoutOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteMPULayoutAsyncHandler;
@@ -200,9 +198,6 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeConferenceAuthInfoResult> DescribeConferenceAuthInfoOutcome;
 			typedef std::future<DescribeConferenceAuthInfoOutcome> DescribeConferenceAuthInfoOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DescribeConferenceAuthInfoRequest&, const DescribeConferenceAuthInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeConferenceAuthInfoAsyncHandler;
-			typedef Outcome<Error, Model::DescribeMAURuleResult> DescribeMAURuleOutcome;
-			typedef std::future<DescribeMAURuleOutcome> DescribeMAURuleOutcomeCallable;
-			typedef std::function<void(const RtcClient*, const Model::DescribeMAURuleRequest&, const DescribeMAURuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeMAURuleAsyncHandler;
 			typedef Outcome<Error, Model::DescribeMPULayoutInfoResult> DescribeMPULayoutInfoOutcome;
 			typedef std::future<DescribeMPULayoutInfoOutcome> DescribeMPULayoutInfoOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DescribeMPULayoutInfoRequest&, const DescribeMPULayoutInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeMPULayoutInfoAsyncHandler;
@@ -218,21 +213,36 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeRTCAppKeyResult> DescribeRTCAppKeyOutcome;
 			typedef std::future<DescribeRTCAppKeyOutcome> DescribeRTCAppKeyOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DescribeRTCAppKeyRequest&, const DescribeRTCAppKeyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRTCAppKeyAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRecordFilesResult> DescribeRecordFilesOutcome;
+			typedef std::future<DescribeRecordFilesOutcome> DescribeRecordFilesOutcomeCallable;
+			typedef std::function<void(const RtcClient*, const Model::DescribeRecordFilesRequest&, const DescribeRecordFilesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRecordFilesAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRecordTasksResult> DescribeRecordTasksOutcome;
+			typedef std::future<DescribeRecordTasksOutcome> DescribeRecordTasksOutcomeCallable;
+			typedef std::function<void(const RtcClient*, const Model::DescribeRecordTasksRequest&, const DescribeRecordTasksOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRecordTasksAsyncHandler;
 			typedef Outcome<Error, Model::DescribeRecordTemplatesResult> DescribeRecordTemplatesOutcome;
 			typedef std::future<DescribeRecordTemplatesOutcome> DescribeRecordTemplatesOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DescribeRecordTemplatesRequest&, const DescribeRecordTemplatesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRecordTemplatesAsyncHandler;
 			typedef Outcome<Error, Model::DescribeRtcChannelCntDataResult> DescribeRtcChannelCntDataOutcome;
 			typedef std::future<DescribeRtcChannelCntDataOutcome> DescribeRtcChannelCntDataOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DescribeRtcChannelCntDataRequest&, const DescribeRtcChannelCntDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRtcChannelCntDataAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRtcChannelDetailResult> DescribeRtcChannelDetailOutcome;
+			typedef std::future<DescribeRtcChannelDetailOutcome> DescribeRtcChannelDetailOutcomeCallable;
+			typedef std::function<void(const RtcClient*, const Model::DescribeRtcChannelDetailRequest&, const DescribeRtcChannelDetailOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRtcChannelDetailAsyncHandler;
 			typedef Outcome<Error, Model::DescribeRtcChannelListResult> DescribeRtcChannelListOutcome;
 			typedef std::future<DescribeRtcChannelListOutcome> DescribeRtcChannelListOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DescribeRtcChannelListRequest&, const DescribeRtcChannelListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRtcChannelListAsyncHandler;
 			typedef Outcome<Error, Model::DescribeRtcChannelMetricResult> DescribeRtcChannelMetricOutcome;
 			typedef std::future<DescribeRtcChannelMetricOutcome> DescribeRtcChannelMetricOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DescribeRtcChannelMetricRequest&, const DescribeRtcChannelMetricOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRtcChannelMetricAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRtcChannelMetricsResult> DescribeRtcChannelMetricsOutcome;
+			typedef std::future<DescribeRtcChannelMetricsOutcome> DescribeRtcChannelMetricsOutcomeCallable;
+			typedef std::function<void(const RtcClient*, const Model::DescribeRtcChannelMetricsRequest&, const DescribeRtcChannelMetricsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRtcChannelMetricsAsyncHandler;
 			typedef Outcome<Error, Model::DescribeRtcChannelUserListResult> DescribeRtcChannelUserListOutcome;
 			typedef std::future<DescribeRtcChannelUserListOutcome> DescribeRtcChannelUserListOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DescribeRtcChannelUserListRequest&, const DescribeRtcChannelUserListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRtcChannelUserListAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRtcChannelsResult> DescribeRtcChannelsOutcome;
+			typedef std::future<DescribeRtcChannelsOutcome> DescribeRtcChannelsOutcomeCallable;
+			typedef std::function<void(const RtcClient*, const Model::DescribeRtcChannelsRequest&, const DescribeRtcChannelsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRtcChannelsAsyncHandler;
 			typedef Outcome<Error, Model::DescribeRtcDurationDataResult> DescribeRtcDurationDataOutcome;
 			typedef std::future<DescribeRtcDurationDataOutcome> DescribeRtcDurationDataOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DescribeRtcDurationDataRequest&, const DescribeRtcDurationDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRtcDurationDataAsyncHandler;
@@ -248,21 +258,18 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeRtcUserCntDataResult> DescribeRtcUserCntDataOutcome;
 			typedef std::future<DescribeRtcUserCntDataOutcome> DescribeRtcUserCntDataOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DescribeRtcUserCntDataRequest&, const DescribeRtcUserCntDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRtcUserCntDataAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRtcUserEventsResult> DescribeRtcUserEventsOutcome;
+			typedef std::future<DescribeRtcUserEventsOutcome> DescribeRtcUserEventsOutcomeCallable;
+			typedef std::function<void(const RtcClient*, const Model::DescribeRtcUserEventsRequest&, const DescribeRtcUserEventsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRtcUserEventsAsyncHandler;
 			typedef Outcome<Error, Model::DescribeRtcUserListResult> DescribeRtcUserListOutcome;
 			typedef std::future<DescribeRtcUserListOutcome> DescribeRtcUserListOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DescribeRtcUserListRequest&, const DescribeRtcUserListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRtcUserListAsyncHandler;
 			typedef Outcome<Error, Model::DescribeUserInfoInChannelResult> DescribeUserInfoInChannelOutcome;
 			typedef std::future<DescribeUserInfoInChannelOutcome> DescribeUserInfoInChannelOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DescribeUserInfoInChannelRequest&, const DescribeUserInfoInChannelOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeUserInfoInChannelAsyncHandler;
-			typedef Outcome<Error, Model::DisableMAURuleResult> DisableMAURuleOutcome;
-			typedef std::future<DisableMAURuleOutcome> DisableMAURuleOutcomeCallable;
-			typedef std::function<void(const RtcClient*, const Model::DisableMAURuleRequest&, const DisableMAURuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DisableMAURuleAsyncHandler;
 			typedef Outcome<Error, Model::DisableMPURuleResult> DisableMPURuleOutcome;
 			typedef std::future<DisableMPURuleOutcome> DisableMPURuleOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::DisableMPURuleRequest&, const DisableMPURuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DisableMPURuleAsyncHandler;
-			typedef Outcome<Error, Model::EnableMAURuleResult> EnableMAURuleOutcome;
-			typedef std::future<EnableMAURuleOutcome> EnableMAURuleOutcomeCallable;
-			typedef std::function<void(const RtcClient*, const Model::EnableMAURuleRequest&, const EnableMAURuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> EnableMAURuleAsyncHandler;
 			typedef Outcome<Error, Model::EnableMPURuleResult> EnableMPURuleOutcome;
 			typedef std::future<EnableMPURuleOutcome> EnableMPURuleOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::EnableMPURuleRequest&, const EnableMPURuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> EnableMPURuleAsyncHandler;
@@ -323,6 +330,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::UpdateMPULayoutResult> UpdateMPULayoutOutcome;
 			typedef std::future<UpdateMPULayoutOutcome> UpdateMPULayoutOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::UpdateMPULayoutRequest&, const UpdateMPULayoutOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateMPULayoutAsyncHandler;
+			typedef Outcome<Error, Model::UpdateRecordTaskResult> UpdateRecordTaskOutcome;
+			typedef std::future<UpdateRecordTaskOutcome> UpdateRecordTaskOutcomeCallable;
+			typedef std::function<void(const RtcClient*, const Model::UpdateRecordTaskRequest&, const UpdateRecordTaskOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateRecordTaskAsyncHandler;
 			typedef Outcome<Error, Model::UpdateRecordTemplateResult> UpdateRecordTemplateOutcome;
 			typedef std::future<UpdateRecordTemplateOutcome> UpdateRecordTemplateOutcomeCallable;
 			typedef std::function<void(const RtcClient*, const Model::UpdateRecordTemplateRequest&, const UpdateRecordTemplateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateRecordTemplateAsyncHandler;
@@ -340,9 +350,6 @@ namespace AlibabaCloud
 			CreateConferenceOutcome createConference(const Model::CreateConferenceRequest &request)const;
 			void createConferenceAsync(const Model::CreateConferenceRequest& request, const CreateConferenceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateConferenceOutcomeCallable createConferenceCallable(const Model::CreateConferenceRequest& request) const;
-			CreateMAURuleOutcome createMAURule(const Model::CreateMAURuleRequest &request)const;
-			void createMAURuleAsync(const Model::CreateMAURuleRequest& request, const CreateMAURuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			CreateMAURuleOutcomeCallable createMAURuleCallable(const Model::CreateMAURuleRequest& request) const;
 			CreateMPULayoutOutcome createMPULayout(const Model::CreateMPULayoutRequest &request)const;
 			void createMPULayoutAsync(const Model::CreateMPULayoutRequest& request, const CreateMPULayoutAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateMPULayoutOutcomeCallable createMPULayoutCallable(const Model::CreateMPULayoutRequest& request) const;
@@ -358,9 +365,6 @@ namespace AlibabaCloud
 			DeleteConferenceOutcome deleteConference(const Model::DeleteConferenceRequest &request)const;
 			void deleteConferenceAsync(const Model::DeleteConferenceRequest& request, const DeleteConferenceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteConferenceOutcomeCallable deleteConferenceCallable(const Model::DeleteConferenceRequest& request) const;
-			DeleteMAURuleOutcome deleteMAURule(const Model::DeleteMAURuleRequest &request)const;
-			void deleteMAURuleAsync(const Model::DeleteMAURuleRequest& request, const DeleteMAURuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			DeleteMAURuleOutcomeCallable deleteMAURuleCallable(const Model::DeleteMAURuleRequest& request) const;
 			DeleteMPULayoutOutcome deleteMPULayout(const Model::DeleteMPULayoutRequest &request)const;
 			void deleteMPULayoutAsync(const Model::DeleteMPULayoutRequest& request, const DeleteMPULayoutAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteMPULayoutOutcomeCallable deleteMPULayoutCallable(const Model::DeleteMPULayoutRequest& request) const;
@@ -382,9 +386,6 @@ namespace AlibabaCloud
 			DescribeConferenceAuthInfoOutcome describeConferenceAuthInfo(const Model::DescribeConferenceAuthInfoRequest &request)const;
 			void describeConferenceAuthInfoAsync(const Model::DescribeConferenceAuthInfoRequest& request, const DescribeConferenceAuthInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeConferenceAuthInfoOutcomeCallable describeConferenceAuthInfoCallable(const Model::DescribeConferenceAuthInfoRequest& request) const;
-			DescribeMAURuleOutcome describeMAURule(const Model::DescribeMAURuleRequest &request)const;
-			void describeMAURuleAsync(const Model::DescribeMAURuleRequest& request, const DescribeMAURuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			DescribeMAURuleOutcomeCallable describeMAURuleCallable(const Model::DescribeMAURuleRequest& request) const;
 			DescribeMPULayoutInfoOutcome describeMPULayoutInfo(const Model::DescribeMPULayoutInfoRequest &request)const;
 			void describeMPULayoutInfoAsync(const Model::DescribeMPULayoutInfoRequest& request, const DescribeMPULayoutInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeMPULayoutInfoOutcomeCallable describeMPULayoutInfoCallable(const Model::DescribeMPULayoutInfoRequest& request) const;
@@ -400,21 +401,36 @@ namespace AlibabaCloud
 			DescribeRTCAppKeyOutcome describeRTCAppKey(const Model::DescribeRTCAppKeyRequest &request)const;
 			void describeRTCAppKeyAsync(const Model::DescribeRTCAppKeyRequest& request, const DescribeRTCAppKeyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRTCAppKeyOutcomeCallable describeRTCAppKeyCallable(const Model::DescribeRTCAppKeyRequest& request) const;
+			DescribeRecordFilesOutcome describeRecordFiles(const Model::DescribeRecordFilesRequest &request)const;
+			void describeRecordFilesAsync(const Model::DescribeRecordFilesRequest& request, const DescribeRecordFilesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRecordFilesOutcomeCallable describeRecordFilesCallable(const Model::DescribeRecordFilesRequest& request) const;
+			DescribeRecordTasksOutcome describeRecordTasks(const Model::DescribeRecordTasksRequest &request)const;
+			void describeRecordTasksAsync(const Model::DescribeRecordTasksRequest& request, const DescribeRecordTasksAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRecordTasksOutcomeCallable describeRecordTasksCallable(const Model::DescribeRecordTasksRequest& request) const;
 			DescribeRecordTemplatesOutcome describeRecordTemplates(const Model::DescribeRecordTemplatesRequest &request)const;
 			void describeRecordTemplatesAsync(const Model::DescribeRecordTemplatesRequest& request, const DescribeRecordTemplatesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRecordTemplatesOutcomeCallable describeRecordTemplatesCallable(const Model::DescribeRecordTemplatesRequest& request) const;
 			DescribeRtcChannelCntDataOutcome describeRtcChannelCntData(const Model::DescribeRtcChannelCntDataRequest &request)const;
 			void describeRtcChannelCntDataAsync(const Model::DescribeRtcChannelCntDataRequest& request, const DescribeRtcChannelCntDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRtcChannelCntDataOutcomeCallable describeRtcChannelCntDataCallable(const Model::DescribeRtcChannelCntDataRequest& request) const;
+			DescribeRtcChannelDetailOutcome describeRtcChannelDetail(const Model::DescribeRtcChannelDetailRequest &request)const;
+			void describeRtcChannelDetailAsync(const Model::DescribeRtcChannelDetailRequest& request, const DescribeRtcChannelDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRtcChannelDetailOutcomeCallable describeRtcChannelDetailCallable(const Model::DescribeRtcChannelDetailRequest& request) const;
 			DescribeRtcChannelListOutcome describeRtcChannelList(const Model::DescribeRtcChannelListRequest &request)const;
 			void describeRtcChannelListAsync(const Model::DescribeRtcChannelListRequest& request, const DescribeRtcChannelListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRtcChannelListOutcomeCallable describeRtcChannelListCallable(const Model::DescribeRtcChannelListRequest& request) const;
 			DescribeRtcChannelMetricOutcome describeRtcChannelMetric(const Model::DescribeRtcChannelMetricRequest &request)const;
 			void describeRtcChannelMetricAsync(const Model::DescribeRtcChannelMetricRequest& request, const DescribeRtcChannelMetricAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRtcChannelMetricOutcomeCallable describeRtcChannelMetricCallable(const Model::DescribeRtcChannelMetricRequest& request) const;
+			DescribeRtcChannelMetricsOutcome describeRtcChannelMetrics(const Model::DescribeRtcChannelMetricsRequest &request)const;
+			void describeRtcChannelMetricsAsync(const Model::DescribeRtcChannelMetricsRequest& request, const DescribeRtcChannelMetricsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRtcChannelMetricsOutcomeCallable describeRtcChannelMetricsCallable(const Model::DescribeRtcChannelMetricsRequest& request) const;
 			DescribeRtcChannelUserListOutcome describeRtcChannelUserList(const Model::DescribeRtcChannelUserListRequest &request)const;
 			void describeRtcChannelUserListAsync(const Model::DescribeRtcChannelUserListRequest& request, const DescribeRtcChannelUserListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRtcChannelUserListOutcomeCallable describeRtcChannelUserListCallable(const Model::DescribeRtcChannelUserListRequest& request) const;
+			DescribeRtcChannelsOutcome describeRtcChannels(const Model::DescribeRtcChannelsRequest &request)const;
+			void describeRtcChannelsAsync(const Model::DescribeRtcChannelsRequest& request, const DescribeRtcChannelsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRtcChannelsOutcomeCallable describeRtcChannelsCallable(const Model::DescribeRtcChannelsRequest& request) const;
 			DescribeRtcDurationDataOutcome describeRtcDurationData(const Model::DescribeRtcDurationDataRequest &request)const;
 			void describeRtcDurationDataAsync(const Model::DescribeRtcDurationDataRequest& request, const DescribeRtcDurationDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRtcDurationDataOutcomeCallable describeRtcDurationDataCallable(const Model::DescribeRtcDurationDataRequest& request) const;
@@ -430,21 +446,18 @@ namespace AlibabaCloud
 			DescribeRtcUserCntDataOutcome describeRtcUserCntData(const Model::DescribeRtcUserCntDataRequest &request)const;
 			void describeRtcUserCntDataAsync(const Model::DescribeRtcUserCntDataRequest& request, const DescribeRtcUserCntDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRtcUserCntDataOutcomeCallable describeRtcUserCntDataCallable(const Model::DescribeRtcUserCntDataRequest& request) const;
+			DescribeRtcUserEventsOutcome describeRtcUserEvents(const Model::DescribeRtcUserEventsRequest &request)const;
+			void describeRtcUserEventsAsync(const Model::DescribeRtcUserEventsRequest& request, const DescribeRtcUserEventsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRtcUserEventsOutcomeCallable describeRtcUserEventsCallable(const Model::DescribeRtcUserEventsRequest& request) const;
 			DescribeRtcUserListOutcome describeRtcUserList(const Model::DescribeRtcUserListRequest &request)const;
 			void describeRtcUserListAsync(const Model::DescribeRtcUserListRequest& request, const DescribeRtcUserListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRtcUserListOutcomeCallable describeRtcUserListCallable(const Model::DescribeRtcUserListRequest& request) const;
 			DescribeUserInfoInChannelOutcome describeUserInfoInChannel(const Model::DescribeUserInfoInChannelRequest &request)const;
 			void describeUserInfoInChannelAsync(const Model::DescribeUserInfoInChannelRequest& request, const DescribeUserInfoInChannelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeUserInfoInChannelOutcomeCallable describeUserInfoInChannelCallable(const Model::DescribeUserInfoInChannelRequest& request) const;
-			DisableMAURuleOutcome disableMAURule(const Model::DisableMAURuleRequest &request)const;
-			void disableMAURuleAsync(const Model::DisableMAURuleRequest& request, const DisableMAURuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			DisableMAURuleOutcomeCallable disableMAURuleCallable(const Model::DisableMAURuleRequest& request) const;
 			DisableMPURuleOutcome disableMPURule(const Model::DisableMPURuleRequest &request)const;
 			void disableMPURuleAsync(const Model::DisableMPURuleRequest& request, const DisableMPURuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DisableMPURuleOutcomeCallable disableMPURuleCallable(const Model::DisableMPURuleRequest& request) const;
-			EnableMAURuleOutcome enableMAURule(const Model::EnableMAURuleRequest &request)const;
-			void enableMAURuleAsync(const Model::EnableMAURuleRequest& request, const EnableMAURuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			EnableMAURuleOutcomeCallable enableMAURuleCallable(const Model::EnableMAURuleRequest& request) const;
 			EnableMPURuleOutcome enableMPURule(const Model::EnableMPURuleRequest &request)const;
 			void enableMPURuleAsync(const Model::EnableMPURuleRequest& request, const EnableMPURuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			EnableMPURuleOutcomeCallable enableMPURuleCallable(const Model::EnableMPURuleRequest& request) const;
@@ -505,6 +518,9 @@ namespace AlibabaCloud
 			UpdateMPULayoutOutcome updateMPULayout(const Model::UpdateMPULayoutRequest &request)const;
 			void updateMPULayoutAsync(const Model::UpdateMPULayoutRequest& request, const UpdateMPULayoutAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateMPULayoutOutcomeCallable updateMPULayoutCallable(const Model::UpdateMPULayoutRequest& request) const;
+			UpdateRecordTaskOutcome updateRecordTask(const Model::UpdateRecordTaskRequest &request)const;
+			void updateRecordTaskAsync(const Model::UpdateRecordTaskRequest& request, const UpdateRecordTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateRecordTaskOutcomeCallable updateRecordTaskCallable(const Model::UpdateRecordTaskRequest& request) const;
 			UpdateRecordTemplateOutcome updateRecordTemplate(const Model::UpdateRecordTemplateRequest &request)const;
 			void updateRecordTemplateAsync(const Model::UpdateRecordTemplateRequest& request, const UpdateRecordTemplateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateRecordTemplateOutcomeCallable updateRecordTemplateCallable(const Model::UpdateRecordTemplateRequest& request) const;

+ 37 - 3
rtc/include/alibabacloud/rtc/model/AddRecordTemplateRequest.h

@@ -30,6 +30,28 @@ namespace AlibabaCloud
 		{
 			class ALIBABACLOUD_RTC_EXPORT AddRecordTemplateRequest : public RpcServiceRequest
 			{
+			public:
+				struct Watermarks
+				{
+					std::string url;
+					float alpha;
+					int display;
+					float x;
+					float y;
+					float width;
+					float height;
+					int zOrder;
+				};
+				struct Backgrounds
+				{
+					std::string url;
+					int display;
+					float x;
+					float y;
+					float width;
+					float height;
+					int zOrder;
+				};
 
 			public:
 				AddRecordTemplateRequest();
@@ -49,14 +71,22 @@ namespace AlibabaCloud
 				void setShowLog(const std::string& showLog);
 				std::string getOssBucket()const;
 				void setOssBucket(const std::string& ossBucket);
-				std::string getMnsQueue()const;
-				void setMnsQueue(const std::string& mnsQueue);
+				int getDelayStopTime()const;
+				void setDelayStopTime(int delayStopTime);
 				int getFileSplitInterval()const;
 				void setFileSplitInterval(int fileSplitInterval);
+				std::string getMnsQueue()const;
+				void setMnsQueue(const std::string& mnsQueue);
+				std::string getHttpCallbackUrl()const;
+				void setHttpCallbackUrl(const std::string& httpCallbackUrl);
+				std::vector<Watermarks> getWatermarks()const;
+				void setWatermarks(const std::vector<Watermarks>& watermarks);
 				long getOwnerId()const;
 				void setOwnerId(long ownerId);
 				std::string getAppId()const;
 				void setAppId(const std::string& appId);
+				std::vector<Backgrounds> getBackgrounds()const;
+				void setBackgrounds(const std::vector<Backgrounds>& backgrounds);
 				std::string getName()const;
 				void setName(const std::string& name);
 				int getMediaEncode()const;
@@ -70,10 +100,14 @@ namespace AlibabaCloud
 				std::vector<long> layoutIds_;
 				std::string showLog_;
 				std::string ossBucket_;
-				std::string mnsQueue_;
+				int delayStopTime_;
 				int fileSplitInterval_;
+				std::string mnsQueue_;
+				std::string httpCallbackUrl_;
+				std::vector<Watermarks> watermarks_;
 				long ownerId_;
 				std::string appId_;
+				std::vector<Backgrounds> backgrounds_;
 				std::string name_;
 				int mediaEncode_;
 

+ 72 - 0
rtc/include/alibabacloud/rtc/model/DescribeRecordFilesRequest.h

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_RTC_MODEL_DESCRIBERECORDFILESREQUEST_H_
+#define ALIBABACLOUD_RTC_MODEL_DESCRIBERECORDFILESREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/rtc/RtcExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Rtc
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_RTC_EXPORT DescribeRecordFilesRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeRecordFilesRequest();
+				~DescribeRecordFilesRequest();
+
+				std::string getStartTime()const;
+				void setStartTime(const std::string& startTime);
+				int getPageNum()const;
+				void setPageNum(int pageNum);
+				std::vector<std::string> getTaskIds()const;
+				void setTaskIds(const std::vector<std::string>& taskIds);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				std::string getShowLog()const;
+				void setShowLog(const std::string& showLog);
+				std::string getEndTime()const;
+				void setEndTime(const std::string& endTime);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				std::string getAppId()const;
+				void setAppId(const std::string& appId);
+				std::string getChannelId()const;
+				void setChannelId(const std::string& channelId);
+
+            private:
+				std::string startTime_;
+				int pageNum_;
+				std::vector<std::string> taskIds_;
+				int pageSize_;
+				std::string showLog_;
+				std::string endTime_;
+				long ownerId_;
+				std::string appId_;
+				std::string channelId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBERECORDFILESREQUEST_H_

+ 66 - 0
rtc/include/alibabacloud/rtc/model/DescribeRecordFilesResult.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_RTC_MODEL_DESCRIBERECORDFILESRESULT_H_
+#define ALIBABACLOUD_RTC_MODEL_DESCRIBERECORDFILESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/rtc/RtcExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Rtc
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_RTC_EXPORT DescribeRecordFilesResult : public ServiceResult
+			{
+			public:
+				struct RecordFile
+				{
+					std::string taskId;
+					std::string appId;
+					std::string createTime;
+					std::string startTime;
+					float duration;
+					std::string channelId;
+					std::string url;
+					std::string stopTime;
+				};
+
+
+				DescribeRecordFilesResult();
+				explicit DescribeRecordFilesResult(const std::string &payload);
+				~DescribeRecordFilesResult();
+				long getTotalNum()const;
+				long getTotalPage()const;
+				std::vector<RecordFile> getRecordFiles()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				long totalNum_;
+				long totalPage_;
+				std::vector<RecordFile> recordFiles_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBERECORDFILESRESULT_H_

+ 75 - 0
rtc/include/alibabacloud/rtc/model/DescribeRecordTasksRequest.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_RTC_MODEL_DESCRIBERECORDTASKSREQUEST_H_
+#define ALIBABACLOUD_RTC_MODEL_DESCRIBERECORDTASKSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/rtc/RtcExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Rtc
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_RTC_EXPORT DescribeRecordTasksRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeRecordTasksRequest();
+				~DescribeRecordTasksRequest();
+
+				std::string getStartTime()const;
+				void setStartTime(const std::string& startTime);
+				std::vector<std::string> getTaskIds()const;
+				void setTaskIds(const std::vector<std::string>& taskIds);
+				int getPageNum()const;
+				void setPageNum(int pageNum);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				std::string getShowLog()const;
+				void setShowLog(const std::string& showLog);
+				std::string getEndTime()const;
+				void setEndTime(const std::string& endTime);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				std::string getAppId()const;
+				void setAppId(const std::string& appId);
+				std::string getChannelId()const;
+				void setChannelId(const std::string& channelId);
+				std::string getStatus()const;
+				void setStatus(const std::string& status);
+
+            private:
+				std::string startTime_;
+				std::vector<std::string> taskIds_;
+				int pageNum_;
+				int pageSize_;
+				std::string showLog_;
+				std::string endTime_;
+				long ownerId_;
+				std::string appId_;
+				std::string channelId_;
+				std::string status_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBERECORDTASKSREQUEST_H_

+ 72 - 0
rtc/include/alibabacloud/rtc/model/DescribeRecordTasksResult.h

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_RTC_MODEL_DESCRIBERECORDTASKSRESULT_H_
+#define ALIBABACLOUD_RTC_MODEL_DESCRIBERECORDTASKSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/rtc/RtcExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Rtc
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_RTC_EXPORT DescribeRecordTasksResult : public ServiceResult
+			{
+			public:
+				struct RecordTask
+				{
+					struct UserPanesItem
+					{
+						std::string userId;
+						int paneId;
+						std::string source;
+					};
+					int status;
+					std::vector<RecordTask::UserPanesItem> userPanes;
+					std::string taskId;
+					std::string appId;
+					std::vector<std::string> subSpecUsers;
+					std::string createTime;
+					std::string channelId;
+					std::string templateId;
+				};
+
+
+				DescribeRecordTasksResult();
+				explicit DescribeRecordTasksResult(const std::string &payload);
+				~DescribeRecordTasksResult();
+				std::vector<RecordTask> getRecordTasks()const;
+				long getTotalNum()const;
+				long getTotalPage()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<RecordTask> recordTasks_;
+				long totalNum_;
+				long totalPage_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBERECORDTASKSRESULT_H_

+ 21 - 9
rtc/include/alibabacloud/rtc/model/DeleteMAURuleRequest.h → rtc/include/alibabacloud/rtc/model/DescribeRtcChannelDetailRequest.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_RTC_MODEL_DELETEMAURULEREQUEST_H_
-#define ALIBABACLOUD_RTC_MODEL_DELETEMAURULEREQUEST_H_
+#ifndef ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELDETAILREQUEST_H_
+#define ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELDETAILREQUEST_H_
 
 #include <string>
 #include <vector>
@@ -28,30 +28,42 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_RTC_EXPORT DeleteMAURuleRequest : public RpcServiceRequest
+			class ALIBABACLOUD_RTC_EXPORT DescribeRtcChannelDetailRequest : public RpcServiceRequest
 			{
 
 			public:
-				DeleteMAURuleRequest();
-				~DeleteMAURuleRequest();
+				DescribeRtcChannelDetailRequest();
+				~DescribeRtcChannelDetailRequest();
 
+				std::string getStartTime()const;
+				void setStartTime(const std::string& startTime);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
 				std::string getShowLog()const;
 				void setShowLog(const std::string& showLog);
+				std::string getEndTime()const;
+				void setEndTime(const std::string& endTime);
 				long getOwnerId()const;
 				void setOwnerId(long ownerId);
+				int getPageNo()const;
+				void setPageNo(int pageNo);
 				std::string getAppId()const;
 				void setAppId(const std::string& appId);
-				long getRuleId()const;
-				void setRuleId(long ruleId);
+				std::string getChannelId()const;
+				void setChannelId(const std::string& channelId);
 
             private:
+				std::string startTime_;
+				int pageSize_;
 				std::string showLog_;
+				std::string endTime_;
 				long ownerId_;
+				int pageNo_;
 				std::string appId_;
-				long ruleId_;
+				std::string channelId_;
 
 			};
 		}
 	}
 }
-#endif // !ALIBABACLOUD_RTC_MODEL_DELETEMAURULEREQUEST_H_
+#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELDETAILREQUEST_H_

+ 70 - 0
rtc/include/alibabacloud/rtc/model/DescribeRtcChannelDetailResult.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_RTC_MODEL_DESCRIBERTCCHANNELDETAILRESULT_H_
+#define ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELDETAILRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/rtc/RtcExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Rtc
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_RTC_EXPORT DescribeRtcChannelDetailResult : public ServiceResult
+			{
+			public:
+				struct Detail
+				{
+					std::string uid;
+					std::string deviceType;
+					std::string leaveTime;
+					std::string platform;
+					std::string oS;
+					std::string sdkVersion;
+					std::string joinTime;
+					std::string sid;
+				};
+
+
+				DescribeRtcChannelDetailResult();
+				explicit DescribeRtcChannelDetailResult(const std::string &payload);
+				~DescribeRtcChannelDetailResult();
+				long getPageSize()const;
+				long getTotalCnt()const;
+				std::vector<Detail> getChannelInfo()const;
+				long getPageNo()const;
+				std::string getChannelId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				long pageSize_;
+				long totalCnt_;
+				std::vector<Detail> channelInfo_;
+				long pageNo_;
+				std::string channelId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELDETAILRESULT_H_

+ 21 - 9
rtc/include/alibabacloud/rtc/model/DisableMAURuleRequest.h → rtc/include/alibabacloud/rtc/model/DescribeRtcChannelMetricsRequest.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_RTC_MODEL_DISABLEMAURULEREQUEST_H_
-#define ALIBABACLOUD_RTC_MODEL_DISABLEMAURULEREQUEST_H_
+#ifndef ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELMETRICSREQUEST_H_
+#define ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELMETRICSREQUEST_H_
 
 #include <string>
 #include <vector>
@@ -28,30 +28,42 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_RTC_EXPORT DisableMAURuleRequest : public RpcServiceRequest
+			class ALIBABACLOUD_RTC_EXPORT DescribeRtcChannelMetricsRequest : public RpcServiceRequest
 			{
 
 			public:
-				DisableMAURuleRequest();
-				~DisableMAURuleRequest();
+				DescribeRtcChannelMetricsRequest();
+				~DescribeRtcChannelMetricsRequest();
 
+				std::string getStartTime()const;
+				void setStartTime(const std::string& startTime);
+				std::string getSubUid()const;
+				void setSubUid(const std::string& subUid);
+				std::string getPubUid()const;
+				void setPubUid(const std::string& pubUid);
 				std::string getShowLog()const;
 				void setShowLog(const std::string& showLog);
+				std::string getEndTime()const;
+				void setEndTime(const std::string& endTime);
 				long getOwnerId()const;
 				void setOwnerId(long ownerId);
 				std::string getAppId()const;
 				void setAppId(const std::string& appId);
-				long getRuleId()const;
-				void setRuleId(long ruleId);
+				std::string getChannelId()const;
+				void setChannelId(const std::string& channelId);
 
             private:
+				std::string startTime_;
+				std::string subUid_;
+				std::string pubUid_;
 				std::string showLog_;
+				std::string endTime_;
 				long ownerId_;
 				std::string appId_;
-				long ruleId_;
+				std::string channelId_;
 
 			};
 		}
 	}
 }
-#endif // !ALIBABACLOUD_RTC_MODEL_DISABLEMAURULEREQUEST_H_
+#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELMETRICSREQUEST_H_

+ 13 - 16
rtc/include/alibabacloud/rtc/model/DescribeMAURuleResult.h → rtc/include/alibabacloud/rtc/model/DescribeRtcChannelMetricsResult.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_RTC_MODEL_DESCRIBEMAURULERESULT_H_
-#define ALIBABACLOUD_RTC_MODEL_DESCRIBEMAURULERESULT_H_
+#ifndef ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELMETRICSRESULT_H_
+#define ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELMETRICSRESULT_H_
 
 #include <string>
 #include <vector>
@@ -29,32 +29,29 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_RTC_EXPORT DescribeMAURuleResult : public ServiceResult
+			class ALIBABACLOUD_RTC_EXPORT DescribeRtcChannelMetricsResult : public ServiceResult
 			{
 			public:
-				struct Rule
+				struct Metric
 				{
-					std::string channelPrefix;
-					int isEnable;
-					std::string callBack;
-					long ruleId;
-					std::string useridPrefix;
-					long templateId;
+					std::string uid;
+					std::string mid;
+					std::vector<std::string> kVs;
 				};
 
 
-				DescribeMAURuleResult();
-				explicit DescribeMAURuleResult(const std::string &payload);
-				~DescribeMAURuleResult();
-				std::vector<Rule> getRules()const;
+				DescribeRtcChannelMetricsResult();
+				explicit DescribeRtcChannelMetricsResult(const std::string &payload);
+				~DescribeRtcChannelMetricsResult();
+				std::vector<Metric> getMetrics()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
-				std::vector<Rule> rules_;
+				std::vector<Metric> metrics_;
 
 			};
 		}
 	}
 }
-#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBEMAURULERESULT_H_
+#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELMETRICSRESULT_H_

+ 21 - 6
rtc/include/alibabacloud/rtc/model/DescribeMAURuleRequest.h → rtc/include/alibabacloud/rtc/model/DescribeRtcChannelsRequest.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_RTC_MODEL_DESCRIBEMAURULEREQUEST_H_
-#define ALIBABACLOUD_RTC_MODEL_DESCRIBEMAURULEREQUEST_H_
+#ifndef ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELSREQUEST_H_
+#define ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELSREQUEST_H_
 
 #include <string>
 #include <vector>
@@ -28,27 +28,42 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_RTC_EXPORT DescribeMAURuleRequest : public RpcServiceRequest
+			class ALIBABACLOUD_RTC_EXPORT DescribeRtcChannelsRequest : public RpcServiceRequest
 			{
 
 			public:
-				DescribeMAURuleRequest();
-				~DescribeMAURuleRequest();
+				DescribeRtcChannelsRequest();
+				~DescribeRtcChannelsRequest();
 
+				std::string getStartTime()const;
+				void setStartTime(const std::string& startTime);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
 				std::string getShowLog()const;
 				void setShowLog(const std::string& showLog);
+				std::string getEndTime()const;
+				void setEndTime(const std::string& endTime);
 				long getOwnerId()const;
 				void setOwnerId(long ownerId);
+				int getPageNo()const;
+				void setPageNo(int pageNo);
 				std::string getAppId()const;
 				void setAppId(const std::string& appId);
+				std::string getChannelId()const;
+				void setChannelId(const std::string& channelId);
 
             private:
+				std::string startTime_;
+				int pageSize_;
 				std::string showLog_;
+				std::string endTime_;
 				long ownerId_;
+				int pageNo_;
 				std::string appId_;
+				std::string channelId_;
 
 			};
 		}
 	}
 }
-#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBEMAURULEREQUEST_H_
+#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELSREQUEST_H_

+ 22 - 7
rtc/include/alibabacloud/rtc/model/DeleteMAURuleResult.h → rtc/include/alibabacloud/rtc/model/DescribeRtcChannelsResult.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_RTC_MODEL_DELETEMAURULERESULT_H_
-#define ALIBABACLOUD_RTC_MODEL_DELETEMAURULERESULT_H_
+#ifndef ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELSRESULT_H_
+#define ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELSRESULT_H_
 
 #include <string>
 #include <vector>
@@ -29,21 +29,36 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_RTC_EXPORT DeleteMAURuleResult : public ServiceResult
+			class ALIBABACLOUD_RTC_EXPORT DescribeRtcChannelsResult : public ServiceResult
 			{
 			public:
+				struct Channel
+				{
+					bool finished;
+					std::string endTime;
+					std::string startTime;
+					std::string channelId;
+				};
 
 
-				DeleteMAURuleResult();
-				explicit DeleteMAURuleResult(const std::string &payload);
-				~DeleteMAURuleResult();
+				DescribeRtcChannelsResult();
+				explicit DescribeRtcChannelsResult(const std::string &payload);
+				~DescribeRtcChannelsResult();
+				long getPageSize()const;
+				long getTotalCnt()const;
+				long getPageNo()const;
+				std::vector<Channel> getChannels()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				long pageSize_;
+				long totalCnt_;
+				long pageNo_;
+				std::vector<Channel> channels_;
 
 			};
 		}
 	}
 }
-#endif // !ALIBABACLOUD_RTC_MODEL_DELETEMAURULERESULT_H_
+#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBERTCCHANNELSRESULT_H_

+ 18 - 18
rtc/include/alibabacloud/rtc/model/CreateMAURuleRequest.h → rtc/include/alibabacloud/rtc/model/DescribeRtcUserEventsRequest.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_RTC_MODEL_CREATEMAURULEREQUEST_H_
-#define ALIBABACLOUD_RTC_MODEL_CREATEMAURULEREQUEST_H_
+#ifndef ALIBABACLOUD_RTC_MODEL_DESCRIBERTCUSEREVENTSREQUEST_H_
+#define ALIBABACLOUD_RTC_MODEL_DESCRIBERTCUSEREVENTSREQUEST_H_
 
 #include <string>
 #include <vector>
@@ -28,39 +28,39 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_RTC_EXPORT CreateMAURuleRequest : public RpcServiceRequest
+			class ALIBABACLOUD_RTC_EXPORT DescribeRtcUserEventsRequest : public RpcServiceRequest
 			{
 
 			public:
-				CreateMAURuleRequest();
-				~CreateMAURuleRequest();
+				DescribeRtcUserEventsRequest();
+				~DescribeRtcUserEventsRequest();
 
-				std::string getUseridPrefix()const;
-				void setUseridPrefix(const std::string& useridPrefix);
-				std::string getChannelPrefix()const;
-				void setChannelPrefix(const std::string& channelPrefix);
+				std::string getStartTime()const;
+				void setStartTime(const std::string& startTime);
+				std::string getUid()const;
+				void setUid(const std::string& uid);
 				std::string getShowLog()const;
 				void setShowLog(const std::string& showLog);
+				std::string getEndTime()const;
+				void setEndTime(const std::string& endTime);
 				long getOwnerId()const;
 				void setOwnerId(long ownerId);
-				long getMauTemplateId()const;
-				void setMauTemplateId(long mauTemplateId);
 				std::string getAppId()const;
 				void setAppId(const std::string& appId);
-				std::string getCallBack()const;
-				void setCallBack(const std::string& callBack);
+				std::string getChannelId()const;
+				void setChannelId(const std::string& channelId);
 
             private:
-				std::string useridPrefix_;
-				std::string channelPrefix_;
+				std::string startTime_;
+				std::string uid_;
 				std::string showLog_;
+				std::string endTime_;
 				long ownerId_;
-				long mauTemplateId_;
 				std::string appId_;
-				std::string callBack_;
+				std::string channelId_;
 
 			};
 		}
 	}
 }
-#endif // !ALIBABACLOUD_RTC_MODEL_CREATEMAURULEREQUEST_H_
+#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBERTCUSEREVENTSREQUEST_H_

+ 15 - 9
rtc/include/alibabacloud/rtc/model/CreateMAURuleResult.h → rtc/include/alibabacloud/rtc/model/DescribeRtcUserEventsResult.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_RTC_MODEL_CREATEMAURULERESULT_H_
-#define ALIBABACLOUD_RTC_MODEL_CREATEMAURULERESULT_H_
+#ifndef ALIBABACLOUD_RTC_MODEL_DESCRIBERTCUSEREVENTSRESULT_H_
+#define ALIBABACLOUD_RTC_MODEL_DESCRIBERTCUSEREVENTSRESULT_H_
 
 #include <string>
 #include <vector>
@@ -29,23 +29,29 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_RTC_EXPORT CreateMAURuleResult : public ServiceResult
+			class ALIBABACLOUD_RTC_EXPORT DescribeRtcUserEventsResult : public ServiceResult
 			{
 			public:
+				struct Event
+				{
+					std::string category;
+					long eventTime;
+					std::string eventId;
+				};
 
 
-				CreateMAURuleResult();
-				explicit CreateMAURuleResult(const std::string &payload);
-				~CreateMAURuleResult();
-				long getRuleId()const;
+				DescribeRtcUserEventsResult();
+				explicit DescribeRtcUserEventsResult(const std::string &payload);
+				~DescribeRtcUserEventsResult();
+				std::vector<Event> getEvents()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
-				long ruleId_;
+				std::vector<Event> events_;
 
 			};
 		}
 	}
 }
-#endif // !ALIBABACLOUD_RTC_MODEL_CREATEMAURULERESULT_H_
+#endif // !ALIBABACLOUD_RTC_MODEL_DESCRIBERTCUSEREVENTSRESULT_H_

+ 0 - 57
rtc/include/alibabacloud/rtc/model/EnableMAURuleRequest.h

@@ -1,57 +0,0 @@
-/*
- * 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_RTC_MODEL_ENABLEMAURULEREQUEST_H_
-#define ALIBABACLOUD_RTC_MODEL_ENABLEMAURULEREQUEST_H_
-
-#include <string>
-#include <vector>
-#include <alibabacloud/core/RpcServiceRequest.h>
-#include <alibabacloud/rtc/RtcExport.h>
-
-namespace AlibabaCloud
-{
-	namespace Rtc
-	{
-		namespace Model
-		{
-			class ALIBABACLOUD_RTC_EXPORT EnableMAURuleRequest : public RpcServiceRequest
-			{
-
-			public:
-				EnableMAURuleRequest();
-				~EnableMAURuleRequest();
-
-				std::string getShowLog()const;
-				void setShowLog(const std::string& showLog);
-				long getOwnerId()const;
-				void setOwnerId(long ownerId);
-				std::string getAppId()const;
-				void setAppId(const std::string& appId);
-				long getRuleId()const;
-				void setRuleId(long ruleId);
-
-            private:
-				std::string showLog_;
-				long ownerId_;
-				std::string appId_;
-				long ruleId_;
-
-			};
-		}
-	}
-}
-#endif // !ALIBABACLOUD_RTC_MODEL_ENABLEMAURULEREQUEST_H_

+ 0 - 49
rtc/include/alibabacloud/rtc/model/EnableMAURuleResult.h

@@ -1,49 +0,0 @@
-/*
- * 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_RTC_MODEL_ENABLEMAURULERESULT_H_
-#define ALIBABACLOUD_RTC_MODEL_ENABLEMAURULERESULT_H_
-
-#include <string>
-#include <vector>
-#include <utility>
-#include <alibabacloud/core/ServiceResult.h>
-#include <alibabacloud/rtc/RtcExport.h>
-
-namespace AlibabaCloud
-{
-	namespace Rtc
-	{
-		namespace Model
-		{
-			class ALIBABACLOUD_RTC_EXPORT EnableMAURuleResult : public ServiceResult
-			{
-			public:
-
-
-				EnableMAURuleResult();
-				explicit EnableMAURuleResult(const std::string &payload);
-				~EnableMAURuleResult();
-
-			protected:
-				void parse(const std::string &payload);
-			private:
-
-			};
-		}
-	}
-}
-#endif // !ALIBABACLOUD_RTC_MODEL_ENABLEMAURULERESULT_H_

+ 22 - 0
rtc/include/alibabacloud/rtc/model/StartRecordTaskRequest.h

@@ -36,6 +36,28 @@ namespace AlibabaCloud
 					int paneId;
 					std::string userId;
 					std::string sourceType;
+					struct Images
+					{
+						std::string url;
+						int display;
+						float x;
+						float y;
+						float width;
+						float height;
+						int zOrder;
+					};
+					std::vector<Images> images;
+					struct Texts
+					{
+						std::string text;
+						float x;
+						float y;
+						int fontType;
+						int fontSize;
+						int fontColor;
+						int zOrder;
+					};
+					std::vector<Texts> texts;
 				};
 
 			public:

+ 98 - 0
rtc/include/alibabacloud/rtc/model/UpdateRecordTaskRequest.h

@@ -0,0 +1,98 @@
+/*
+ * 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_RTC_MODEL_UPDATERECORDTASKREQUEST_H_
+#define ALIBABACLOUD_RTC_MODEL_UPDATERECORDTASKREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/rtc/RtcExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Rtc
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_RTC_EXPORT UpdateRecordTaskRequest : public RpcServiceRequest
+			{
+			public:
+				struct UserPanes
+				{
+					int paneId;
+					std::string userId;
+					std::string sourceType;
+					struct Images
+					{
+						std::string url;
+						int display;
+						float x;
+						float y;
+						float width;
+						float height;
+						int zOrder;
+					};
+					std::vector<Images> images;
+					struct Texts
+					{
+						std::string text;
+						float x;
+						float y;
+						int fontType;
+						int fontSize;
+						int fontColor;
+						int zOrder;
+					};
+					std::vector<Texts> texts;
+				};
+
+			public:
+				UpdateRecordTaskRequest();
+				~UpdateRecordTaskRequest();
+
+				std::vector<UserPanes> getUserPanes()const;
+				void setUserPanes(const std::vector<UserPanes>& userPanes);
+				std::string getTaskId()const;
+				void setTaskId(const std::string& taskId);
+				std::string getShowLog()const;
+				void setShowLog(const std::string& showLog);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				std::string getTemplateId()const;
+				void setTemplateId(const std::string& templateId);
+				std::vector<std::string> getSubSpecUsers()const;
+				void setSubSpecUsers(const std::vector<std::string>& subSpecUsers);
+				std::string getAppId()const;
+				void setAppId(const std::string& appId);
+				std::string getChannelId()const;
+				void setChannelId(const std::string& channelId);
+
+            private:
+				std::vector<UserPanes> userPanes_;
+				std::string taskId_;
+				std::string showLog_;
+				long ownerId_;
+				std::string templateId_;
+				std::vector<std::string> subSpecUsers_;
+				std::string appId_;
+				std::string channelId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_RTC_MODEL_UPDATERECORDTASKREQUEST_H_

+ 7 - 7
rtc/include/alibabacloud/rtc/model/DisableMAURuleResult.h → rtc/include/alibabacloud/rtc/model/UpdateRecordTaskResult.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_RTC_MODEL_DISABLEMAURULERESULT_H_
-#define ALIBABACLOUD_RTC_MODEL_DISABLEMAURULERESULT_H_
+#ifndef ALIBABACLOUD_RTC_MODEL_UPDATERECORDTASKRESULT_H_
+#define ALIBABACLOUD_RTC_MODEL_UPDATERECORDTASKRESULT_H_
 
 #include <string>
 #include <vector>
@@ -29,14 +29,14 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_RTC_EXPORT DisableMAURuleResult : public ServiceResult
+			class ALIBABACLOUD_RTC_EXPORT UpdateRecordTaskResult : public ServiceResult
 			{
 			public:
 
 
-				DisableMAURuleResult();
-				explicit DisableMAURuleResult(const std::string &payload);
-				~DisableMAURuleResult();
+				UpdateRecordTaskResult();
+				explicit UpdateRecordTaskResult(const std::string &payload);
+				~UpdateRecordTaskResult();
 
 			protected:
 				void parse(const std::string &payload);
@@ -46,4 +46,4 @@ namespace AlibabaCloud
 		}
 	}
 }
-#endif // !ALIBABACLOUD_RTC_MODEL_DISABLEMAURULERESULT_H_
+#endif // !ALIBABACLOUD_RTC_MODEL_UPDATERECORDTASKRESULT_H_

+ 31 - 0
rtc/include/alibabacloud/rtc/model/UpdateRecordTemplateRequest.h

@@ -30,6 +30,28 @@ namespace AlibabaCloud
 		{
 			class ALIBABACLOUD_RTC_EXPORT UpdateRecordTemplateRequest : public RpcServiceRequest
 			{
+			public:
+				struct Watermarks
+				{
+					std::string url;
+					float alpha;
+					int display;
+					float x;
+					float y;
+					float width;
+					float height;
+					int zOrder;
+				};
+				struct Backgrounds
+				{
+					std::string url;
+					int display;
+					float x;
+					float y;
+					float width;
+					float height;
+					int zOrder;
+				};
 
 			public:
 				UpdateRecordTemplateRequest();
@@ -53,12 +75,18 @@ namespace AlibabaCloud
 				void setMnsQueue(const std::string& mnsQueue);
 				int getFileSplitInterval()const;
 				void setFileSplitInterval(int fileSplitInterval);
+				std::string getHttpCallbackUrl()const;
+				void setHttpCallbackUrl(const std::string& httpCallbackUrl);
+				std::vector<Watermarks> getWatermarks()const;
+				void setWatermarks(const std::vector<Watermarks>& watermarks);
 				long getOwnerId()const;
 				void setOwnerId(long ownerId);
 				std::string getTemplateId()const;
 				void setTemplateId(const std::string& templateId);
 				std::string getAppId()const;
 				void setAppId(const std::string& appId);
+				std::vector<Backgrounds> getBackgrounds()const;
+				void setBackgrounds(const std::vector<Backgrounds>& backgrounds);
 				std::string getName()const;
 				void setName(const std::string& name);
 				int getMediaEncode()const;
@@ -74,9 +102,12 @@ namespace AlibabaCloud
 				std::string ossBucket_;
 				std::string mnsQueue_;
 				int fileSplitInterval_;
+				std::string httpCallbackUrl_;
+				std::vector<Watermarks> watermarks_;
 				long ownerId_;
 				std::string templateId_;
 				std::string appId_;
+				std::vector<Backgrounds> backgrounds_;
 				std::string name_;
 				int mediaEncode_;
 

+ 243 - 171
rtc/src/RtcClient.cc

@@ -159,42 +159,6 @@ RtcClient::CreateConferenceOutcomeCallable RtcClient::createConferenceCallable(c
 	return task->get_future();
 }
 
-RtcClient::CreateMAURuleOutcome RtcClient::createMAURule(const CreateMAURuleRequest &request) const
-{
-	auto endpointOutcome = endpointProvider_->getEndpoint();
-	if (!endpointOutcome.isSuccess())
-		return CreateMAURuleOutcome(endpointOutcome.error());
-
-	auto outcome = makeRequest(endpointOutcome.result(), request);
-
-	if (outcome.isSuccess())
-		return CreateMAURuleOutcome(CreateMAURuleResult(outcome.result()));
-	else
-		return CreateMAURuleOutcome(outcome.error());
-}
-
-void RtcClient::createMAURuleAsync(const CreateMAURuleRequest& request, const CreateMAURuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
-{
-	auto fn = [this, request, handler, context]()
-	{
-		handler(this, request, createMAURule(request), context);
-	};
-
-	asyncExecute(new Runnable(fn));
-}
-
-RtcClient::CreateMAURuleOutcomeCallable RtcClient::createMAURuleCallable(const CreateMAURuleRequest &request) const
-{
-	auto task = std::make_shared<std::packaged_task<CreateMAURuleOutcome()>>(
-			[this, request]()
-			{
-			return this->createMAURule(request);
-			});
-
-	asyncExecute(new Runnable([task]() { (*task)(); }));
-	return task->get_future();
-}
-
 RtcClient::CreateMPULayoutOutcome RtcClient::createMPULayout(const CreateMPULayoutRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -375,42 +339,6 @@ RtcClient::DeleteConferenceOutcomeCallable RtcClient::deleteConferenceCallable(c
 	return task->get_future();
 }
 
-RtcClient::DeleteMAURuleOutcome RtcClient::deleteMAURule(const DeleteMAURuleRequest &request) const
-{
-	auto endpointOutcome = endpointProvider_->getEndpoint();
-	if (!endpointOutcome.isSuccess())
-		return DeleteMAURuleOutcome(endpointOutcome.error());
-
-	auto outcome = makeRequest(endpointOutcome.result(), request);
-
-	if (outcome.isSuccess())
-		return DeleteMAURuleOutcome(DeleteMAURuleResult(outcome.result()));
-	else
-		return DeleteMAURuleOutcome(outcome.error());
-}
-
-void RtcClient::deleteMAURuleAsync(const DeleteMAURuleRequest& request, const DeleteMAURuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
-{
-	auto fn = [this, request, handler, context]()
-	{
-		handler(this, request, deleteMAURule(request), context);
-	};
-
-	asyncExecute(new Runnable(fn));
-}
-
-RtcClient::DeleteMAURuleOutcomeCallable RtcClient::deleteMAURuleCallable(const DeleteMAURuleRequest &request) const
-{
-	auto task = std::make_shared<std::packaged_task<DeleteMAURuleOutcome()>>(
-			[this, request]()
-			{
-			return this->deleteMAURule(request);
-			});
-
-	asyncExecute(new Runnable([task]() { (*task)(); }));
-	return task->get_future();
-}
-
 RtcClient::DeleteMPULayoutOutcome RtcClient::deleteMPULayout(const DeleteMPULayoutRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -663,42 +591,6 @@ RtcClient::DescribeConferenceAuthInfoOutcomeCallable RtcClient::describeConferen
 	return task->get_future();
 }
 
-RtcClient::DescribeMAURuleOutcome RtcClient::describeMAURule(const DescribeMAURuleRequest &request) const
-{
-	auto endpointOutcome = endpointProvider_->getEndpoint();
-	if (!endpointOutcome.isSuccess())
-		return DescribeMAURuleOutcome(endpointOutcome.error());
-
-	auto outcome = makeRequest(endpointOutcome.result(), request);
-
-	if (outcome.isSuccess())
-		return DescribeMAURuleOutcome(DescribeMAURuleResult(outcome.result()));
-	else
-		return DescribeMAURuleOutcome(outcome.error());
-}
-
-void RtcClient::describeMAURuleAsync(const DescribeMAURuleRequest& request, const DescribeMAURuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
-{
-	auto fn = [this, request, handler, context]()
-	{
-		handler(this, request, describeMAURule(request), context);
-	};
-
-	asyncExecute(new Runnable(fn));
-}
-
-RtcClient::DescribeMAURuleOutcomeCallable RtcClient::describeMAURuleCallable(const DescribeMAURuleRequest &request) const
-{
-	auto task = std::make_shared<std::packaged_task<DescribeMAURuleOutcome()>>(
-			[this, request]()
-			{
-			return this->describeMAURule(request);
-			});
-
-	asyncExecute(new Runnable([task]() { (*task)(); }));
-	return task->get_future();
-}
-
 RtcClient::DescribeMPULayoutInfoOutcome RtcClient::describeMPULayoutInfo(const DescribeMPULayoutInfoRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -879,6 +771,78 @@ RtcClient::DescribeRTCAppKeyOutcomeCallable RtcClient::describeRTCAppKeyCallable
 	return task->get_future();
 }
 
+RtcClient::DescribeRecordFilesOutcome RtcClient::describeRecordFiles(const DescribeRecordFilesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRecordFilesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRecordFilesOutcome(DescribeRecordFilesResult(outcome.result()));
+	else
+		return DescribeRecordFilesOutcome(outcome.error());
+}
+
+void RtcClient::describeRecordFilesAsync(const DescribeRecordFilesRequest& request, const DescribeRecordFilesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRecordFiles(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+RtcClient::DescribeRecordFilesOutcomeCallable RtcClient::describeRecordFilesCallable(const DescribeRecordFilesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRecordFilesOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRecordFiles(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+RtcClient::DescribeRecordTasksOutcome RtcClient::describeRecordTasks(const DescribeRecordTasksRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRecordTasksOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRecordTasksOutcome(DescribeRecordTasksResult(outcome.result()));
+	else
+		return DescribeRecordTasksOutcome(outcome.error());
+}
+
+void RtcClient::describeRecordTasksAsync(const DescribeRecordTasksRequest& request, const DescribeRecordTasksAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRecordTasks(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+RtcClient::DescribeRecordTasksOutcomeCallable RtcClient::describeRecordTasksCallable(const DescribeRecordTasksRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRecordTasksOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRecordTasks(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 RtcClient::DescribeRecordTemplatesOutcome RtcClient::describeRecordTemplates(const DescribeRecordTemplatesRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -951,6 +915,42 @@ RtcClient::DescribeRtcChannelCntDataOutcomeCallable RtcClient::describeRtcChanne
 	return task->get_future();
 }
 
+RtcClient::DescribeRtcChannelDetailOutcome RtcClient::describeRtcChannelDetail(const DescribeRtcChannelDetailRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRtcChannelDetailOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRtcChannelDetailOutcome(DescribeRtcChannelDetailResult(outcome.result()));
+	else
+		return DescribeRtcChannelDetailOutcome(outcome.error());
+}
+
+void RtcClient::describeRtcChannelDetailAsync(const DescribeRtcChannelDetailRequest& request, const DescribeRtcChannelDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRtcChannelDetail(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+RtcClient::DescribeRtcChannelDetailOutcomeCallable RtcClient::describeRtcChannelDetailCallable(const DescribeRtcChannelDetailRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRtcChannelDetailOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRtcChannelDetail(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 RtcClient::DescribeRtcChannelListOutcome RtcClient::describeRtcChannelList(const DescribeRtcChannelListRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1023,6 +1023,42 @@ RtcClient::DescribeRtcChannelMetricOutcomeCallable RtcClient::describeRtcChannel
 	return task->get_future();
 }
 
+RtcClient::DescribeRtcChannelMetricsOutcome RtcClient::describeRtcChannelMetrics(const DescribeRtcChannelMetricsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRtcChannelMetricsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRtcChannelMetricsOutcome(DescribeRtcChannelMetricsResult(outcome.result()));
+	else
+		return DescribeRtcChannelMetricsOutcome(outcome.error());
+}
+
+void RtcClient::describeRtcChannelMetricsAsync(const DescribeRtcChannelMetricsRequest& request, const DescribeRtcChannelMetricsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRtcChannelMetrics(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+RtcClient::DescribeRtcChannelMetricsOutcomeCallable RtcClient::describeRtcChannelMetricsCallable(const DescribeRtcChannelMetricsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRtcChannelMetricsOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRtcChannelMetrics(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 RtcClient::DescribeRtcChannelUserListOutcome RtcClient::describeRtcChannelUserList(const DescribeRtcChannelUserListRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1059,6 +1095,42 @@ RtcClient::DescribeRtcChannelUserListOutcomeCallable RtcClient::describeRtcChann
 	return task->get_future();
 }
 
+RtcClient::DescribeRtcChannelsOutcome RtcClient::describeRtcChannels(const DescribeRtcChannelsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRtcChannelsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRtcChannelsOutcome(DescribeRtcChannelsResult(outcome.result()));
+	else
+		return DescribeRtcChannelsOutcome(outcome.error());
+}
+
+void RtcClient::describeRtcChannelsAsync(const DescribeRtcChannelsRequest& request, const DescribeRtcChannelsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRtcChannels(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+RtcClient::DescribeRtcChannelsOutcomeCallable RtcClient::describeRtcChannelsCallable(const DescribeRtcChannelsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRtcChannelsOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRtcChannels(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 RtcClient::DescribeRtcDurationDataOutcome RtcClient::describeRtcDurationData(const DescribeRtcDurationDataRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1239,108 +1311,108 @@ RtcClient::DescribeRtcUserCntDataOutcomeCallable RtcClient::describeRtcUserCntDa
 	return task->get_future();
 }
 
-RtcClient::DescribeRtcUserListOutcome RtcClient::describeRtcUserList(const DescribeRtcUserListRequest &request) const
+RtcClient::DescribeRtcUserEventsOutcome RtcClient::describeRtcUserEvents(const DescribeRtcUserEventsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return DescribeRtcUserListOutcome(endpointOutcome.error());
+		return DescribeRtcUserEventsOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return DescribeRtcUserListOutcome(DescribeRtcUserListResult(outcome.result()));
+		return DescribeRtcUserEventsOutcome(DescribeRtcUserEventsResult(outcome.result()));
 	else
-		return DescribeRtcUserListOutcome(outcome.error());
+		return DescribeRtcUserEventsOutcome(outcome.error());
 }
 
-void RtcClient::describeRtcUserListAsync(const DescribeRtcUserListRequest& request, const DescribeRtcUserListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void RtcClient::describeRtcUserEventsAsync(const DescribeRtcUserEventsRequest& request, const DescribeRtcUserEventsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, describeRtcUserList(request), context);
+		handler(this, request, describeRtcUserEvents(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-RtcClient::DescribeRtcUserListOutcomeCallable RtcClient::describeRtcUserListCallable(const DescribeRtcUserListRequest &request) const
+RtcClient::DescribeRtcUserEventsOutcomeCallable RtcClient::describeRtcUserEventsCallable(const DescribeRtcUserEventsRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<DescribeRtcUserListOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<DescribeRtcUserEventsOutcome()>>(
 			[this, request]()
 			{
-			return this->describeRtcUserList(request);
+			return this->describeRtcUserEvents(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
 	return task->get_future();
 }
 
-RtcClient::DescribeUserInfoInChannelOutcome RtcClient::describeUserInfoInChannel(const DescribeUserInfoInChannelRequest &request) const
+RtcClient::DescribeRtcUserListOutcome RtcClient::describeRtcUserList(const DescribeRtcUserListRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return DescribeUserInfoInChannelOutcome(endpointOutcome.error());
+		return DescribeRtcUserListOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return DescribeUserInfoInChannelOutcome(DescribeUserInfoInChannelResult(outcome.result()));
+		return DescribeRtcUserListOutcome(DescribeRtcUserListResult(outcome.result()));
 	else
-		return DescribeUserInfoInChannelOutcome(outcome.error());
+		return DescribeRtcUserListOutcome(outcome.error());
 }
 
-void RtcClient::describeUserInfoInChannelAsync(const DescribeUserInfoInChannelRequest& request, const DescribeUserInfoInChannelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void RtcClient::describeRtcUserListAsync(const DescribeRtcUserListRequest& request, const DescribeRtcUserListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, describeUserInfoInChannel(request), context);
+		handler(this, request, describeRtcUserList(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-RtcClient::DescribeUserInfoInChannelOutcomeCallable RtcClient::describeUserInfoInChannelCallable(const DescribeUserInfoInChannelRequest &request) const
+RtcClient::DescribeRtcUserListOutcomeCallable RtcClient::describeRtcUserListCallable(const DescribeRtcUserListRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<DescribeUserInfoInChannelOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<DescribeRtcUserListOutcome()>>(
 			[this, request]()
 			{
-			return this->describeUserInfoInChannel(request);
+			return this->describeRtcUserList(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
 	return task->get_future();
 }
 
-RtcClient::DisableMAURuleOutcome RtcClient::disableMAURule(const DisableMAURuleRequest &request) const
+RtcClient::DescribeUserInfoInChannelOutcome RtcClient::describeUserInfoInChannel(const DescribeUserInfoInChannelRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return DisableMAURuleOutcome(endpointOutcome.error());
+		return DescribeUserInfoInChannelOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return DisableMAURuleOutcome(DisableMAURuleResult(outcome.result()));
+		return DescribeUserInfoInChannelOutcome(DescribeUserInfoInChannelResult(outcome.result()));
 	else
-		return DisableMAURuleOutcome(outcome.error());
+		return DescribeUserInfoInChannelOutcome(outcome.error());
 }
 
-void RtcClient::disableMAURuleAsync(const DisableMAURuleRequest& request, const DisableMAURuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void RtcClient::describeUserInfoInChannelAsync(const DescribeUserInfoInChannelRequest& request, const DescribeUserInfoInChannelAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, disableMAURule(request), context);
+		handler(this, request, describeUserInfoInChannel(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-RtcClient::DisableMAURuleOutcomeCallable RtcClient::disableMAURuleCallable(const DisableMAURuleRequest &request) const
+RtcClient::DescribeUserInfoInChannelOutcomeCallable RtcClient::describeUserInfoInChannelCallable(const DescribeUserInfoInChannelRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<DisableMAURuleOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<DescribeUserInfoInChannelOutcome()>>(
 			[this, request]()
 			{
-			return this->disableMAURule(request);
+			return this->describeUserInfoInChannel(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
@@ -1383,42 +1455,6 @@ RtcClient::DisableMPURuleOutcomeCallable RtcClient::disableMPURuleCallable(const
 	return task->get_future();
 }
 
-RtcClient::EnableMAURuleOutcome RtcClient::enableMAURule(const EnableMAURuleRequest &request) const
-{
-	auto endpointOutcome = endpointProvider_->getEndpoint();
-	if (!endpointOutcome.isSuccess())
-		return EnableMAURuleOutcome(endpointOutcome.error());
-
-	auto outcome = makeRequest(endpointOutcome.result(), request);
-
-	if (outcome.isSuccess())
-		return EnableMAURuleOutcome(EnableMAURuleResult(outcome.result()));
-	else
-		return EnableMAURuleOutcome(outcome.error());
-}
-
-void RtcClient::enableMAURuleAsync(const EnableMAURuleRequest& request, const EnableMAURuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
-{
-	auto fn = [this, request, handler, context]()
-	{
-		handler(this, request, enableMAURule(request), context);
-	};
-
-	asyncExecute(new Runnable(fn));
-}
-
-RtcClient::EnableMAURuleOutcomeCallable RtcClient::enableMAURuleCallable(const EnableMAURuleRequest &request) const
-{
-	auto task = std::make_shared<std::packaged_task<EnableMAURuleOutcome()>>(
-			[this, request]()
-			{
-			return this->enableMAURule(request);
-			});
-
-	asyncExecute(new Runnable([task]() { (*task)(); }));
-	return task->get_future();
-}
-
 RtcClient::EnableMPURuleOutcome RtcClient::enableMPURule(const EnableMPURuleRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2139,6 +2175,42 @@ RtcClient::UpdateMPULayoutOutcomeCallable RtcClient::updateMPULayoutCallable(con
 	return task->get_future();
 }
 
+RtcClient::UpdateRecordTaskOutcome RtcClient::updateRecordTask(const UpdateRecordTaskRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateRecordTaskOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateRecordTaskOutcome(UpdateRecordTaskResult(outcome.result()));
+	else
+		return UpdateRecordTaskOutcome(outcome.error());
+}
+
+void RtcClient::updateRecordTaskAsync(const UpdateRecordTaskRequest& request, const UpdateRecordTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateRecordTask(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+RtcClient::UpdateRecordTaskOutcomeCallable RtcClient::updateRecordTaskCallable(const UpdateRecordTaskRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateRecordTaskOutcome()>>(
+			[this, request]()
+			{
+			return this->updateRecordTask(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 RtcClient::UpdateRecordTemplateOutcome RtcClient::updateRecordTemplate(const UpdateRecordTemplateRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 70 - 5
rtc/src/model/AddRecordTemplateRequest.cc

@@ -108,15 +108,15 @@ void AddRecordTemplateRequest::setOssBucket(const std::string& ossBucket)
 	setParameter("OssBucket", ossBucket);
 }
 
-std::string AddRecordTemplateRequest::getMnsQueue()const
+int AddRecordTemplateRequest::getDelayStopTime()const
 {
-	return mnsQueue_;
+	return delayStopTime_;
 }
 
-void AddRecordTemplateRequest::setMnsQueue(const std::string& mnsQueue)
+void AddRecordTemplateRequest::setDelayStopTime(int delayStopTime)
 {
-	mnsQueue_ = mnsQueue;
-	setParameter("MnsQueue", mnsQueue);
+	delayStopTime_ = delayStopTime;
+	setParameter("DelayStopTime", std::to_string(delayStopTime));
 }
 
 int AddRecordTemplateRequest::getFileSplitInterval()const
@@ -130,6 +130,50 @@ void AddRecordTemplateRequest::setFileSplitInterval(int fileSplitInterval)
 	setParameter("FileSplitInterval", std::to_string(fileSplitInterval));
 }
 
+std::string AddRecordTemplateRequest::getMnsQueue()const
+{
+	return mnsQueue_;
+}
+
+void AddRecordTemplateRequest::setMnsQueue(const std::string& mnsQueue)
+{
+	mnsQueue_ = mnsQueue;
+	setParameter("MnsQueue", mnsQueue);
+}
+
+std::string AddRecordTemplateRequest::getHttpCallbackUrl()const
+{
+	return httpCallbackUrl_;
+}
+
+void AddRecordTemplateRequest::setHttpCallbackUrl(const std::string& httpCallbackUrl)
+{
+	httpCallbackUrl_ = httpCallbackUrl;
+	setParameter("HttpCallbackUrl", httpCallbackUrl);
+}
+
+std::vector<AddRecordTemplateRequest::Watermarks> AddRecordTemplateRequest::getWatermarks()const
+{
+	return watermarks_;
+}
+
+void AddRecordTemplateRequest::setWatermarks(const std::vector<Watermarks>& watermarks)
+{
+	watermarks_ = watermarks;
+	for(int dep1 = 0; dep1!= watermarks.size(); dep1++) {
+		auto watermarksObj = watermarks.at(dep1);
+		std::string watermarksObjStr = "Watermarks." + std::to_string(dep1 + 1);
+		setParameter(watermarksObjStr + ".Url", watermarksObj.url);
+		setParameter(watermarksObjStr + ".Alpha", std::to_string(watermarksObj.alpha));
+		setParameter(watermarksObjStr + ".Display", std::to_string(watermarksObj.display));
+		setParameter(watermarksObjStr + ".X", std::to_string(watermarksObj.x));
+		setParameter(watermarksObjStr + ".Y", std::to_string(watermarksObj.y));
+		setParameter(watermarksObjStr + ".Width", std::to_string(watermarksObj.width));
+		setParameter(watermarksObjStr + ".Height", std::to_string(watermarksObj.height));
+		setParameter(watermarksObjStr + ".ZOrder", std::to_string(watermarksObj.zOrder));
+	}
+}
+
 long AddRecordTemplateRequest::getOwnerId()const
 {
 	return ownerId_;
@@ -152,6 +196,27 @@ void AddRecordTemplateRequest::setAppId(const std::string& appId)
 	setParameter("AppId", appId);
 }
 
+std::vector<AddRecordTemplateRequest::Backgrounds> AddRecordTemplateRequest::getBackgrounds()const
+{
+	return backgrounds_;
+}
+
+void AddRecordTemplateRequest::setBackgrounds(const std::vector<Backgrounds>& backgrounds)
+{
+	backgrounds_ = backgrounds;
+	for(int dep1 = 0; dep1!= backgrounds.size(); dep1++) {
+		auto backgroundsObj = backgrounds.at(dep1);
+		std::string backgroundsObjStr = "Backgrounds." + std::to_string(dep1 + 1);
+		setParameter(backgroundsObjStr + ".Url", backgroundsObj.url);
+		setParameter(backgroundsObjStr + ".Display", std::to_string(backgroundsObj.display));
+		setParameter(backgroundsObjStr + ".X", std::to_string(backgroundsObj.x));
+		setParameter(backgroundsObjStr + ".Y", std::to_string(backgroundsObj.y));
+		setParameter(backgroundsObjStr + ".Width", std::to_string(backgroundsObj.width));
+		setParameter(backgroundsObjStr + ".Height", std::to_string(backgroundsObj.height));
+		setParameter(backgroundsObjStr + ".ZOrder", std::to_string(backgroundsObj.zOrder));
+	}
+}
+
 std::string AddRecordTemplateRequest::getName()const
 {
 	return name_;

+ 0 - 106
rtc/src/model/CreateMAURuleRequest.cc

@@ -1,106 +0,0 @@
-/*
- * 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/rtc/model/CreateMAURuleRequest.h>
-
-using AlibabaCloud::Rtc::Model::CreateMAURuleRequest;
-
-CreateMAURuleRequest::CreateMAURuleRequest() :
-	RpcServiceRequest("rtc", "2018-01-11", "CreateMAURule")
-{
-	setMethod(HttpRequest::Method::Post);
-}
-
-CreateMAURuleRequest::~CreateMAURuleRequest()
-{}
-
-std::string CreateMAURuleRequest::getUseridPrefix()const
-{
-	return useridPrefix_;
-}
-
-void CreateMAURuleRequest::setUseridPrefix(const std::string& useridPrefix)
-{
-	useridPrefix_ = useridPrefix;
-	setParameter("UseridPrefix", useridPrefix);
-}
-
-std::string CreateMAURuleRequest::getChannelPrefix()const
-{
-	return channelPrefix_;
-}
-
-void CreateMAURuleRequest::setChannelPrefix(const std::string& channelPrefix)
-{
-	channelPrefix_ = channelPrefix;
-	setParameter("ChannelPrefix", channelPrefix);
-}
-
-std::string CreateMAURuleRequest::getShowLog()const
-{
-	return showLog_;
-}
-
-void CreateMAURuleRequest::setShowLog(const std::string& showLog)
-{
-	showLog_ = showLog;
-	setParameter("ShowLog", showLog);
-}
-
-long CreateMAURuleRequest::getOwnerId()const
-{
-	return ownerId_;
-}
-
-void CreateMAURuleRequest::setOwnerId(long ownerId)
-{
-	ownerId_ = ownerId;
-	setParameter("OwnerId", std::to_string(ownerId));
-}
-
-long CreateMAURuleRequest::getMauTemplateId()const
-{
-	return mauTemplateId_;
-}
-
-void CreateMAURuleRequest::setMauTemplateId(long mauTemplateId)
-{
-	mauTemplateId_ = mauTemplateId;
-	setParameter("MauTemplateId", std::to_string(mauTemplateId));
-}
-
-std::string CreateMAURuleRequest::getAppId()const
-{
-	return appId_;
-}
-
-void CreateMAURuleRequest::setAppId(const std::string& appId)
-{
-	appId_ = appId;
-	setParameter("AppId", appId);
-}
-
-std::string CreateMAURuleRequest::getCallBack()const
-{
-	return callBack_;
-}
-
-void CreateMAURuleRequest::setCallBack(const std::string& callBack)
-{
-	callBack_ = callBack;
-	setParameter("CallBack", callBack);
-}
-

+ 0 - 51
rtc/src/model/CreateMAURuleResult.cc

@@ -1,51 +0,0 @@
-/*
- * 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/rtc/model/CreateMAURuleResult.h>
-#include <json/json.h>
-
-using namespace AlibabaCloud::Rtc;
-using namespace AlibabaCloud::Rtc::Model;
-
-CreateMAURuleResult::CreateMAURuleResult() :
-	ServiceResult()
-{}
-
-CreateMAURuleResult::CreateMAURuleResult(const std::string &payload) :
-	ServiceResult()
-{
-	parse(payload);
-}
-
-CreateMAURuleResult::~CreateMAURuleResult()
-{}
-
-void CreateMAURuleResult::parse(const std::string &payload)
-{
-	Json::Reader reader;
-	Json::Value value;
-	reader.parse(payload, value);
-	setRequestId(value["RequestId"].asString());
-	if(!value["RuleId"].isNull())
-		ruleId_ = std::stol(value["RuleId"].asString());
-
-}
-
-long CreateMAURuleResult::getRuleId()const
-{
-	return ruleId_;
-}
-

+ 0 - 73
rtc/src/model/DeleteMAURuleRequest.cc

@@ -1,73 +0,0 @@
-/*
- * 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/rtc/model/DeleteMAURuleRequest.h>
-
-using AlibabaCloud::Rtc::Model::DeleteMAURuleRequest;
-
-DeleteMAURuleRequest::DeleteMAURuleRequest() :
-	RpcServiceRequest("rtc", "2018-01-11", "DeleteMAURule")
-{
-	setMethod(HttpRequest::Method::Post);
-}
-
-DeleteMAURuleRequest::~DeleteMAURuleRequest()
-{}
-
-std::string DeleteMAURuleRequest::getShowLog()const
-{
-	return showLog_;
-}
-
-void DeleteMAURuleRequest::setShowLog(const std::string& showLog)
-{
-	showLog_ = showLog;
-	setParameter("ShowLog", showLog);
-}
-
-long DeleteMAURuleRequest::getOwnerId()const
-{
-	return ownerId_;
-}
-
-void DeleteMAURuleRequest::setOwnerId(long ownerId)
-{
-	ownerId_ = ownerId;
-	setParameter("OwnerId", std::to_string(ownerId));
-}
-
-std::string DeleteMAURuleRequest::getAppId()const
-{
-	return appId_;
-}
-
-void DeleteMAURuleRequest::setAppId(const std::string& appId)
-{
-	appId_ = appId;
-	setParameter("AppId", appId);
-}
-
-long DeleteMAURuleRequest::getRuleId()const
-{
-	return ruleId_;
-}
-
-void DeleteMAURuleRequest::setRuleId(long ruleId)
-{
-	ruleId_ = ruleId;
-	setParameter("RuleId", std::to_string(ruleId));
-}
-

+ 0 - 44
rtc/src/model/DeleteMAURuleResult.cc

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

+ 0 - 62
rtc/src/model/DescribeMAURuleRequest.cc

@@ -1,62 +0,0 @@
-/*
- * 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/rtc/model/DescribeMAURuleRequest.h>
-
-using AlibabaCloud::Rtc::Model::DescribeMAURuleRequest;
-
-DescribeMAURuleRequest::DescribeMAURuleRequest() :
-	RpcServiceRequest("rtc", "2018-01-11", "DescribeMAURule")
-{
-	setMethod(HttpRequest::Method::Post);
-}
-
-DescribeMAURuleRequest::~DescribeMAURuleRequest()
-{}
-
-std::string DescribeMAURuleRequest::getShowLog()const
-{
-	return showLog_;
-}
-
-void DescribeMAURuleRequest::setShowLog(const std::string& showLog)
-{
-	showLog_ = showLog;
-	setParameter("ShowLog", showLog);
-}
-
-long DescribeMAURuleRequest::getOwnerId()const
-{
-	return ownerId_;
-}
-
-void DescribeMAURuleRequest::setOwnerId(long ownerId)
-{
-	ownerId_ = ownerId;
-	setParameter("OwnerId", std::to_string(ownerId));
-}
-
-std::string DescribeMAURuleRequest::getAppId()const
-{
-	return appId_;
-}
-
-void DescribeMAURuleRequest::setAppId(const std::string& appId)
-{
-	appId_ = appId;
-	setParameter("AppId", appId);
-}
-

+ 0 - 67
rtc/src/model/DescribeMAURuleResult.cc

@@ -1,67 +0,0 @@
-/*
- * 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/rtc/model/DescribeMAURuleResult.h>
-#include <json/json.h>
-
-using namespace AlibabaCloud::Rtc;
-using namespace AlibabaCloud::Rtc::Model;
-
-DescribeMAURuleResult::DescribeMAURuleResult() :
-	ServiceResult()
-{}
-
-DescribeMAURuleResult::DescribeMAURuleResult(const std::string &payload) :
-	ServiceResult()
-{
-	parse(payload);
-}
-
-DescribeMAURuleResult::~DescribeMAURuleResult()
-{}
-
-void DescribeMAURuleResult::parse(const std::string &payload)
-{
-	Json::Reader reader;
-	Json::Value value;
-	reader.parse(payload, value);
-	setRequestId(value["RequestId"].asString());
-	auto allRulesNode = value["Rules"]["Rule"];
-	for (auto valueRulesRule : allRulesNode)
-	{
-		Rule rulesObject;
-		if(!valueRulesRule["RuleId"].isNull())
-			rulesObject.ruleId = std::stol(valueRulesRule["RuleId"].asString());
-		if(!valueRulesRule["ChannelPrefix"].isNull())
-			rulesObject.channelPrefix = valueRulesRule["ChannelPrefix"].asString();
-		if(!valueRulesRule["UseridPrefix"].isNull())
-			rulesObject.useridPrefix = valueRulesRule["UseridPrefix"].asString();
-		if(!valueRulesRule["TemplateId"].isNull())
-			rulesObject.templateId = std::stol(valueRulesRule["TemplateId"].asString());
-		if(!valueRulesRule["CallBack"].isNull())
-			rulesObject.callBack = valueRulesRule["CallBack"].asString();
-		if(!valueRulesRule["IsEnable"].isNull())
-			rulesObject.isEnable = std::stoi(valueRulesRule["IsEnable"].asString());
-		rules_.push_back(rulesObject);
-	}
-
-}
-
-std::vector<DescribeMAURuleResult::Rule> DescribeMAURuleResult::getRules()const
-{
-	return rules_;
-}
-

+ 16 - 16
rtc/src/model/DescribeMPULayoutInfoListResult.cc

@@ -49,24 +49,24 @@ void DescribeMPULayoutInfoListResult::parse(const std::string &payload)
 			layoutsObject.name = valueLayoutsLayout["Name"].asString();
 		if(!valueLayoutsLayout["AudioMixCount"].isNull())
 			layoutsObject.audioMixCount = std::stoi(valueLayoutsLayout["AudioMixCount"].asString());
-		auto allPanesNode = allLayoutsNode["Panes"]["PanesItem"];
-		for (auto allLayoutsNodePanesPanesItem : allPanesNode)
+		auto allPanesNode = valueLayoutsLayout["Panes"]["PanesItem"];
+		for (auto valueLayoutsLayoutPanesPanesItem : allPanesNode)
 		{
 			Layout::PanesItem panesObject;
-			if(!allLayoutsNodePanesPanesItem["PaneId"].isNull())
-				panesObject.paneId = std::stoi(allLayoutsNodePanesPanesItem["PaneId"].asString());
-			if(!allLayoutsNodePanesPanesItem["MajorPane"].isNull())
-				panesObject.majorPane = std::stoi(allLayoutsNodePanesPanesItem["MajorPane"].asString());
-			if(!allLayoutsNodePanesPanesItem["X"].isNull())
-				panesObject.x = std::stof(allLayoutsNodePanesPanesItem["X"].asString());
-			if(!allLayoutsNodePanesPanesItem["Y"].isNull())
-				panesObject.y = std::stof(allLayoutsNodePanesPanesItem["Y"].asString());
-			if(!allLayoutsNodePanesPanesItem["Width"].isNull())
-				panesObject.width = std::stof(allLayoutsNodePanesPanesItem["Width"].asString());
-			if(!allLayoutsNodePanesPanesItem["Height"].isNull())
-				panesObject.height = std::stof(allLayoutsNodePanesPanesItem["Height"].asString());
-			if(!allLayoutsNodePanesPanesItem["ZOrder"].isNull())
-				panesObject.zOrder = std::stoi(allLayoutsNodePanesPanesItem["ZOrder"].asString());
+			if(!valueLayoutsLayoutPanesPanesItem["PaneId"].isNull())
+				panesObject.paneId = std::stoi(valueLayoutsLayoutPanesPanesItem["PaneId"].asString());
+			if(!valueLayoutsLayoutPanesPanesItem["MajorPane"].isNull())
+				panesObject.majorPane = std::stoi(valueLayoutsLayoutPanesPanesItem["MajorPane"].asString());
+			if(!valueLayoutsLayoutPanesPanesItem["X"].isNull())
+				panesObject.x = std::stof(valueLayoutsLayoutPanesPanesItem["X"].asString());
+			if(!valueLayoutsLayoutPanesPanesItem["Y"].isNull())
+				panesObject.y = std::stof(valueLayoutsLayoutPanesPanesItem["Y"].asString());
+			if(!valueLayoutsLayoutPanesPanesItem["Width"].isNull())
+				panesObject.width = std::stof(valueLayoutsLayoutPanesPanesItem["Width"].asString());
+			if(!valueLayoutsLayoutPanesPanesItem["Height"].isNull())
+				panesObject.height = std::stof(valueLayoutsLayoutPanesPanesItem["Height"].asString());
+			if(!valueLayoutsLayoutPanesPanesItem["ZOrder"].isNull())
+				panesObject.zOrder = std::stoi(valueLayoutsLayoutPanesPanesItem["ZOrder"].asString());
 			layoutsObject.panes.push_back(panesObject);
 		}
 		layouts_.push_back(layoutsObject);

+ 130 - 0
rtc/src/model/DescribeRecordFilesRequest.cc

@@ -0,0 +1,130 @@
+/*
+ * 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/rtc/model/DescribeRecordFilesRequest.h>
+
+using AlibabaCloud::Rtc::Model::DescribeRecordFilesRequest;
+
+DescribeRecordFilesRequest::DescribeRecordFilesRequest() :
+	RpcServiceRequest("rtc", "2018-01-11", "DescribeRecordFiles")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeRecordFilesRequest::~DescribeRecordFilesRequest()
+{}
+
+std::string DescribeRecordFilesRequest::getStartTime()const
+{
+	return startTime_;
+}
+
+void DescribeRecordFilesRequest::setStartTime(const std::string& startTime)
+{
+	startTime_ = startTime;
+	setParameter("StartTime", startTime);
+}
+
+int DescribeRecordFilesRequest::getPageNum()const
+{
+	return pageNum_;
+}
+
+void DescribeRecordFilesRequest::setPageNum(int pageNum)
+{
+	pageNum_ = pageNum;
+	setParameter("PageNum", std::to_string(pageNum));
+}
+
+std::vector<std::string> DescribeRecordFilesRequest::getTaskIds()const
+{
+	return taskIds_;
+}
+
+void DescribeRecordFilesRequest::setTaskIds(const std::vector<std::string>& taskIds)
+{
+	taskIds_ = taskIds;
+	for(int dep1 = 0; dep1!= taskIds.size(); dep1++) {
+		setParameter("TaskIds."+ std::to_string(dep1), taskIds.at(dep1));
+	}
+}
+
+int DescribeRecordFilesRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void DescribeRecordFilesRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+std::string DescribeRecordFilesRequest::getShowLog()const
+{
+	return showLog_;
+}
+
+void DescribeRecordFilesRequest::setShowLog(const std::string& showLog)
+{
+	showLog_ = showLog;
+	setParameter("ShowLog", showLog);
+}
+
+std::string DescribeRecordFilesRequest::getEndTime()const
+{
+	return endTime_;
+}
+
+void DescribeRecordFilesRequest::setEndTime(const std::string& endTime)
+{
+	endTime_ = endTime;
+	setParameter("EndTime", endTime);
+}
+
+long DescribeRecordFilesRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribeRecordFilesRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string DescribeRecordFilesRequest::getAppId()const
+{
+	return appId_;
+}
+
+void DescribeRecordFilesRequest::setAppId(const std::string& appId)
+{
+	appId_ = appId;
+	setParameter("AppId", appId);
+}
+
+std::string DescribeRecordFilesRequest::getChannelId()const
+{
+	return channelId_;
+}
+
+void DescribeRecordFilesRequest::setChannelId(const std::string& channelId)
+{
+	channelId_ = channelId;
+	setParameter("ChannelId", channelId);
+}
+

+ 85 - 0
rtc/src/model/DescribeRecordFilesResult.cc

@@ -0,0 +1,85 @@
+/*
+ * 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/rtc/model/DescribeRecordFilesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Rtc;
+using namespace AlibabaCloud::Rtc::Model;
+
+DescribeRecordFilesResult::DescribeRecordFilesResult() :
+	ServiceResult()
+{}
+
+DescribeRecordFilesResult::DescribeRecordFilesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeRecordFilesResult::~DescribeRecordFilesResult()
+{}
+
+void DescribeRecordFilesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allRecordFilesNode = value["RecordFiles"]["RecordFile"];
+	for (auto valueRecordFilesRecordFile : allRecordFilesNode)
+	{
+		RecordFile recordFilesObject;
+		if(!valueRecordFilesRecordFile["CreateTime"].isNull())
+			recordFilesObject.createTime = valueRecordFilesRecordFile["CreateTime"].asString();
+		if(!valueRecordFilesRecordFile["AppId"].isNull())
+			recordFilesObject.appId = valueRecordFilesRecordFile["AppId"].asString();
+		if(!valueRecordFilesRecordFile["ChannelId"].isNull())
+			recordFilesObject.channelId = valueRecordFilesRecordFile["ChannelId"].asString();
+		if(!valueRecordFilesRecordFile["TaskId"].isNull())
+			recordFilesObject.taskId = valueRecordFilesRecordFile["TaskId"].asString();
+		if(!valueRecordFilesRecordFile["StartTime"].isNull())
+			recordFilesObject.startTime = valueRecordFilesRecordFile["StartTime"].asString();
+		if(!valueRecordFilesRecordFile["StopTime"].isNull())
+			recordFilesObject.stopTime = valueRecordFilesRecordFile["StopTime"].asString();
+		if(!valueRecordFilesRecordFile["Url"].isNull())
+			recordFilesObject.url = valueRecordFilesRecordFile["Url"].asString();
+		if(!valueRecordFilesRecordFile["Duration"].isNull())
+			recordFilesObject.duration = std::stof(valueRecordFilesRecordFile["Duration"].asString());
+		recordFiles_.push_back(recordFilesObject);
+	}
+	if(!value["TotalNum"].isNull())
+		totalNum_ = std::stol(value["TotalNum"].asString());
+	if(!value["TotalPage"].isNull())
+		totalPage_ = std::stol(value["TotalPage"].asString());
+
+}
+
+long DescribeRecordFilesResult::getTotalNum()const
+{
+	return totalNum_;
+}
+
+long DescribeRecordFilesResult::getTotalPage()const
+{
+	return totalPage_;
+}
+
+std::vector<DescribeRecordFilesResult::RecordFile> DescribeRecordFilesResult::getRecordFiles()const
+{
+	return recordFiles_;
+}
+

+ 141 - 0
rtc/src/model/DescribeRecordTasksRequest.cc

@@ -0,0 +1,141 @@
+/*
+ * 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/rtc/model/DescribeRecordTasksRequest.h>
+
+using AlibabaCloud::Rtc::Model::DescribeRecordTasksRequest;
+
+DescribeRecordTasksRequest::DescribeRecordTasksRequest() :
+	RpcServiceRequest("rtc", "2018-01-11", "DescribeRecordTasks")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeRecordTasksRequest::~DescribeRecordTasksRequest()
+{}
+
+std::string DescribeRecordTasksRequest::getStartTime()const
+{
+	return startTime_;
+}
+
+void DescribeRecordTasksRequest::setStartTime(const std::string& startTime)
+{
+	startTime_ = startTime;
+	setParameter("StartTime", startTime);
+}
+
+std::vector<std::string> DescribeRecordTasksRequest::getTaskIds()const
+{
+	return taskIds_;
+}
+
+void DescribeRecordTasksRequest::setTaskIds(const std::vector<std::string>& taskIds)
+{
+	taskIds_ = taskIds;
+	for(int dep1 = 0; dep1!= taskIds.size(); dep1++) {
+		setParameter("TaskIds."+ std::to_string(dep1), taskIds.at(dep1));
+	}
+}
+
+int DescribeRecordTasksRequest::getPageNum()const
+{
+	return pageNum_;
+}
+
+void DescribeRecordTasksRequest::setPageNum(int pageNum)
+{
+	pageNum_ = pageNum;
+	setParameter("PageNum", std::to_string(pageNum));
+}
+
+int DescribeRecordTasksRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void DescribeRecordTasksRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+std::string DescribeRecordTasksRequest::getShowLog()const
+{
+	return showLog_;
+}
+
+void DescribeRecordTasksRequest::setShowLog(const std::string& showLog)
+{
+	showLog_ = showLog;
+	setParameter("ShowLog", showLog);
+}
+
+std::string DescribeRecordTasksRequest::getEndTime()const
+{
+	return endTime_;
+}
+
+void DescribeRecordTasksRequest::setEndTime(const std::string& endTime)
+{
+	endTime_ = endTime;
+	setParameter("EndTime", endTime);
+}
+
+long DescribeRecordTasksRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribeRecordTasksRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string DescribeRecordTasksRequest::getAppId()const
+{
+	return appId_;
+}
+
+void DescribeRecordTasksRequest::setAppId(const std::string& appId)
+{
+	appId_ = appId;
+	setParameter("AppId", appId);
+}
+
+std::string DescribeRecordTasksRequest::getChannelId()const
+{
+	return channelId_;
+}
+
+void DescribeRecordTasksRequest::setChannelId(const std::string& channelId)
+{
+	channelId_ = channelId;
+	setParameter("ChannelId", channelId);
+}
+
+std::string DescribeRecordTasksRequest::getStatus()const
+{
+	return status_;
+}
+
+void DescribeRecordTasksRequest::setStatus(const std::string& status)
+{
+	status_ = status;
+	setParameter("Status", status);
+}
+

+ 96 - 0
rtc/src/model/DescribeRecordTasksResult.cc

@@ -0,0 +1,96 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/rtc/model/DescribeRecordTasksResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Rtc;
+using namespace AlibabaCloud::Rtc::Model;
+
+DescribeRecordTasksResult::DescribeRecordTasksResult() :
+	ServiceResult()
+{}
+
+DescribeRecordTasksResult::DescribeRecordTasksResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeRecordTasksResult::~DescribeRecordTasksResult()
+{}
+
+void DescribeRecordTasksResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allRecordTasksNode = value["RecordTasks"]["RecordTask"];
+	for (auto valueRecordTasksRecordTask : allRecordTasksNode)
+	{
+		RecordTask recordTasksObject;
+		if(!valueRecordTasksRecordTask["CreateTime"].isNull())
+			recordTasksObject.createTime = valueRecordTasksRecordTask["CreateTime"].asString();
+		if(!valueRecordTasksRecordTask["AppId"].isNull())
+			recordTasksObject.appId = valueRecordTasksRecordTask["AppId"].asString();
+		if(!valueRecordTasksRecordTask["ChannelId"].isNull())
+			recordTasksObject.channelId = valueRecordTasksRecordTask["ChannelId"].asString();
+		if(!valueRecordTasksRecordTask["TaskId"].isNull())
+			recordTasksObject.taskId = valueRecordTasksRecordTask["TaskId"].asString();
+		if(!valueRecordTasksRecordTask["TemplateId"].isNull())
+			recordTasksObject.templateId = valueRecordTasksRecordTask["TemplateId"].asString();
+		if(!valueRecordTasksRecordTask["Status"].isNull())
+			recordTasksObject.status = std::stoi(valueRecordTasksRecordTask["Status"].asString());
+		auto allUserPanesNode = valueRecordTasksRecordTask["UserPanes"]["UserPanesItem"];
+		for (auto valueRecordTasksRecordTaskUserPanesUserPanesItem : allUserPanesNode)
+		{
+			RecordTask::UserPanesItem userPanesObject;
+			if(!valueRecordTasksRecordTaskUserPanesUserPanesItem["PaneId"].isNull())
+				userPanesObject.paneId = std::stoi(valueRecordTasksRecordTaskUserPanesUserPanesItem["PaneId"].asString());
+			if(!valueRecordTasksRecordTaskUserPanesUserPanesItem["UserId"].isNull())
+				userPanesObject.userId = valueRecordTasksRecordTaskUserPanesUserPanesItem["UserId"].asString();
+			if(!valueRecordTasksRecordTaskUserPanesUserPanesItem["Source"].isNull())
+				userPanesObject.source = valueRecordTasksRecordTaskUserPanesUserPanesItem["Source"].asString();
+			recordTasksObject.userPanes.push_back(userPanesObject);
+		}
+		auto allSubSpecUsers = value["SubSpecUsers"]["SubSpecUser"];
+		for (auto value : allSubSpecUsers)
+			recordTasksObject.subSpecUsers.push_back(value.asString());
+		recordTasks_.push_back(recordTasksObject);
+	}
+	if(!value["TotalNum"].isNull())
+		totalNum_ = std::stol(value["TotalNum"].asString());
+	if(!value["TotalPage"].isNull())
+		totalPage_ = std::stol(value["TotalPage"].asString());
+
+}
+
+std::vector<DescribeRecordTasksResult::RecordTask> DescribeRecordTasksResult::getRecordTasks()const
+{
+	return recordTasks_;
+}
+
+long DescribeRecordTasksResult::getTotalNum()const
+{
+	return totalNum_;
+}
+
+long DescribeRecordTasksResult::getTotalPage()const
+{
+	return totalPage_;
+}
+

+ 117 - 0
rtc/src/model/DescribeRtcChannelDetailRequest.cc

@@ -0,0 +1,117 @@
+/*
+ * 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/rtc/model/DescribeRtcChannelDetailRequest.h>
+
+using AlibabaCloud::Rtc::Model::DescribeRtcChannelDetailRequest;
+
+DescribeRtcChannelDetailRequest::DescribeRtcChannelDetailRequest() :
+	RpcServiceRequest("rtc", "2018-01-11", "DescribeRtcChannelDetail")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeRtcChannelDetailRequest::~DescribeRtcChannelDetailRequest()
+{}
+
+std::string DescribeRtcChannelDetailRequest::getStartTime()const
+{
+	return startTime_;
+}
+
+void DescribeRtcChannelDetailRequest::setStartTime(const std::string& startTime)
+{
+	startTime_ = startTime;
+	setParameter("StartTime", startTime);
+}
+
+int DescribeRtcChannelDetailRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void DescribeRtcChannelDetailRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+std::string DescribeRtcChannelDetailRequest::getShowLog()const
+{
+	return showLog_;
+}
+
+void DescribeRtcChannelDetailRequest::setShowLog(const std::string& showLog)
+{
+	showLog_ = showLog;
+	setParameter("ShowLog", showLog);
+}
+
+std::string DescribeRtcChannelDetailRequest::getEndTime()const
+{
+	return endTime_;
+}
+
+void DescribeRtcChannelDetailRequest::setEndTime(const std::string& endTime)
+{
+	endTime_ = endTime;
+	setParameter("EndTime", endTime);
+}
+
+long DescribeRtcChannelDetailRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribeRtcChannelDetailRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+int DescribeRtcChannelDetailRequest::getPageNo()const
+{
+	return pageNo_;
+}
+
+void DescribeRtcChannelDetailRequest::setPageNo(int pageNo)
+{
+	pageNo_ = pageNo;
+	setParameter("PageNo", std::to_string(pageNo));
+}
+
+std::string DescribeRtcChannelDetailRequest::getAppId()const
+{
+	return appId_;
+}
+
+void DescribeRtcChannelDetailRequest::setAppId(const std::string& appId)
+{
+	appId_ = appId;
+	setParameter("AppId", appId);
+}
+
+std::string DescribeRtcChannelDetailRequest::getChannelId()const
+{
+	return channelId_;
+}
+
+void DescribeRtcChannelDetailRequest::setChannelId(const std::string& channelId)
+{
+	channelId_ = channelId;
+	setParameter("ChannelId", channelId);
+}
+

+ 99 - 0
rtc/src/model/DescribeRtcChannelDetailResult.cc

@@ -0,0 +1,99 @@
+/*
+ * 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/rtc/model/DescribeRtcChannelDetailResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Rtc;
+using namespace AlibabaCloud::Rtc::Model;
+
+DescribeRtcChannelDetailResult::DescribeRtcChannelDetailResult() :
+	ServiceResult()
+{}
+
+DescribeRtcChannelDetailResult::DescribeRtcChannelDetailResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeRtcChannelDetailResult::~DescribeRtcChannelDetailResult()
+{}
+
+void DescribeRtcChannelDetailResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allChannelInfoNode = value["ChannelInfo"]["Detail"];
+	for (auto valueChannelInfoDetail : allChannelInfoNode)
+	{
+		Detail channelInfoObject;
+		if(!valueChannelInfoDetail["Sid"].isNull())
+			channelInfoObject.sid = valueChannelInfoDetail["Sid"].asString();
+		if(!valueChannelInfoDetail["Uid"].isNull())
+			channelInfoObject.uid = valueChannelInfoDetail["Uid"].asString();
+		if(!valueChannelInfoDetail["JoinTime"].isNull())
+			channelInfoObject.joinTime = valueChannelInfoDetail["JoinTime"].asString();
+		if(!valueChannelInfoDetail["LeaveTime"].isNull())
+			channelInfoObject.leaveTime = valueChannelInfoDetail["LeaveTime"].asString();
+		if(!valueChannelInfoDetail["SdkVersion"].isNull())
+			channelInfoObject.sdkVersion = valueChannelInfoDetail["SdkVersion"].asString();
+		if(!valueChannelInfoDetail["Platform"].isNull())
+			channelInfoObject.platform = valueChannelInfoDetail["Platform"].asString();
+		if(!valueChannelInfoDetail["OS"].isNull())
+			channelInfoObject.oS = valueChannelInfoDetail["OS"].asString();
+		if(!valueChannelInfoDetail["DeviceType"].isNull())
+			channelInfoObject.deviceType = valueChannelInfoDetail["DeviceType"].asString();
+		channelInfo_.push_back(channelInfoObject);
+	}
+	if(!value["ChannelId"].isNull())
+		channelId_ = value["ChannelId"].asString();
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stol(value["PageSize"].asString());
+	if(!value["PageNo"].isNull())
+		pageNo_ = std::stol(value["PageNo"].asString());
+	if(!value["TotalCnt"].isNull())
+		totalCnt_ = std::stol(value["TotalCnt"].asString());
+
+}
+
+long DescribeRtcChannelDetailResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+long DescribeRtcChannelDetailResult::getTotalCnt()const
+{
+	return totalCnt_;
+}
+
+std::vector<DescribeRtcChannelDetailResult::Detail> DescribeRtcChannelDetailResult::getChannelInfo()const
+{
+	return channelInfo_;
+}
+
+long DescribeRtcChannelDetailResult::getPageNo()const
+{
+	return pageNo_;
+}
+
+std::string DescribeRtcChannelDetailResult::getChannelId()const
+{
+	return channelId_;
+}
+

+ 117 - 0
rtc/src/model/DescribeRtcChannelMetricsRequest.cc

@@ -0,0 +1,117 @@
+/*
+ * 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/rtc/model/DescribeRtcChannelMetricsRequest.h>
+
+using AlibabaCloud::Rtc::Model::DescribeRtcChannelMetricsRequest;
+
+DescribeRtcChannelMetricsRequest::DescribeRtcChannelMetricsRequest() :
+	RpcServiceRequest("rtc", "2018-01-11", "DescribeRtcChannelMetrics")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeRtcChannelMetricsRequest::~DescribeRtcChannelMetricsRequest()
+{}
+
+std::string DescribeRtcChannelMetricsRequest::getStartTime()const
+{
+	return startTime_;
+}
+
+void DescribeRtcChannelMetricsRequest::setStartTime(const std::string& startTime)
+{
+	startTime_ = startTime;
+	setParameter("StartTime", startTime);
+}
+
+std::string DescribeRtcChannelMetricsRequest::getSubUid()const
+{
+	return subUid_;
+}
+
+void DescribeRtcChannelMetricsRequest::setSubUid(const std::string& subUid)
+{
+	subUid_ = subUid;
+	setParameter("SubUid", subUid);
+}
+
+std::string DescribeRtcChannelMetricsRequest::getPubUid()const
+{
+	return pubUid_;
+}
+
+void DescribeRtcChannelMetricsRequest::setPubUid(const std::string& pubUid)
+{
+	pubUid_ = pubUid;
+	setParameter("PubUid", pubUid);
+}
+
+std::string DescribeRtcChannelMetricsRequest::getShowLog()const
+{
+	return showLog_;
+}
+
+void DescribeRtcChannelMetricsRequest::setShowLog(const std::string& showLog)
+{
+	showLog_ = showLog;
+	setParameter("ShowLog", showLog);
+}
+
+std::string DescribeRtcChannelMetricsRequest::getEndTime()const
+{
+	return endTime_;
+}
+
+void DescribeRtcChannelMetricsRequest::setEndTime(const std::string& endTime)
+{
+	endTime_ = endTime;
+	setParameter("EndTime", endTime);
+}
+
+long DescribeRtcChannelMetricsRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribeRtcChannelMetricsRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string DescribeRtcChannelMetricsRequest::getAppId()const
+{
+	return appId_;
+}
+
+void DescribeRtcChannelMetricsRequest::setAppId(const std::string& appId)
+{
+	appId_ = appId;
+	setParameter("AppId", appId);
+}
+
+std::string DescribeRtcChannelMetricsRequest::getChannelId()const
+{
+	return channelId_;
+}
+
+void DescribeRtcChannelMetricsRequest::setChannelId(const std::string& channelId)
+{
+	channelId_ = channelId;
+	setParameter("ChannelId", channelId);
+}
+

+ 62 - 0
rtc/src/model/DescribeRtcChannelMetricsResult.cc

@@ -0,0 +1,62 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/rtc/model/DescribeRtcChannelMetricsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Rtc;
+using namespace AlibabaCloud::Rtc::Model;
+
+DescribeRtcChannelMetricsResult::DescribeRtcChannelMetricsResult() :
+	ServiceResult()
+{}
+
+DescribeRtcChannelMetricsResult::DescribeRtcChannelMetricsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeRtcChannelMetricsResult::~DescribeRtcChannelMetricsResult()
+{}
+
+void DescribeRtcChannelMetricsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allMetricsNode = value["Metrics"]["Metric"];
+	for (auto valueMetricsMetric : allMetricsNode)
+	{
+		Metric metricsObject;
+		if(!valueMetricsMetric["Uid"].isNull())
+			metricsObject.uid = valueMetricsMetric["Uid"].asString();
+		if(!valueMetricsMetric["Mid"].isNull())
+			metricsObject.mid = valueMetricsMetric["Mid"].asString();
+		auto allKVs = value["KVs"]["KV"];
+		for (auto value : allKVs)
+			metricsObject.kVs.push_back(value.asString());
+		metrics_.push_back(metricsObject);
+	}
+
+}
+
+std::vector<DescribeRtcChannelMetricsResult::Metric> DescribeRtcChannelMetricsResult::getMetrics()const
+{
+	return metrics_;
+}
+

+ 117 - 0
rtc/src/model/DescribeRtcChannelsRequest.cc

@@ -0,0 +1,117 @@
+/*
+ * 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/rtc/model/DescribeRtcChannelsRequest.h>
+
+using AlibabaCloud::Rtc::Model::DescribeRtcChannelsRequest;
+
+DescribeRtcChannelsRequest::DescribeRtcChannelsRequest() :
+	RpcServiceRequest("rtc", "2018-01-11", "DescribeRtcChannels")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeRtcChannelsRequest::~DescribeRtcChannelsRequest()
+{}
+
+std::string DescribeRtcChannelsRequest::getStartTime()const
+{
+	return startTime_;
+}
+
+void DescribeRtcChannelsRequest::setStartTime(const std::string& startTime)
+{
+	startTime_ = startTime;
+	setParameter("StartTime", startTime);
+}
+
+int DescribeRtcChannelsRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void DescribeRtcChannelsRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+std::string DescribeRtcChannelsRequest::getShowLog()const
+{
+	return showLog_;
+}
+
+void DescribeRtcChannelsRequest::setShowLog(const std::string& showLog)
+{
+	showLog_ = showLog;
+	setParameter("ShowLog", showLog);
+}
+
+std::string DescribeRtcChannelsRequest::getEndTime()const
+{
+	return endTime_;
+}
+
+void DescribeRtcChannelsRequest::setEndTime(const std::string& endTime)
+{
+	endTime_ = endTime;
+	setParameter("EndTime", endTime);
+}
+
+long DescribeRtcChannelsRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribeRtcChannelsRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+int DescribeRtcChannelsRequest::getPageNo()const
+{
+	return pageNo_;
+}
+
+void DescribeRtcChannelsRequest::setPageNo(int pageNo)
+{
+	pageNo_ = pageNo;
+	setParameter("PageNo", std::to_string(pageNo));
+}
+
+std::string DescribeRtcChannelsRequest::getAppId()const
+{
+	return appId_;
+}
+
+void DescribeRtcChannelsRequest::setAppId(const std::string& appId)
+{
+	appId_ = appId;
+	setParameter("AppId", appId);
+}
+
+std::string DescribeRtcChannelsRequest::getChannelId()const
+{
+	return channelId_;
+}
+
+void DescribeRtcChannelsRequest::setChannelId(const std::string& channelId)
+{
+	channelId_ = channelId;
+	setParameter("ChannelId", channelId);
+}
+

+ 84 - 0
rtc/src/model/DescribeRtcChannelsResult.cc

@@ -0,0 +1,84 @@
+/*
+ * 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/rtc/model/DescribeRtcChannelsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Rtc;
+using namespace AlibabaCloud::Rtc::Model;
+
+DescribeRtcChannelsResult::DescribeRtcChannelsResult() :
+	ServiceResult()
+{}
+
+DescribeRtcChannelsResult::DescribeRtcChannelsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeRtcChannelsResult::~DescribeRtcChannelsResult()
+{}
+
+void DescribeRtcChannelsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allChannelsNode = value["Channels"]["Channel"];
+	for (auto valueChannelsChannel : allChannelsNode)
+	{
+		Channel channelsObject;
+		if(!valueChannelsChannel["ChannelId"].isNull())
+			channelsObject.channelId = valueChannelsChannel["ChannelId"].asString();
+		if(!valueChannelsChannel["StartTime"].isNull())
+			channelsObject.startTime = valueChannelsChannel["StartTime"].asString();
+		if(!valueChannelsChannel["EndTime"].isNull())
+			channelsObject.endTime = valueChannelsChannel["EndTime"].asString();
+		if(!valueChannelsChannel["Finished"].isNull())
+			channelsObject.finished = valueChannelsChannel["Finished"].asString() == "true";
+		channels_.push_back(channelsObject);
+	}
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stol(value["PageSize"].asString());
+	if(!value["PageNo"].isNull())
+		pageNo_ = std::stol(value["PageNo"].asString());
+	if(!value["TotalCnt"].isNull())
+		totalCnt_ = std::stol(value["TotalCnt"].asString());
+
+}
+
+long DescribeRtcChannelsResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+long DescribeRtcChannelsResult::getTotalCnt()const
+{
+	return totalCnt_;
+}
+
+long DescribeRtcChannelsResult::getPageNo()const
+{
+	return pageNo_;
+}
+
+std::vector<DescribeRtcChannelsResult::Channel> DescribeRtcChannelsResult::getChannels()const
+{
+	return channels_;
+}
+

+ 106 - 0
rtc/src/model/DescribeRtcUserEventsRequest.cc

@@ -0,0 +1,106 @@
+/*
+ * 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/rtc/model/DescribeRtcUserEventsRequest.h>
+
+using AlibabaCloud::Rtc::Model::DescribeRtcUserEventsRequest;
+
+DescribeRtcUserEventsRequest::DescribeRtcUserEventsRequest() :
+	RpcServiceRequest("rtc", "2018-01-11", "DescribeRtcUserEvents")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeRtcUserEventsRequest::~DescribeRtcUserEventsRequest()
+{}
+
+std::string DescribeRtcUserEventsRequest::getStartTime()const
+{
+	return startTime_;
+}
+
+void DescribeRtcUserEventsRequest::setStartTime(const std::string& startTime)
+{
+	startTime_ = startTime;
+	setParameter("StartTime", startTime);
+}
+
+std::string DescribeRtcUserEventsRequest::getUid()const
+{
+	return uid_;
+}
+
+void DescribeRtcUserEventsRequest::setUid(const std::string& uid)
+{
+	uid_ = uid;
+	setParameter("Uid", uid);
+}
+
+std::string DescribeRtcUserEventsRequest::getShowLog()const
+{
+	return showLog_;
+}
+
+void DescribeRtcUserEventsRequest::setShowLog(const std::string& showLog)
+{
+	showLog_ = showLog;
+	setParameter("ShowLog", showLog);
+}
+
+std::string DescribeRtcUserEventsRequest::getEndTime()const
+{
+	return endTime_;
+}
+
+void DescribeRtcUserEventsRequest::setEndTime(const std::string& endTime)
+{
+	endTime_ = endTime;
+	setParameter("EndTime", endTime);
+}
+
+long DescribeRtcUserEventsRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribeRtcUserEventsRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string DescribeRtcUserEventsRequest::getAppId()const
+{
+	return appId_;
+}
+
+void DescribeRtcUserEventsRequest::setAppId(const std::string& appId)
+{
+	appId_ = appId;
+	setParameter("AppId", appId);
+}
+
+std::string DescribeRtcUserEventsRequest::getChannelId()const
+{
+	return channelId_;
+}
+
+void DescribeRtcUserEventsRequest::setChannelId(const std::string& channelId)
+{
+	channelId_ = channelId;
+	setParameter("ChannelId", channelId);
+}
+

+ 61 - 0
rtc/src/model/DescribeRtcUserEventsResult.cc

@@ -0,0 +1,61 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/rtc/model/DescribeRtcUserEventsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Rtc;
+using namespace AlibabaCloud::Rtc::Model;
+
+DescribeRtcUserEventsResult::DescribeRtcUserEventsResult() :
+	ServiceResult()
+{}
+
+DescribeRtcUserEventsResult::DescribeRtcUserEventsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeRtcUserEventsResult::~DescribeRtcUserEventsResult()
+{}
+
+void DescribeRtcUserEventsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allEventsNode = value["Events"]["Event"];
+	for (auto valueEventsEvent : allEventsNode)
+	{
+		Event eventsObject;
+		if(!valueEventsEvent["EventId"].isNull())
+			eventsObject.eventId = valueEventsEvent["EventId"].asString();
+		if(!valueEventsEvent["EventTime"].isNull())
+			eventsObject.eventTime = std::stol(valueEventsEvent["EventTime"].asString());
+		if(!valueEventsEvent["Category"].isNull())
+			eventsObject.category = valueEventsEvent["Category"].asString();
+		events_.push_back(eventsObject);
+	}
+
+}
+
+std::vector<DescribeRtcUserEventsResult::Event> DescribeRtcUserEventsResult::getEvents()const
+{
+	return events_;
+}
+

+ 0 - 73
rtc/src/model/DisableMAURuleRequest.cc

@@ -1,73 +0,0 @@
-/*
- * 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/rtc/model/DisableMAURuleRequest.h>
-
-using AlibabaCloud::Rtc::Model::DisableMAURuleRequest;
-
-DisableMAURuleRequest::DisableMAURuleRequest() :
-	RpcServiceRequest("rtc", "2018-01-11", "DisableMAURule")
-{
-	setMethod(HttpRequest::Method::Post);
-}
-
-DisableMAURuleRequest::~DisableMAURuleRequest()
-{}
-
-std::string DisableMAURuleRequest::getShowLog()const
-{
-	return showLog_;
-}
-
-void DisableMAURuleRequest::setShowLog(const std::string& showLog)
-{
-	showLog_ = showLog;
-	setParameter("ShowLog", showLog);
-}
-
-long DisableMAURuleRequest::getOwnerId()const
-{
-	return ownerId_;
-}
-
-void DisableMAURuleRequest::setOwnerId(long ownerId)
-{
-	ownerId_ = ownerId;
-	setParameter("OwnerId", std::to_string(ownerId));
-}
-
-std::string DisableMAURuleRequest::getAppId()const
-{
-	return appId_;
-}
-
-void DisableMAURuleRequest::setAppId(const std::string& appId)
-{
-	appId_ = appId;
-	setParameter("AppId", appId);
-}
-
-long DisableMAURuleRequest::getRuleId()const
-{
-	return ruleId_;
-}
-
-void DisableMAURuleRequest::setRuleId(long ruleId)
-{
-	ruleId_ = ruleId;
-	setParameter("RuleId", std::to_string(ruleId));
-}
-

+ 0 - 73
rtc/src/model/EnableMAURuleRequest.cc

@@ -1,73 +0,0 @@
-/*
- * 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/rtc/model/EnableMAURuleRequest.h>
-
-using AlibabaCloud::Rtc::Model::EnableMAURuleRequest;
-
-EnableMAURuleRequest::EnableMAURuleRequest() :
-	RpcServiceRequest("rtc", "2018-01-11", "EnableMAURule")
-{
-	setMethod(HttpRequest::Method::Post);
-}
-
-EnableMAURuleRequest::~EnableMAURuleRequest()
-{}
-
-std::string EnableMAURuleRequest::getShowLog()const
-{
-	return showLog_;
-}
-
-void EnableMAURuleRequest::setShowLog(const std::string& showLog)
-{
-	showLog_ = showLog;
-	setParameter("ShowLog", showLog);
-}
-
-long EnableMAURuleRequest::getOwnerId()const
-{
-	return ownerId_;
-}
-
-void EnableMAURuleRequest::setOwnerId(long ownerId)
-{
-	ownerId_ = ownerId;
-	setParameter("OwnerId", std::to_string(ownerId));
-}
-
-std::string EnableMAURuleRequest::getAppId()const
-{
-	return appId_;
-}
-
-void EnableMAURuleRequest::setAppId(const std::string& appId)
-{
-	appId_ = appId;
-	setParameter("AppId", appId);
-}
-
-long EnableMAURuleRequest::getRuleId()const
-{
-	return ruleId_;
-}
-
-void EnableMAURuleRequest::setRuleId(long ruleId)
-{
-	ruleId_ = ruleId;
-	setParameter("RuleId", std::to_string(ruleId));
-}
-

+ 0 - 44
rtc/src/model/EnableMAURuleResult.cc

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

+ 22 - 0
rtc/src/model/StartRecordTaskRequest.cc

@@ -41,6 +41,28 @@ void StartRecordTaskRequest::setUserPanes(const std::vector<UserPanes>& userPane
 		setParameter(userPanesObjStr + ".PaneId", std::to_string(userPanesObj.paneId));
 		setParameter(userPanesObjStr + ".UserId", userPanesObj.userId);
 		setParameter(userPanesObjStr + ".SourceType", userPanesObj.sourceType);
+		for(int dep2 = 0; dep2!= userPanesObj.images.size(); dep2++) {
+			auto imagesObj = userPanesObj.images.at(dep2);
+			std::string imagesObjStr = userPanesObjStr + "Images." + std::to_string(dep2 + 1);
+			setParameter(imagesObjStr + ".Url", imagesObj.url);
+			setParameter(imagesObjStr + ".Display", std::to_string(imagesObj.display));
+			setParameter(imagesObjStr + ".X", std::to_string(imagesObj.x));
+			setParameter(imagesObjStr + ".Y", std::to_string(imagesObj.y));
+			setParameter(imagesObjStr + ".Width", std::to_string(imagesObj.width));
+			setParameter(imagesObjStr + ".Height", std::to_string(imagesObj.height));
+			setParameter(imagesObjStr + ".ZOrder", std::to_string(imagesObj.zOrder));
+		}
+		for(int dep2 = 0; dep2!= userPanesObj.texts.size(); dep2++) {
+			auto textsObj = userPanesObj.texts.at(dep2);
+			std::string textsObjStr = userPanesObjStr + "Texts." + std::to_string(dep2 + 1);
+			setParameter(textsObjStr + ".Text", textsObj.text);
+			setParameter(textsObjStr + ".X", std::to_string(textsObj.x));
+			setParameter(textsObjStr + ".Y", std::to_string(textsObj.y));
+			setParameter(textsObjStr + ".FontType", std::to_string(textsObj.fontType));
+			setParameter(textsObjStr + ".FontSize", std::to_string(textsObj.fontSize));
+			setParameter(textsObjStr + ".FontColor", std::to_string(textsObj.fontColor));
+			setParameter(textsObjStr + ".ZOrder", std::to_string(textsObj.zOrder));
+		}
 	}
 }
 

+ 147 - 0
rtc/src/model/UpdateRecordTaskRequest.cc

@@ -0,0 +1,147 @@
+/*
+ * 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/rtc/model/UpdateRecordTaskRequest.h>
+
+using AlibabaCloud::Rtc::Model::UpdateRecordTaskRequest;
+
+UpdateRecordTaskRequest::UpdateRecordTaskRequest() :
+	RpcServiceRequest("rtc", "2018-01-11", "UpdateRecordTask")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+UpdateRecordTaskRequest::~UpdateRecordTaskRequest()
+{}
+
+std::vector<UpdateRecordTaskRequest::UserPanes> UpdateRecordTaskRequest::getUserPanes()const
+{
+	return userPanes_;
+}
+
+void UpdateRecordTaskRequest::setUserPanes(const std::vector<UserPanes>& userPanes)
+{
+	userPanes_ = userPanes;
+	for(int dep1 = 0; dep1!= userPanes.size(); dep1++) {
+		auto userPanesObj = userPanes.at(dep1);
+		std::string userPanesObjStr = "UserPanes." + std::to_string(dep1 + 1);
+		setParameter(userPanesObjStr + ".PaneId", std::to_string(userPanesObj.paneId));
+		setParameter(userPanesObjStr + ".UserId", userPanesObj.userId);
+		setParameter(userPanesObjStr + ".SourceType", userPanesObj.sourceType);
+		for(int dep2 = 0; dep2!= userPanesObj.images.size(); dep2++) {
+			auto imagesObj = userPanesObj.images.at(dep2);
+			std::string imagesObjStr = userPanesObjStr + "Images." + std::to_string(dep2 + 1);
+			setParameter(imagesObjStr + ".Url", imagesObj.url);
+			setParameter(imagesObjStr + ".Display", std::to_string(imagesObj.display));
+			setParameter(imagesObjStr + ".X", std::to_string(imagesObj.x));
+			setParameter(imagesObjStr + ".Y", std::to_string(imagesObj.y));
+			setParameter(imagesObjStr + ".Width", std::to_string(imagesObj.width));
+			setParameter(imagesObjStr + ".Height", std::to_string(imagesObj.height));
+			setParameter(imagesObjStr + ".ZOrder", std::to_string(imagesObj.zOrder));
+		}
+		for(int dep2 = 0; dep2!= userPanesObj.texts.size(); dep2++) {
+			auto textsObj = userPanesObj.texts.at(dep2);
+			std::string textsObjStr = userPanesObjStr + "Texts." + std::to_string(dep2 + 1);
+			setParameter(textsObjStr + ".Text", textsObj.text);
+			setParameter(textsObjStr + ".X", std::to_string(textsObj.x));
+			setParameter(textsObjStr + ".Y", std::to_string(textsObj.y));
+			setParameter(textsObjStr + ".FontType", std::to_string(textsObj.fontType));
+			setParameter(textsObjStr + ".FontSize", std::to_string(textsObj.fontSize));
+			setParameter(textsObjStr + ".FontColor", std::to_string(textsObj.fontColor));
+			setParameter(textsObjStr + ".ZOrder", std::to_string(textsObj.zOrder));
+		}
+	}
+}
+
+std::string UpdateRecordTaskRequest::getTaskId()const
+{
+	return taskId_;
+}
+
+void UpdateRecordTaskRequest::setTaskId(const std::string& taskId)
+{
+	taskId_ = taskId;
+	setParameter("TaskId", taskId);
+}
+
+std::string UpdateRecordTaskRequest::getShowLog()const
+{
+	return showLog_;
+}
+
+void UpdateRecordTaskRequest::setShowLog(const std::string& showLog)
+{
+	showLog_ = showLog;
+	setParameter("ShowLog", showLog);
+}
+
+long UpdateRecordTaskRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void UpdateRecordTaskRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string UpdateRecordTaskRequest::getTemplateId()const
+{
+	return templateId_;
+}
+
+void UpdateRecordTaskRequest::setTemplateId(const std::string& templateId)
+{
+	templateId_ = templateId;
+	setParameter("TemplateId", templateId);
+}
+
+std::vector<std::string> UpdateRecordTaskRequest::getSubSpecUsers()const
+{
+	return subSpecUsers_;
+}
+
+void UpdateRecordTaskRequest::setSubSpecUsers(const std::vector<std::string>& subSpecUsers)
+{
+	subSpecUsers_ = subSpecUsers;
+	for(int dep1 = 0; dep1!= subSpecUsers.size(); dep1++) {
+		setParameter("SubSpecUsers."+ std::to_string(dep1), subSpecUsers.at(dep1));
+	}
+}
+
+std::string UpdateRecordTaskRequest::getAppId()const
+{
+	return appId_;
+}
+
+void UpdateRecordTaskRequest::setAppId(const std::string& appId)
+{
+	appId_ = appId;
+	setParameter("AppId", appId);
+}
+
+std::string UpdateRecordTaskRequest::getChannelId()const
+{
+	return channelId_;
+}
+
+void UpdateRecordTaskRequest::setChannelId(const std::string& channelId)
+{
+	channelId_ = channelId;
+	setParameter("ChannelId", channelId);
+}
+

+ 5 - 5
rtc/src/model/DisableMAURuleResult.cc → rtc/src/model/UpdateRecordTaskResult.cc

@@ -14,26 +14,26 @@
  * limitations under the License.
  */
 
-#include <alibabacloud/rtc/model/DisableMAURuleResult.h>
+#include <alibabacloud/rtc/model/UpdateRecordTaskResult.h>
 #include <json/json.h>
 
 using namespace AlibabaCloud::Rtc;
 using namespace AlibabaCloud::Rtc::Model;
 
-DisableMAURuleResult::DisableMAURuleResult() :
+UpdateRecordTaskResult::UpdateRecordTaskResult() :
 	ServiceResult()
 {}
 
-DisableMAURuleResult::DisableMAURuleResult(const std::string &payload) :
+UpdateRecordTaskResult::UpdateRecordTaskResult(const std::string &payload) :
 	ServiceResult()
 {
 	parse(payload);
 }
 
-DisableMAURuleResult::~DisableMAURuleResult()
+UpdateRecordTaskResult::~UpdateRecordTaskResult()
 {}
 
-void DisableMAURuleResult::parse(const std::string &payload)
+void UpdateRecordTaskResult::parse(const std::string &payload)
 {
 	Json::Reader reader;
 	Json::Value value;

+ 54 - 0
rtc/src/model/UpdateRecordTemplateRequest.cc

@@ -130,6 +130,39 @@ void UpdateRecordTemplateRequest::setFileSplitInterval(int fileSplitInterval)
 	setParameter("FileSplitInterval", std::to_string(fileSplitInterval));
 }
 
+std::string UpdateRecordTemplateRequest::getHttpCallbackUrl()const
+{
+	return httpCallbackUrl_;
+}
+
+void UpdateRecordTemplateRequest::setHttpCallbackUrl(const std::string& httpCallbackUrl)
+{
+	httpCallbackUrl_ = httpCallbackUrl;
+	setParameter("HttpCallbackUrl", httpCallbackUrl);
+}
+
+std::vector<UpdateRecordTemplateRequest::Watermarks> UpdateRecordTemplateRequest::getWatermarks()const
+{
+	return watermarks_;
+}
+
+void UpdateRecordTemplateRequest::setWatermarks(const std::vector<Watermarks>& watermarks)
+{
+	watermarks_ = watermarks;
+	for(int dep1 = 0; dep1!= watermarks.size(); dep1++) {
+		auto watermarksObj = watermarks.at(dep1);
+		std::string watermarksObjStr = "Watermarks." + std::to_string(dep1 + 1);
+		setParameter(watermarksObjStr + ".Url", watermarksObj.url);
+		setParameter(watermarksObjStr + ".Alpha", std::to_string(watermarksObj.alpha));
+		setParameter(watermarksObjStr + ".Display", std::to_string(watermarksObj.display));
+		setParameter(watermarksObjStr + ".X", std::to_string(watermarksObj.x));
+		setParameter(watermarksObjStr + ".Y", std::to_string(watermarksObj.y));
+		setParameter(watermarksObjStr + ".Width", std::to_string(watermarksObj.width));
+		setParameter(watermarksObjStr + ".Height", std::to_string(watermarksObj.height));
+		setParameter(watermarksObjStr + ".ZOrder", std::to_string(watermarksObj.zOrder));
+	}
+}
+
 long UpdateRecordTemplateRequest::getOwnerId()const
 {
 	return ownerId_;
@@ -163,6 +196,27 @@ void UpdateRecordTemplateRequest::setAppId(const std::string& appId)
 	setParameter("AppId", appId);
 }
 
+std::vector<UpdateRecordTemplateRequest::Backgrounds> UpdateRecordTemplateRequest::getBackgrounds()const
+{
+	return backgrounds_;
+}
+
+void UpdateRecordTemplateRequest::setBackgrounds(const std::vector<Backgrounds>& backgrounds)
+{
+	backgrounds_ = backgrounds;
+	for(int dep1 = 0; dep1!= backgrounds.size(); dep1++) {
+		auto backgroundsObj = backgrounds.at(dep1);
+		std::string backgroundsObjStr = "Backgrounds." + std::to_string(dep1 + 1);
+		setParameter(backgroundsObjStr + ".Url", backgroundsObj.url);
+		setParameter(backgroundsObjStr + ".Display", std::to_string(backgroundsObj.display));
+		setParameter(backgroundsObjStr + ".X", std::to_string(backgroundsObj.x));
+		setParameter(backgroundsObjStr + ".Y", std::to_string(backgroundsObj.y));
+		setParameter(backgroundsObjStr + ".Width", std::to_string(backgroundsObj.width));
+		setParameter(backgroundsObjStr + ".Height", std::to_string(backgroundsObj.height));
+		setParameter(backgroundsObjStr + ".ZOrder", std::to_string(backgroundsObj.zOrder));
+	}
+}
+
 std::string UpdateRecordTemplateRequest::getName()const
 {
 	return name_;