소스 검색

Live pre sdk test.

sdk-team 3 년 전
부모
커밋
79c5438009
52개의 변경된 파일2125개의 추가작업 그리고 910개의 파일을 삭제
  1. 1 1
      VERSION
  2. 32 20
      live/CMakeLists.txt
  3. 64 40
      live/include/alibabacloud/live/LiveClient.h
  4. 9 12
      live/include/alibabacloud/live/model/CancelMuteAllGroupUserRequest.h
  5. 8 8
      live/include/alibabacloud/live/model/CancelMuteAllGroupUserResult.h
  6. 0 45
      live/include/alibabacloud/live/model/CreateMessageAppRequest.h
  7. 63 0
      live/include/alibabacloud/live/model/DescribeLiveStreamMetricDetailDataRequest.h
  8. 85 0
      live/include/alibabacloud/live/model/DescribeLiveStreamMetricDetailDataResult.h
  9. 51 0
      live/include/alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameCostRequest.h
  10. 66 0
      live/include/alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameCostResult.h
  11. 51 0
      live/include/alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameDelayRequest.h
  12. 62 0
      live/include/alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameDelayResult.h
  13. 51 0
      live/include/alibabacloud/live/model/DescribeRTSNativeSDKPlayFailStatusRequest.h
  14. 67 0
      live/include/alibabacloud/live/model/DescribeRTSNativeSDKPlayFailStatusResult.h
  15. 51 0
      live/include/alibabacloud/live/model/DescribeRTSNativeSDKPlayTimeRequest.h
  16. 19 15
      live/include/alibabacloud/live/model/DescribeRTSNativeSDKPlayTimeResult.h
  17. 18 18
      live/include/alibabacloud/live/model/DescribeRTSNativeSDKVvDataRequest.h
  18. 19 21
      live/include/alibabacloud/live/model/DescribeRTSNativeSDKVvDataResult.h
  19. 1 0
      live/include/alibabacloud/live/model/GetMessageGroupResult.h
  20. 9 9
      live/include/alibabacloud/live/model/GetMessageUserInfoRequest.h
  21. 9 8
      live/include/alibabacloud/live/model/GetMessageUserInfoResult.h
  22. 6 0
      live/include/alibabacloud/live/model/JoinMessageGroupRequest.h
  23. 6 0
      live/include/alibabacloud/live/model/LeaveMessageGroupRequest.h
  24. 0 48
      live/include/alibabacloud/live/model/ListMessageAppRequest.h
  25. 0 55
      live/include/alibabacloud/live/model/SendMessageToGroupUsersResult.h
  26. 279 171
      live/src/LiveClient.cc
  27. 54 0
      live/src/model/CancelMuteAllGroupUserRequest.cc
  28. 8 8
      live/src/model/CancelMuteAllGroupUserResult.cc
  29. 0 49
      live/src/model/CreateMessageAppRequest.cc
  30. 99 0
      live/src/model/DescribeLiveStreamMetricDetailDataRequest.cc
  31. 132 0
      live/src/model/DescribeLiveStreamMetricDetailDataResult.cc
  32. 65 0
      live/src/model/DescribeRTSNativeSDKFirstFrameCostRequest.cc
  33. 88 0
      live/src/model/DescribeRTSNativeSDKFirstFrameCostResult.cc
  34. 65 0
      live/src/model/DescribeRTSNativeSDKFirstFrameDelayRequest.cc
  35. 80 0
      live/src/model/DescribeRTSNativeSDKFirstFrameDelayResult.cc
  36. 65 0
      live/src/model/DescribeRTSNativeSDKPlayFailStatusRequest.cc
  37. 90 0
      live/src/model/DescribeRTSNativeSDKPlayFailStatusResult.cc
  38. 65 0
      live/src/model/DescribeRTSNativeSDKPlayTimeRequest.cc
  39. 82 0
      live/src/model/DescribeRTSNativeSDKPlayTimeResult.cc
  40. 65 0
      live/src/model/DescribeRTSNativeSDKVvDataRequest.cc
  41. 82 0
      live/src/model/DescribeRTSNativeSDKVvDataResult.cc
  42. 0 60
      live/src/model/GetMessageAppResult.cc
  43. 2 0
      live/src/model/GetMessageGroupResult.cc
  44. 10 10
      live/src/model/GetMessageUserInfoRequest.cc
  45. 10 8
      live/src/model/GetMessageUserInfoResult.cc
  46. 18 0
      live/src/model/JoinMessageGroupRequest.cc
  47. 18 0
      live/src/model/LeaveMessageGroupRequest.cc
  48. 0 54
      live/src/model/ListMessageAppRequest.cc
  49. 0 70
      live/src/model/ListMessageAppResult.cc
  50. 0 63
      live/src/model/SendMessageToGroupRequest.cc
  51. 0 65
      live/src/model/SendMessageToGroupUsersRequest.cc
  52. 0 52
      live/src/model/SendMessageToGroupUsersResult.cc

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1317
+1.36.1318

+ 32 - 20
live/CMakeLists.txt

@@ -85,6 +85,8 @@ set(live_public_header_model
 	include/alibabacloud/live/model/BatchDeleteLiveDomainConfigsResult.h
 	include/alibabacloud/live/model/BatchSetLiveDomainConfigsRequest.h
 	include/alibabacloud/live/model/BatchSetLiveDomainConfigsResult.h
+	include/alibabacloud/live/model/CancelMuteAllGroupUserRequest.h
+	include/alibabacloud/live/model/CancelMuteAllGroupUserResult.h
 	include/alibabacloud/live/model/CloseLiveShiftRequest.h
 	include/alibabacloud/live/model/CloseLiveShiftResult.h
 	include/alibabacloud/live/model/CloseMessageGroupRequest.h
@@ -105,8 +107,6 @@ set(live_public_header_model
 	include/alibabacloud/live/model/CreateLiveStreamRecordIndexFilesResult.h
 	include/alibabacloud/live/model/CreateLiveTranscodeTemplateRequest.h
 	include/alibabacloud/live/model/CreateLiveTranscodeTemplateResult.h
-	include/alibabacloud/live/model/CreateMessageAppRequest.h
-	include/alibabacloud/live/model/CreateMessageAppResult.h
 	include/alibabacloud/live/model/CreateMessageGroupRequest.h
 	include/alibabacloud/live/model/CreateMessageGroupResult.h
 	include/alibabacloud/live/model/CreateMixStreamRequest.h
@@ -323,6 +323,8 @@ set(live_public_header_model
 	include/alibabacloud/live/model/DescribeLiveStreamDelayConfigResult.h
 	include/alibabacloud/live/model/DescribeLiveStreamHistoryUserNumRequest.h
 	include/alibabacloud/live/model/DescribeLiveStreamHistoryUserNumResult.h
+	include/alibabacloud/live/model/DescribeLiveStreamMetricDetailDataRequest.h
+	include/alibabacloud/live/model/DescribeLiveStreamMetricDetailDataResult.h
 	include/alibabacloud/live/model/DescribeLiveStreamMonitorListRequest.h
 	include/alibabacloud/live/model/DescribeLiveStreamMonitorListResult.h
 	include/alibabacloud/live/model/DescribeLiveStreamOptimizedFeatureConfigRequest.h
@@ -369,6 +371,16 @@ set(live_public_header_model
 	include/alibabacloud/live/model/DescribeMeterLiveRtcDurationResult.h
 	include/alibabacloud/live/model/DescribeMixStreamListRequest.h
 	include/alibabacloud/live/model/DescribeMixStreamListResult.h
+	include/alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameCostRequest.h
+	include/alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameCostResult.h
+	include/alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameDelayRequest.h
+	include/alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameDelayResult.h
+	include/alibabacloud/live/model/DescribeRTSNativeSDKPlayFailStatusRequest.h
+	include/alibabacloud/live/model/DescribeRTSNativeSDKPlayFailStatusResult.h
+	include/alibabacloud/live/model/DescribeRTSNativeSDKPlayTimeRequest.h
+	include/alibabacloud/live/model/DescribeRTSNativeSDKPlayTimeResult.h
+	include/alibabacloud/live/model/DescribeRTSNativeSDKVvDataRequest.h
+	include/alibabacloud/live/model/DescribeRTSNativeSDKVvDataResult.h
 	include/alibabacloud/live/model/DescribeRoomKickoutUserListRequest.h
 	include/alibabacloud/live/model/DescribeRoomKickoutUserListResult.h
 	include/alibabacloud/live/model/DescribeRoomListRequest.h
@@ -413,12 +425,12 @@ set(live_public_header_model
 	include/alibabacloud/live/model/GetCustomTemplateResult.h
 	include/alibabacloud/live/model/GetEditingJobInfoRequest.h
 	include/alibabacloud/live/model/GetEditingJobInfoResult.h
-	include/alibabacloud/live/model/GetMessageAppRequest.h
-	include/alibabacloud/live/model/GetMessageAppResult.h
 	include/alibabacloud/live/model/GetMessageGroupRequest.h
 	include/alibabacloud/live/model/GetMessageGroupResult.h
 	include/alibabacloud/live/model/GetMessageTokenRequest.h
 	include/alibabacloud/live/model/GetMessageTokenResult.h
+	include/alibabacloud/live/model/GetMessageUserInfoRequest.h
+	include/alibabacloud/live/model/GetMessageUserInfoResult.h
 	include/alibabacloud/live/model/GetMultiRateConfigRequest.h
 	include/alibabacloud/live/model/GetMultiRateConfigResult.h
 	include/alibabacloud/live/model/GetMultiRateConfigListRequest.h
@@ -439,8 +451,6 @@ set(live_public_header_model
 	include/alibabacloud/live/model/ListLiveRealtimeLogDeliveryInfosResult.h
 	include/alibabacloud/live/model/ListMessageRequest.h
 	include/alibabacloud/live/model/ListMessageResult.h
-	include/alibabacloud/live/model/ListMessageAppRequest.h
-	include/alibabacloud/live/model/ListMessageAppResult.h
 	include/alibabacloud/live/model/ListMessageGroupRequest.h
 	include/alibabacloud/live/model/ListMessageGroupResult.h
 	include/alibabacloud/live/model/ListMessageGroupUserRequest.h
@@ -485,10 +495,6 @@ set(live_public_header_model
 	include/alibabacloud/live/model/ResumeLiveStreamResult.h
 	include/alibabacloud/live/model/RollbackLiveStagingConfigRequest.h
 	include/alibabacloud/live/model/RollbackLiveStagingConfigResult.h
-	include/alibabacloud/live/model/SendMessageToGroupRequest.h
-	include/alibabacloud/live/model/SendMessageToGroupResult.h
-	include/alibabacloud/live/model/SendMessageToGroupUsersRequest.h
-	include/alibabacloud/live/model/SendMessageToGroupUsersResult.h
 	include/alibabacloud/live/model/SendRoomNotificationRequest.h
 	include/alibabacloud/live/model/SendRoomNotificationResult.h
 	include/alibabacloud/live/model/SendRoomUserNotificationRequest.h
@@ -640,6 +646,8 @@ set(live_src
 	src/model/BatchDeleteLiveDomainConfigsResult.cc
 	src/model/BatchSetLiveDomainConfigsRequest.cc
 	src/model/BatchSetLiveDomainConfigsResult.cc
+	src/model/CancelMuteAllGroupUserRequest.cc
+	src/model/CancelMuteAllGroupUserResult.cc
 	src/model/CloseLiveShiftRequest.cc
 	src/model/CloseLiveShiftResult.cc
 	src/model/CloseMessageGroupRequest.cc
@@ -660,8 +668,6 @@ set(live_src
 	src/model/CreateLiveStreamRecordIndexFilesResult.cc
 	src/model/CreateLiveTranscodeTemplateRequest.cc
 	src/model/CreateLiveTranscodeTemplateResult.cc
-	src/model/CreateMessageAppRequest.cc
-	src/model/CreateMessageAppResult.cc
 	src/model/CreateMessageGroupRequest.cc
 	src/model/CreateMessageGroupResult.cc
 	src/model/CreateMixStreamRequest.cc
@@ -878,6 +884,8 @@ set(live_src
 	src/model/DescribeLiveStreamDelayConfigResult.cc
 	src/model/DescribeLiveStreamHistoryUserNumRequest.cc
 	src/model/DescribeLiveStreamHistoryUserNumResult.cc
+	src/model/DescribeLiveStreamMetricDetailDataRequest.cc
+	src/model/DescribeLiveStreamMetricDetailDataResult.cc
 	src/model/DescribeLiveStreamMonitorListRequest.cc
 	src/model/DescribeLiveStreamMonitorListResult.cc
 	src/model/DescribeLiveStreamOptimizedFeatureConfigRequest.cc
@@ -924,6 +932,16 @@ set(live_src
 	src/model/DescribeMeterLiveRtcDurationResult.cc
 	src/model/DescribeMixStreamListRequest.cc
 	src/model/DescribeMixStreamListResult.cc
+	src/model/DescribeRTSNativeSDKFirstFrameCostRequest.cc
+	src/model/DescribeRTSNativeSDKFirstFrameCostResult.cc
+	src/model/DescribeRTSNativeSDKFirstFrameDelayRequest.cc
+	src/model/DescribeRTSNativeSDKFirstFrameDelayResult.cc
+	src/model/DescribeRTSNativeSDKPlayFailStatusRequest.cc
+	src/model/DescribeRTSNativeSDKPlayFailStatusResult.cc
+	src/model/DescribeRTSNativeSDKPlayTimeRequest.cc
+	src/model/DescribeRTSNativeSDKPlayTimeResult.cc
+	src/model/DescribeRTSNativeSDKVvDataRequest.cc
+	src/model/DescribeRTSNativeSDKVvDataResult.cc
 	src/model/DescribeRoomKickoutUserListRequest.cc
 	src/model/DescribeRoomKickoutUserListResult.cc
 	src/model/DescribeRoomListRequest.cc
@@ -968,12 +986,12 @@ set(live_src
 	src/model/GetCustomTemplateResult.cc
 	src/model/GetEditingJobInfoRequest.cc
 	src/model/GetEditingJobInfoResult.cc
-	src/model/GetMessageAppRequest.cc
-	src/model/GetMessageAppResult.cc
 	src/model/GetMessageGroupRequest.cc
 	src/model/GetMessageGroupResult.cc
 	src/model/GetMessageTokenRequest.cc
 	src/model/GetMessageTokenResult.cc
+	src/model/GetMessageUserInfoRequest.cc
+	src/model/GetMessageUserInfoResult.cc
 	src/model/GetMultiRateConfigRequest.cc
 	src/model/GetMultiRateConfigResult.cc
 	src/model/GetMultiRateConfigListRequest.cc
@@ -994,8 +1012,6 @@ set(live_src
 	src/model/ListLiveRealtimeLogDeliveryInfosResult.cc
 	src/model/ListMessageRequest.cc
 	src/model/ListMessageResult.cc
-	src/model/ListMessageAppRequest.cc
-	src/model/ListMessageAppResult.cc
 	src/model/ListMessageGroupRequest.cc
 	src/model/ListMessageGroupResult.cc
 	src/model/ListMessageGroupUserRequest.cc
@@ -1040,10 +1056,6 @@ set(live_src
 	src/model/ResumeLiveStreamResult.cc
 	src/model/RollbackLiveStagingConfigRequest.cc
 	src/model/RollbackLiveStagingConfigResult.cc
-	src/model/SendMessageToGroupRequest.cc
-	src/model/SendMessageToGroupResult.cc
-	src/model/SendMessageToGroupUsersRequest.cc
-	src/model/SendMessageToGroupUsersResult.cc
 	src/model/SendRoomNotificationRequest.cc
 	src/model/SendRoomNotificationResult.cc
 	src/model/SendRoomUserNotificationRequest.cc

+ 64 - 40
live/include/alibabacloud/live/LiveClient.h

@@ -86,6 +86,8 @@
 #include "model/BatchDeleteLiveDomainConfigsResult.h"
 #include "model/BatchSetLiveDomainConfigsRequest.h"
 #include "model/BatchSetLiveDomainConfigsResult.h"
+#include "model/CancelMuteAllGroupUserRequest.h"
+#include "model/CancelMuteAllGroupUserResult.h"
 #include "model/CloseLiveShiftRequest.h"
 #include "model/CloseLiveShiftResult.h"
 #include "model/CloseMessageGroupRequest.h"
@@ -106,8 +108,6 @@
 #include "model/CreateLiveStreamRecordIndexFilesResult.h"
 #include "model/CreateLiveTranscodeTemplateRequest.h"
 #include "model/CreateLiveTranscodeTemplateResult.h"
-#include "model/CreateMessageAppRequest.h"
-#include "model/CreateMessageAppResult.h"
 #include "model/CreateMessageGroupRequest.h"
 #include "model/CreateMessageGroupResult.h"
 #include "model/CreateMixStreamRequest.h"
@@ -324,6 +324,8 @@
 #include "model/DescribeLiveStreamDelayConfigResult.h"
 #include "model/DescribeLiveStreamHistoryUserNumRequest.h"
 #include "model/DescribeLiveStreamHistoryUserNumResult.h"
+#include "model/DescribeLiveStreamMetricDetailDataRequest.h"
+#include "model/DescribeLiveStreamMetricDetailDataResult.h"
 #include "model/DescribeLiveStreamMonitorListRequest.h"
 #include "model/DescribeLiveStreamMonitorListResult.h"
 #include "model/DescribeLiveStreamOptimizedFeatureConfigRequest.h"
@@ -370,6 +372,16 @@
 #include "model/DescribeMeterLiveRtcDurationResult.h"
 #include "model/DescribeMixStreamListRequest.h"
 #include "model/DescribeMixStreamListResult.h"
+#include "model/DescribeRTSNativeSDKFirstFrameCostRequest.h"
+#include "model/DescribeRTSNativeSDKFirstFrameCostResult.h"
+#include "model/DescribeRTSNativeSDKFirstFrameDelayRequest.h"
+#include "model/DescribeRTSNativeSDKFirstFrameDelayResult.h"
+#include "model/DescribeRTSNativeSDKPlayFailStatusRequest.h"
+#include "model/DescribeRTSNativeSDKPlayFailStatusResult.h"
+#include "model/DescribeRTSNativeSDKPlayTimeRequest.h"
+#include "model/DescribeRTSNativeSDKPlayTimeResult.h"
+#include "model/DescribeRTSNativeSDKVvDataRequest.h"
+#include "model/DescribeRTSNativeSDKVvDataResult.h"
 #include "model/DescribeRoomKickoutUserListRequest.h"
 #include "model/DescribeRoomKickoutUserListResult.h"
 #include "model/DescribeRoomListRequest.h"
@@ -414,12 +426,12 @@
 #include "model/GetCustomTemplateResult.h"
 #include "model/GetEditingJobInfoRequest.h"
 #include "model/GetEditingJobInfoResult.h"
-#include "model/GetMessageAppRequest.h"
-#include "model/GetMessageAppResult.h"
 #include "model/GetMessageGroupRequest.h"
 #include "model/GetMessageGroupResult.h"
 #include "model/GetMessageTokenRequest.h"
 #include "model/GetMessageTokenResult.h"
+#include "model/GetMessageUserInfoRequest.h"
+#include "model/GetMessageUserInfoResult.h"
 #include "model/GetMultiRateConfigRequest.h"
 #include "model/GetMultiRateConfigResult.h"
 #include "model/GetMultiRateConfigListRequest.h"
@@ -440,8 +452,6 @@
 #include "model/ListLiveRealtimeLogDeliveryInfosResult.h"
 #include "model/ListMessageRequest.h"
 #include "model/ListMessageResult.h"
-#include "model/ListMessageAppRequest.h"
-#include "model/ListMessageAppResult.h"
 #include "model/ListMessageGroupRequest.h"
 #include "model/ListMessageGroupResult.h"
 #include "model/ListMessageGroupUserRequest.h"
@@ -486,10 +496,6 @@
 #include "model/ResumeLiveStreamResult.h"
 #include "model/RollbackLiveStagingConfigRequest.h"
 #include "model/RollbackLiveStagingConfigResult.h"
-#include "model/SendMessageToGroupRequest.h"
-#include "model/SendMessageToGroupResult.h"
-#include "model/SendMessageToGroupUsersRequest.h"
-#include "model/SendMessageToGroupUsersResult.h"
 #include "model/SendRoomNotificationRequest.h"
 #include "model/SendRoomNotificationResult.h"
 #include "model/SendRoomUserNotificationRequest.h"
@@ -679,6 +685,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::BatchSetLiveDomainConfigsResult> BatchSetLiveDomainConfigsOutcome;
 			typedef std::future<BatchSetLiveDomainConfigsOutcome> BatchSetLiveDomainConfigsOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::BatchSetLiveDomainConfigsRequest&, const BatchSetLiveDomainConfigsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BatchSetLiveDomainConfigsAsyncHandler;
+			typedef Outcome<Error, Model::CancelMuteAllGroupUserResult> CancelMuteAllGroupUserOutcome;
+			typedef std::future<CancelMuteAllGroupUserOutcome> CancelMuteAllGroupUserOutcomeCallable;
+			typedef std::function<void(const LiveClient*, const Model::CancelMuteAllGroupUserRequest&, const CancelMuteAllGroupUserOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CancelMuteAllGroupUserAsyncHandler;
 			typedef Outcome<Error, Model::CloseLiveShiftResult> CloseLiveShiftOutcome;
 			typedef std::future<CloseLiveShiftOutcome> CloseLiveShiftOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::CloseLiveShiftRequest&, const CloseLiveShiftOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CloseLiveShiftAsyncHandler;
@@ -709,9 +718,6 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateLiveTranscodeTemplateResult> CreateLiveTranscodeTemplateOutcome;
 			typedef std::future<CreateLiveTranscodeTemplateOutcome> CreateLiveTranscodeTemplateOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::CreateLiveTranscodeTemplateRequest&, const CreateLiveTranscodeTemplateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateLiveTranscodeTemplateAsyncHandler;
-			typedef Outcome<Error, Model::CreateMessageAppResult> CreateMessageAppOutcome;
-			typedef std::future<CreateMessageAppOutcome> CreateMessageAppOutcomeCallable;
-			typedef std::function<void(const LiveClient*, const Model::CreateMessageAppRequest&, const CreateMessageAppOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateMessageAppAsyncHandler;
 			typedef Outcome<Error, Model::CreateMessageGroupResult> CreateMessageGroupOutcome;
 			typedef std::future<CreateMessageGroupOutcome> CreateMessageGroupOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::CreateMessageGroupRequest&, const CreateMessageGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateMessageGroupAsyncHandler;
@@ -1036,6 +1042,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeLiveStreamHistoryUserNumResult> DescribeLiveStreamHistoryUserNumOutcome;
 			typedef std::future<DescribeLiveStreamHistoryUserNumOutcome> DescribeLiveStreamHistoryUserNumOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::DescribeLiveStreamHistoryUserNumRequest&, const DescribeLiveStreamHistoryUserNumOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeLiveStreamHistoryUserNumAsyncHandler;
+			typedef Outcome<Error, Model::DescribeLiveStreamMetricDetailDataResult> DescribeLiveStreamMetricDetailDataOutcome;
+			typedef std::future<DescribeLiveStreamMetricDetailDataOutcome> DescribeLiveStreamMetricDetailDataOutcomeCallable;
+			typedef std::function<void(const LiveClient*, const Model::DescribeLiveStreamMetricDetailDataRequest&, const DescribeLiveStreamMetricDetailDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeLiveStreamMetricDetailDataAsyncHandler;
 			typedef Outcome<Error, Model::DescribeLiveStreamMonitorListResult> DescribeLiveStreamMonitorListOutcome;
 			typedef std::future<DescribeLiveStreamMonitorListOutcome> DescribeLiveStreamMonitorListOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::DescribeLiveStreamMonitorListRequest&, const DescribeLiveStreamMonitorListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeLiveStreamMonitorListAsyncHandler;
@@ -1105,6 +1114,21 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeMixStreamListResult> DescribeMixStreamListOutcome;
 			typedef std::future<DescribeMixStreamListOutcome> DescribeMixStreamListOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::DescribeMixStreamListRequest&, const DescribeMixStreamListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeMixStreamListAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRTSNativeSDKFirstFrameCostResult> DescribeRTSNativeSDKFirstFrameCostOutcome;
+			typedef std::future<DescribeRTSNativeSDKFirstFrameCostOutcome> DescribeRTSNativeSDKFirstFrameCostOutcomeCallable;
+			typedef std::function<void(const LiveClient*, const Model::DescribeRTSNativeSDKFirstFrameCostRequest&, const DescribeRTSNativeSDKFirstFrameCostOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRTSNativeSDKFirstFrameCostAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRTSNativeSDKFirstFrameDelayResult> DescribeRTSNativeSDKFirstFrameDelayOutcome;
+			typedef std::future<DescribeRTSNativeSDKFirstFrameDelayOutcome> DescribeRTSNativeSDKFirstFrameDelayOutcomeCallable;
+			typedef std::function<void(const LiveClient*, const Model::DescribeRTSNativeSDKFirstFrameDelayRequest&, const DescribeRTSNativeSDKFirstFrameDelayOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRTSNativeSDKFirstFrameDelayAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRTSNativeSDKPlayFailStatusResult> DescribeRTSNativeSDKPlayFailStatusOutcome;
+			typedef std::future<DescribeRTSNativeSDKPlayFailStatusOutcome> DescribeRTSNativeSDKPlayFailStatusOutcomeCallable;
+			typedef std::function<void(const LiveClient*, const Model::DescribeRTSNativeSDKPlayFailStatusRequest&, const DescribeRTSNativeSDKPlayFailStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRTSNativeSDKPlayFailStatusAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRTSNativeSDKPlayTimeResult> DescribeRTSNativeSDKPlayTimeOutcome;
+			typedef std::future<DescribeRTSNativeSDKPlayTimeOutcome> DescribeRTSNativeSDKPlayTimeOutcomeCallable;
+			typedef std::function<void(const LiveClient*, const Model::DescribeRTSNativeSDKPlayTimeRequest&, const DescribeRTSNativeSDKPlayTimeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRTSNativeSDKPlayTimeAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRTSNativeSDKVvDataResult> DescribeRTSNativeSDKVvDataOutcome;
+			typedef std::future<DescribeRTSNativeSDKVvDataOutcome> DescribeRTSNativeSDKVvDataOutcomeCallable;
+			typedef std::function<void(const LiveClient*, const Model::DescribeRTSNativeSDKVvDataRequest&, const DescribeRTSNativeSDKVvDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRTSNativeSDKVvDataAsyncHandler;
 			typedef Outcome<Error, Model::DescribeRoomKickoutUserListResult> DescribeRoomKickoutUserListOutcome;
 			typedef std::future<DescribeRoomKickoutUserListOutcome> DescribeRoomKickoutUserListOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::DescribeRoomKickoutUserListRequest&, const DescribeRoomKickoutUserListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRoomKickoutUserListAsyncHandler;
@@ -1171,15 +1195,15 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetEditingJobInfoResult> GetEditingJobInfoOutcome;
 			typedef std::future<GetEditingJobInfoOutcome> GetEditingJobInfoOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::GetEditingJobInfoRequest&, const GetEditingJobInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetEditingJobInfoAsyncHandler;
-			typedef Outcome<Error, Model::GetMessageAppResult> GetMessageAppOutcome;
-			typedef std::future<GetMessageAppOutcome> GetMessageAppOutcomeCallable;
-			typedef std::function<void(const LiveClient*, const Model::GetMessageAppRequest&, const GetMessageAppOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetMessageAppAsyncHandler;
 			typedef Outcome<Error, Model::GetMessageGroupResult> GetMessageGroupOutcome;
 			typedef std::future<GetMessageGroupOutcome> GetMessageGroupOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::GetMessageGroupRequest&, const GetMessageGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetMessageGroupAsyncHandler;
 			typedef Outcome<Error, Model::GetMessageTokenResult> GetMessageTokenOutcome;
 			typedef std::future<GetMessageTokenOutcome> GetMessageTokenOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::GetMessageTokenRequest&, const GetMessageTokenOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetMessageTokenAsyncHandler;
+			typedef Outcome<Error, Model::GetMessageUserInfoResult> GetMessageUserInfoOutcome;
+			typedef std::future<GetMessageUserInfoOutcome> GetMessageUserInfoOutcomeCallable;
+			typedef std::function<void(const LiveClient*, const Model::GetMessageUserInfoRequest&, const GetMessageUserInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetMessageUserInfoAsyncHandler;
 			typedef Outcome<Error, Model::GetMultiRateConfigResult> GetMultiRateConfigOutcome;
 			typedef std::future<GetMultiRateConfigOutcome> GetMultiRateConfigOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::GetMultiRateConfigRequest&, const GetMultiRateConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetMultiRateConfigAsyncHandler;
@@ -1210,9 +1234,6 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListMessageResult> ListMessageOutcome;
 			typedef std::future<ListMessageOutcome> ListMessageOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::ListMessageRequest&, const ListMessageOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListMessageAsyncHandler;
-			typedef Outcome<Error, Model::ListMessageAppResult> ListMessageAppOutcome;
-			typedef std::future<ListMessageAppOutcome> ListMessageAppOutcomeCallable;
-			typedef std::function<void(const LiveClient*, const Model::ListMessageAppRequest&, const ListMessageAppOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListMessageAppAsyncHandler;
 			typedef Outcome<Error, Model::ListMessageGroupResult> ListMessageGroupOutcome;
 			typedef std::future<ListMessageGroupOutcome> ListMessageGroupOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::ListMessageGroupRequest&, const ListMessageGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListMessageGroupAsyncHandler;
@@ -1279,12 +1300,6 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::RollbackLiveStagingConfigResult> RollbackLiveStagingConfigOutcome;
 			typedef std::future<RollbackLiveStagingConfigOutcome> RollbackLiveStagingConfigOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::RollbackLiveStagingConfigRequest&, const RollbackLiveStagingConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RollbackLiveStagingConfigAsyncHandler;
-			typedef Outcome<Error, Model::SendMessageToGroupResult> SendMessageToGroupOutcome;
-			typedef std::future<SendMessageToGroupOutcome> SendMessageToGroupOutcomeCallable;
-			typedef std::function<void(const LiveClient*, const Model::SendMessageToGroupRequest&, const SendMessageToGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SendMessageToGroupAsyncHandler;
-			typedef Outcome<Error, Model::SendMessageToGroupUsersResult> SendMessageToGroupUsersOutcome;
-			typedef std::future<SendMessageToGroupUsersOutcome> SendMessageToGroupUsersOutcomeCallable;
-			typedef std::function<void(const LiveClient*, const Model::SendMessageToGroupUsersRequest&, const SendMessageToGroupUsersOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SendMessageToGroupUsersAsyncHandler;
 			typedef Outcome<Error, Model::SendRoomNotificationResult> SendRoomNotificationOutcome;
 			typedef std::future<SendRoomNotificationOutcome> SendRoomNotificationOutcomeCallable;
 			typedef std::function<void(const LiveClient*, const Model::SendRoomNotificationRequest&, const SendRoomNotificationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SendRoomNotificationAsyncHandler;
@@ -1512,6 +1527,9 @@ namespace AlibabaCloud
 			BatchSetLiveDomainConfigsOutcome batchSetLiveDomainConfigs(const Model::BatchSetLiveDomainConfigsRequest &request)const;
 			void batchSetLiveDomainConfigsAsync(const Model::BatchSetLiveDomainConfigsRequest& request, const BatchSetLiveDomainConfigsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			BatchSetLiveDomainConfigsOutcomeCallable batchSetLiveDomainConfigsCallable(const Model::BatchSetLiveDomainConfigsRequest& request) const;
+			CancelMuteAllGroupUserOutcome cancelMuteAllGroupUser(const Model::CancelMuteAllGroupUserRequest &request)const;
+			void cancelMuteAllGroupUserAsync(const Model::CancelMuteAllGroupUserRequest& request, const CancelMuteAllGroupUserAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CancelMuteAllGroupUserOutcomeCallable cancelMuteAllGroupUserCallable(const Model::CancelMuteAllGroupUserRequest& request) const;
 			CloseLiveShiftOutcome closeLiveShift(const Model::CloseLiveShiftRequest &request)const;
 			void closeLiveShiftAsync(const Model::CloseLiveShiftRequest& request, const CloseLiveShiftAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CloseLiveShiftOutcomeCallable closeLiveShiftCallable(const Model::CloseLiveShiftRequest& request) const;
@@ -1542,9 +1560,6 @@ namespace AlibabaCloud
 			CreateLiveTranscodeTemplateOutcome createLiveTranscodeTemplate(const Model::CreateLiveTranscodeTemplateRequest &request)const;
 			void createLiveTranscodeTemplateAsync(const Model::CreateLiveTranscodeTemplateRequest& request, const CreateLiveTranscodeTemplateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateLiveTranscodeTemplateOutcomeCallable createLiveTranscodeTemplateCallable(const Model::CreateLiveTranscodeTemplateRequest& request) const;
-			CreateMessageAppOutcome createMessageApp(const Model::CreateMessageAppRequest &request)const;
-			void createMessageAppAsync(const Model::CreateMessageAppRequest& request, const CreateMessageAppAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			CreateMessageAppOutcomeCallable createMessageAppCallable(const Model::CreateMessageAppRequest& request) const;
 			CreateMessageGroupOutcome createMessageGroup(const Model::CreateMessageGroupRequest &request)const;
 			void createMessageGroupAsync(const Model::CreateMessageGroupRequest& request, const CreateMessageGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateMessageGroupOutcomeCallable createMessageGroupCallable(const Model::CreateMessageGroupRequest& request) const;
@@ -1869,6 +1884,9 @@ namespace AlibabaCloud
 			DescribeLiveStreamHistoryUserNumOutcome describeLiveStreamHistoryUserNum(const Model::DescribeLiveStreamHistoryUserNumRequest &request)const;
 			void describeLiveStreamHistoryUserNumAsync(const Model::DescribeLiveStreamHistoryUserNumRequest& request, const DescribeLiveStreamHistoryUserNumAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeLiveStreamHistoryUserNumOutcomeCallable describeLiveStreamHistoryUserNumCallable(const Model::DescribeLiveStreamHistoryUserNumRequest& request) const;
+			DescribeLiveStreamMetricDetailDataOutcome describeLiveStreamMetricDetailData(const Model::DescribeLiveStreamMetricDetailDataRequest &request)const;
+			void describeLiveStreamMetricDetailDataAsync(const Model::DescribeLiveStreamMetricDetailDataRequest& request, const DescribeLiveStreamMetricDetailDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeLiveStreamMetricDetailDataOutcomeCallable describeLiveStreamMetricDetailDataCallable(const Model::DescribeLiveStreamMetricDetailDataRequest& request) const;
 			DescribeLiveStreamMonitorListOutcome describeLiveStreamMonitorList(const Model::DescribeLiveStreamMonitorListRequest &request)const;
 			void describeLiveStreamMonitorListAsync(const Model::DescribeLiveStreamMonitorListRequest& request, const DescribeLiveStreamMonitorListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeLiveStreamMonitorListOutcomeCallable describeLiveStreamMonitorListCallable(const Model::DescribeLiveStreamMonitorListRequest& request) const;
@@ -1938,6 +1956,21 @@ namespace AlibabaCloud
 			DescribeMixStreamListOutcome describeMixStreamList(const Model::DescribeMixStreamListRequest &request)const;
 			void describeMixStreamListAsync(const Model::DescribeMixStreamListRequest& request, const DescribeMixStreamListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeMixStreamListOutcomeCallable describeMixStreamListCallable(const Model::DescribeMixStreamListRequest& request) const;
+			DescribeRTSNativeSDKFirstFrameCostOutcome describeRTSNativeSDKFirstFrameCost(const Model::DescribeRTSNativeSDKFirstFrameCostRequest &request)const;
+			void describeRTSNativeSDKFirstFrameCostAsync(const Model::DescribeRTSNativeSDKFirstFrameCostRequest& request, const DescribeRTSNativeSDKFirstFrameCostAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRTSNativeSDKFirstFrameCostOutcomeCallable describeRTSNativeSDKFirstFrameCostCallable(const Model::DescribeRTSNativeSDKFirstFrameCostRequest& request) const;
+			DescribeRTSNativeSDKFirstFrameDelayOutcome describeRTSNativeSDKFirstFrameDelay(const Model::DescribeRTSNativeSDKFirstFrameDelayRequest &request)const;
+			void describeRTSNativeSDKFirstFrameDelayAsync(const Model::DescribeRTSNativeSDKFirstFrameDelayRequest& request, const DescribeRTSNativeSDKFirstFrameDelayAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRTSNativeSDKFirstFrameDelayOutcomeCallable describeRTSNativeSDKFirstFrameDelayCallable(const Model::DescribeRTSNativeSDKFirstFrameDelayRequest& request) const;
+			DescribeRTSNativeSDKPlayFailStatusOutcome describeRTSNativeSDKPlayFailStatus(const Model::DescribeRTSNativeSDKPlayFailStatusRequest &request)const;
+			void describeRTSNativeSDKPlayFailStatusAsync(const Model::DescribeRTSNativeSDKPlayFailStatusRequest& request, const DescribeRTSNativeSDKPlayFailStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRTSNativeSDKPlayFailStatusOutcomeCallable describeRTSNativeSDKPlayFailStatusCallable(const Model::DescribeRTSNativeSDKPlayFailStatusRequest& request) const;
+			DescribeRTSNativeSDKPlayTimeOutcome describeRTSNativeSDKPlayTime(const Model::DescribeRTSNativeSDKPlayTimeRequest &request)const;
+			void describeRTSNativeSDKPlayTimeAsync(const Model::DescribeRTSNativeSDKPlayTimeRequest& request, const DescribeRTSNativeSDKPlayTimeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRTSNativeSDKPlayTimeOutcomeCallable describeRTSNativeSDKPlayTimeCallable(const Model::DescribeRTSNativeSDKPlayTimeRequest& request) const;
+			DescribeRTSNativeSDKVvDataOutcome describeRTSNativeSDKVvData(const Model::DescribeRTSNativeSDKVvDataRequest &request)const;
+			void describeRTSNativeSDKVvDataAsync(const Model::DescribeRTSNativeSDKVvDataRequest& request, const DescribeRTSNativeSDKVvDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRTSNativeSDKVvDataOutcomeCallable describeRTSNativeSDKVvDataCallable(const Model::DescribeRTSNativeSDKVvDataRequest& request) const;
 			DescribeRoomKickoutUserListOutcome describeRoomKickoutUserList(const Model::DescribeRoomKickoutUserListRequest &request)const;
 			void describeRoomKickoutUserListAsync(const Model::DescribeRoomKickoutUserListRequest& request, const DescribeRoomKickoutUserListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRoomKickoutUserListOutcomeCallable describeRoomKickoutUserListCallable(const Model::DescribeRoomKickoutUserListRequest& request) const;
@@ -2004,15 +2037,15 @@ namespace AlibabaCloud
 			GetEditingJobInfoOutcome getEditingJobInfo(const Model::GetEditingJobInfoRequest &request)const;
 			void getEditingJobInfoAsync(const Model::GetEditingJobInfoRequest& request, const GetEditingJobInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetEditingJobInfoOutcomeCallable getEditingJobInfoCallable(const Model::GetEditingJobInfoRequest& request) const;
-			GetMessageAppOutcome getMessageApp(const Model::GetMessageAppRequest &request)const;
-			void getMessageAppAsync(const Model::GetMessageAppRequest& request, const GetMessageAppAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			GetMessageAppOutcomeCallable getMessageAppCallable(const Model::GetMessageAppRequest& request) const;
 			GetMessageGroupOutcome getMessageGroup(const Model::GetMessageGroupRequest &request)const;
 			void getMessageGroupAsync(const Model::GetMessageGroupRequest& request, const GetMessageGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetMessageGroupOutcomeCallable getMessageGroupCallable(const Model::GetMessageGroupRequest& request) const;
 			GetMessageTokenOutcome getMessageToken(const Model::GetMessageTokenRequest &request)const;
 			void getMessageTokenAsync(const Model::GetMessageTokenRequest& request, const GetMessageTokenAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetMessageTokenOutcomeCallable getMessageTokenCallable(const Model::GetMessageTokenRequest& request) const;
+			GetMessageUserInfoOutcome getMessageUserInfo(const Model::GetMessageUserInfoRequest &request)const;
+			void getMessageUserInfoAsync(const Model::GetMessageUserInfoRequest& request, const GetMessageUserInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetMessageUserInfoOutcomeCallable getMessageUserInfoCallable(const Model::GetMessageUserInfoRequest& request) const;
 			GetMultiRateConfigOutcome getMultiRateConfig(const Model::GetMultiRateConfigRequest &request)const;
 			void getMultiRateConfigAsync(const Model::GetMultiRateConfigRequest& request, const GetMultiRateConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetMultiRateConfigOutcomeCallable getMultiRateConfigCallable(const Model::GetMultiRateConfigRequest& request) const;
@@ -2043,9 +2076,6 @@ namespace AlibabaCloud
 			ListMessageOutcome listMessage(const Model::ListMessageRequest &request)const;
 			void listMessageAsync(const Model::ListMessageRequest& request, const ListMessageAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListMessageOutcomeCallable listMessageCallable(const Model::ListMessageRequest& request) const;
-			ListMessageAppOutcome listMessageApp(const Model::ListMessageAppRequest &request)const;
-			void listMessageAppAsync(const Model::ListMessageAppRequest& request, const ListMessageAppAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			ListMessageAppOutcomeCallable listMessageAppCallable(const Model::ListMessageAppRequest& request) const;
 			ListMessageGroupOutcome listMessageGroup(const Model::ListMessageGroupRequest &request)const;
 			void listMessageGroupAsync(const Model::ListMessageGroupRequest& request, const ListMessageGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListMessageGroupOutcomeCallable listMessageGroupCallable(const Model::ListMessageGroupRequest& request) const;
@@ -2112,12 +2142,6 @@ namespace AlibabaCloud
 			RollbackLiveStagingConfigOutcome rollbackLiveStagingConfig(const Model::RollbackLiveStagingConfigRequest &request)const;
 			void rollbackLiveStagingConfigAsync(const Model::RollbackLiveStagingConfigRequest& request, const RollbackLiveStagingConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			RollbackLiveStagingConfigOutcomeCallable rollbackLiveStagingConfigCallable(const Model::RollbackLiveStagingConfigRequest& request) const;
-			SendMessageToGroupOutcome sendMessageToGroup(const Model::SendMessageToGroupRequest &request)const;
-			void sendMessageToGroupAsync(const Model::SendMessageToGroupRequest& request, const SendMessageToGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			SendMessageToGroupOutcomeCallable sendMessageToGroupCallable(const Model::SendMessageToGroupRequest& request) const;
-			SendMessageToGroupUsersOutcome sendMessageToGroupUsers(const Model::SendMessageToGroupUsersRequest &request)const;
-			void sendMessageToGroupUsersAsync(const Model::SendMessageToGroupUsersRequest& request, const SendMessageToGroupUsersAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			SendMessageToGroupUsersOutcomeCallable sendMessageToGroupUsersCallable(const Model::SendMessageToGroupUsersRequest& request) const;
 			SendRoomNotificationOutcome sendRoomNotification(const Model::SendRoomNotificationRequest &request)const;
 			void sendRoomNotificationAsync(const Model::SendRoomNotificationRequest& request, const SendRoomNotificationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			SendRoomNotificationOutcomeCallable sendRoomNotificationCallable(const Model::SendRoomNotificationRequest& request) const;

+ 9 - 12
live/include/alibabacloud/live/model/SendMessageToGroupRequest.h → live/include/alibabacloud/live/model/CancelMuteAllGroupUserRequest.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_LIVE_MODEL_SENDMESSAGETOGROUPREQUEST_H_
-#define ALIBABACLOUD_LIVE_MODEL_SENDMESSAGETOGROUPREQUEST_H_
+#ifndef ALIBABACLOUD_LIVE_MODEL_CANCELMUTEALLGROUPUSERREQUEST_H_
+#define ALIBABACLOUD_LIVE_MODEL_CANCELMUTEALLGROUPUSERREQUEST_H_
 
 #include <alibabacloud/live/LiveExport.h>
 #include <alibabacloud/core/RpcServiceRequest.h>
@@ -26,26 +26,23 @@
 namespace AlibabaCloud {
 namespace Live {
 namespace Model {
-class ALIBABACLOUD_LIVE_EXPORT SendMessageToGroupRequest : public RpcServiceRequest {
+class ALIBABACLOUD_LIVE_EXPORT CancelMuteAllGroupUserRequest : public RpcServiceRequest {
 public:
-	SendMessageToGroupRequest();
-	~SendMessageToGroupRequest();
-	std::string getData() const;
-	void setData(const std::string &data);
+	CancelMuteAllGroupUserRequest();
+	~CancelMuteAllGroupUserRequest();
 	std::string getGroupId() const;
 	void setGroupId(const std::string &groupId);
-	int getType() const;
-	void setType(int type);
 	std::string getAppId() const;
 	void setAppId(const std::string &appId);
+	std::string getOperatorUserId() const;
+	void setOperatorUserId(const std::string &operatorUserId);
 
 private:
-	std::string data_;
 	std::string groupId_;
-	int type_;
 	std::string appId_;
+	std::string operatorUserId_;
 };
 } // namespace Model
 } // namespace Live
 } // namespace AlibabaCloud
-#endif // !ALIBABACLOUD_LIVE_MODEL_SENDMESSAGETOGROUPREQUEST_H_
+#endif // !ALIBABACLOUD_LIVE_MODEL_CANCELMUTEALLGROUPUSERREQUEST_H_

+ 8 - 8
live/include/alibabacloud/live/model/CreateMessageAppResult.h → live/include/alibabacloud/live/model/CancelMuteAllGroupUserResult.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_LIVE_MODEL_CREATEMESSAGEAPPRESULT_H_
-#define ALIBABACLOUD_LIVE_MODEL_CREATEMESSAGEAPPRESULT_H_
+#ifndef ALIBABACLOUD_LIVE_MODEL_CANCELMUTEALLGROUPUSERRESULT_H_
+#define ALIBABACLOUD_LIVE_MODEL_CANCELMUTEALLGROUPUSERRESULT_H_
 
 #include <string>
 #include <vector>
@@ -29,18 +29,18 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_LIVE_EXPORT CreateMessageAppResult : public ServiceResult
+			class ALIBABACLOUD_LIVE_EXPORT CancelMuteAllGroupUserResult : public ServiceResult
 			{
 			public:
 				struct Result
 				{
-					std::string appId;
+					bool success;
 				};
 
 
-				CreateMessageAppResult();
-				explicit CreateMessageAppResult(const std::string &payload);
-				~CreateMessageAppResult();
+				CancelMuteAllGroupUserResult();
+				explicit CancelMuteAllGroupUserResult(const std::string &payload);
+				~CancelMuteAllGroupUserResult();
 				Result getResult()const;
 
 			protected:
@@ -52,4 +52,4 @@ namespace AlibabaCloud
 		}
 	}
 }
-#endif // !ALIBABACLOUD_LIVE_MODEL_CREATEMESSAGEAPPRESULT_H_
+#endif // !ALIBABACLOUD_LIVE_MODEL_CANCELMUTEALLGROUPUSERRESULT_H_

+ 0 - 45
live/include/alibabacloud/live/model/CreateMessageAppRequest.h

@@ -1,45 +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_LIVE_MODEL_CREATEMESSAGEAPPREQUEST_H_
-#define ALIBABACLOUD_LIVE_MODEL_CREATEMESSAGEAPPREQUEST_H_
-
-#include <alibabacloud/live/LiveExport.h>
-#include <alibabacloud/core/RpcServiceRequest.h>
-#include <string>
-#include <vector>
-#include <map>
-
-namespace AlibabaCloud {
-namespace Live {
-namespace Model {
-class ALIBABACLOUD_LIVE_EXPORT CreateMessageAppRequest : public RpcServiceRequest {
-public:
-	CreateMessageAppRequest();
-	~CreateMessageAppRequest();
-	std::map<std::string, std::string> getExtension() const;
-	void setExtension(const std::map<std::string, std::string> &extension);
-	std::map<std::string, std::string> getAppConfig() const;
-	void setAppConfig(const std::map<std::string, std::string> &appConfig);
-
-private:
-	std::map<std::string, std::string> extension_;
-	std::map<std::string, std::string> appConfig_;
-};
-} // namespace Model
-} // namespace Live
-} // namespace AlibabaCloud
-#endif // !ALIBABACLOUD_LIVE_MODEL_CREATEMESSAGEAPPREQUEST_H_

+ 63 - 0
live/include/alibabacloud/live/model/DescribeLiveStreamMetricDetailDataRequest.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_LIVE_MODEL_DESCRIBELIVESTREAMMETRICDETAILDATAREQUEST_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBELIVESTREAMMETRICDETAILDATAREQUEST_H_
+
+#include <alibabacloud/live/LiveExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Live {
+namespace Model {
+class ALIBABACLOUD_LIVE_EXPORT DescribeLiveStreamMetricDetailDataRequest : public RpcServiceRequest {
+public:
+	DescribeLiveStreamMetricDetailDataRequest();
+	~DescribeLiveStreamMetricDetailDataRequest();
+	std::string getNextPageToken() const;
+	void setNextPageToken(const std::string &nextPageToken);
+	std::string getStartTime() const;
+	void setStartTime(const std::string &startTime);
+	std::string getProtocol() const;
+	void setProtocol(const std::string &protocol);
+	std::string getAppName() const;
+	void setAppName(const std::string &appName);
+	std::string getStreamName() const;
+	void setStreamName(const std::string &streamName);
+	std::string getDomainName() const;
+	void setDomainName(const std::string &domainName);
+	std::string getEndTime() const;
+	void setEndTime(const std::string &endTime);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+
+private:
+	std::string nextPageToken_;
+	std::string startTime_;
+	std::string protocol_;
+	std::string appName_;
+	std::string streamName_;
+	std::string domainName_;
+	std::string endTime_;
+	long ownerId_;
+};
+} // namespace Model
+} // namespace Live
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBELIVESTREAMMETRICDETAILDATAREQUEST_H_

+ 85 - 0
live/include/alibabacloud/live/model/DescribeLiveStreamMetricDetailDataResult.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_LIVE_MODEL_DESCRIBELIVESTREAMMETRICDETAILDATARESULT_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBELIVESTREAMMETRICDETAILDATARESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/live/LiveExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Live
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LIVE_EXPORT DescribeLiveStreamMetricDetailDataResult : public ServiceResult
+			{
+			public:
+				struct StreamData
+				{
+					long p2pTraffic;
+					float bps;
+					float rtmpBps;
+					long hlsTraffic;
+					long rtsTraffic;
+					long traffic;
+					long rtsCount;
+					long count;
+					long flvCount;
+					float flvBps;
+					std::string timeStamp;
+					float p2pBps;
+					std::string appName;
+					float rtsBps;
+					float hlsBps;
+					long rtmpTraffic;
+					std::string streamName;
+					long rtmpCount;
+					long flvTraffic;
+					long hlsCount;
+					long p2pCount;
+				};
+
+
+				DescribeLiveStreamMetricDetailDataResult();
+				explicit DescribeLiveStreamMetricDetailDataResult(const std::string &payload);
+				~DescribeLiveStreamMetricDetailDataResult();
+				std::string getEndTime()const;
+				int getPageSize()const;
+				std::string getDomainName()const;
+				std::string getNextPageToken()const;
+				std::string getStartTime()const;
+				std::vector<StreamData> getStreamDetailData()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string endTime_;
+				int pageSize_;
+				std::string domainName_;
+				std::string nextPageToken_;
+				std::string startTime_;
+				std::vector<StreamData> streamDetailData_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBELIVESTREAMMETRICDETAILDATARESULT_H_

+ 51 - 0
live/include/alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameCostRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKFIRSTFRAMECOSTREQUEST_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKFIRSTFRAMECOSTREQUEST_H_
+
+#include <alibabacloud/live/LiveExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Live {
+namespace Model {
+class ALIBABACLOUD_LIVE_EXPORT DescribeRTSNativeSDKFirstFrameCostRequest : public RpcServiceRequest {
+public:
+	DescribeRTSNativeSDKFirstFrameCostRequest();
+	~DescribeRTSNativeSDKFirstFrameCostRequest();
+	std::string getEndTime() const;
+	void setEndTime(const std::string &endTime);
+	std::vector<std::string> getDomainNameList() const;
+	void setDomainNameList(const std::vector<std::string> &domainNameList);
+	std::string getStartTime() const;
+	void setStartTime(const std::string &startTime);
+	std::string getDataInterval() const;
+	void setDataInterval(const std::string &dataInterval);
+
+private:
+	std::string endTime_;
+	std::vector<std::string> domainNameList_;
+	std::string startTime_;
+	std::string dataInterval_;
+};
+} // namespace Model
+} // namespace Live
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKFIRSTFRAMECOSTREQUEST_H_

+ 66 - 0
live/include/alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameCostResult.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_LIVE_MODEL_DESCRIBERTSNATIVESDKFIRSTFRAMECOSTRESULT_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKFIRSTFRAMECOSTRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/live/LiveExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Live
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LIVE_EXPORT DescribeRTSNativeSDKFirstFrameCostResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string initialized;
+					std::string connected;
+					std::string firstFrameComplete;
+					std::string firstPacket;
+					std::string finishGetStreamInfo;
+					std::string timeStamp;
+				};
+
+
+				DescribeRTSNativeSDKFirstFrameCostResult();
+				explicit DescribeRTSNativeSDKFirstFrameCostResult(const std::string &payload);
+				~DescribeRTSNativeSDKFirstFrameCostResult();
+				std::string getEndTime()const;
+				std::vector<Data> getFirstFrameCostData()const;
+				std::string getDataInterval()const;
+				std::string getStartTime()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string endTime_;
+				std::vector<Data> firstFrameCostData_;
+				std::string dataInterval_;
+				std::string startTime_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKFIRSTFRAMECOSTRESULT_H_

+ 51 - 0
live/include/alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameDelayRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKFIRSTFRAMEDELAYREQUEST_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKFIRSTFRAMEDELAYREQUEST_H_
+
+#include <alibabacloud/live/LiveExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Live {
+namespace Model {
+class ALIBABACLOUD_LIVE_EXPORT DescribeRTSNativeSDKFirstFrameDelayRequest : public RpcServiceRequest {
+public:
+	DescribeRTSNativeSDKFirstFrameDelayRequest();
+	~DescribeRTSNativeSDKFirstFrameDelayRequest();
+	std::string getEndTime() const;
+	void setEndTime(const std::string &endTime);
+	std::vector<std::string> getDomainNameList() const;
+	void setDomainNameList(const std::vector<std::string> &domainNameList);
+	std::string getStartTime() const;
+	void setStartTime(const std::string &startTime);
+	std::string getDataInterval() const;
+	void setDataInterval(const std::string &dataInterval);
+
+private:
+	std::string endTime_;
+	std::vector<std::string> domainNameList_;
+	std::string startTime_;
+	std::string dataInterval_;
+};
+} // namespace Model
+} // namespace Live
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKFIRSTFRAMEDELAYREQUEST_H_

+ 62 - 0
live/include/alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameDelayResult.h

@@ -0,0 +1,62 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKFIRSTFRAMEDELAYRESULT_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKFIRSTFRAMEDELAYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/live/LiveExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Live
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LIVE_EXPORT DescribeRTSNativeSDKFirstFrameDelayResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string frameDelay;
+					std::string timeStamp;
+				};
+
+
+				DescribeRTSNativeSDKFirstFrameDelayResult();
+				explicit DescribeRTSNativeSDKFirstFrameDelayResult(const std::string &payload);
+				~DescribeRTSNativeSDKFirstFrameDelayResult();
+				std::string getEndTime()const;
+				std::string getDataInterval()const;
+				std::string getStartTime()const;
+				std::vector<Data> getFrameDelayData()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string endTime_;
+				std::string dataInterval_;
+				std::string startTime_;
+				std::vector<Data> frameDelayData_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKFIRSTFRAMEDELAYRESULT_H_

+ 51 - 0
live/include/alibabacloud/live/model/DescribeRTSNativeSDKPlayFailStatusRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKPLAYFAILSTATUSREQUEST_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKPLAYFAILSTATUSREQUEST_H_
+
+#include <alibabacloud/live/LiveExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Live {
+namespace Model {
+class ALIBABACLOUD_LIVE_EXPORT DescribeRTSNativeSDKPlayFailStatusRequest : public RpcServiceRequest {
+public:
+	DescribeRTSNativeSDKPlayFailStatusRequest();
+	~DescribeRTSNativeSDKPlayFailStatusRequest();
+	std::string getEndTime() const;
+	void setEndTime(const std::string &endTime);
+	std::vector<std::string> getDomainNameList() const;
+	void setDomainNameList(const std::vector<std::string> &domainNameList);
+	std::string getStartTime() const;
+	void setStartTime(const std::string &startTime);
+	std::string getDataInterval() const;
+	void setDataInterval(const std::string &dataInterval);
+
+private:
+	std::string endTime_;
+	std::vector<std::string> domainNameList_;
+	std::string startTime_;
+	std::string dataInterval_;
+};
+} // namespace Model
+} // namespace Live
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKPLAYFAILSTATUSREQUEST_H_

+ 67 - 0
live/include/alibabacloud/live/model/DescribeRTSNativeSDKPlayFailStatusResult.h

@@ -0,0 +1,67 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKPLAYFAILSTATUSRESULT_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKPLAYFAILSTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/live/LiveExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Live
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_LIVE_EXPORT DescribeRTSNativeSDKPlayFailStatusResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string v20002;
+					std::string v20013;
+					std::string v20001;
+					std::string v20012;
+					std::string v20011;
+					std::string timeStamp;
+					std::string v20052;
+				};
+
+
+				DescribeRTSNativeSDKPlayFailStatusResult();
+				explicit DescribeRTSNativeSDKPlayFailStatusResult(const std::string &payload);
+				~DescribeRTSNativeSDKPlayFailStatusResult();
+				std::vector<Data> getPlayFailStatus()const;
+				std::string getEndTime()const;
+				std::string getDataInterval()const;
+				std::string getStartTime()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Data> playFailStatus_;
+				std::string endTime_;
+				std::string dataInterval_;
+				std::string startTime_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKPLAYFAILSTATUSRESULT_H_

+ 51 - 0
live/include/alibabacloud/live/model/DescribeRTSNativeSDKPlayTimeRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKPLAYTIMEREQUEST_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKPLAYTIMEREQUEST_H_
+
+#include <alibabacloud/live/LiveExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Live {
+namespace Model {
+class ALIBABACLOUD_LIVE_EXPORT DescribeRTSNativeSDKPlayTimeRequest : public RpcServiceRequest {
+public:
+	DescribeRTSNativeSDKPlayTimeRequest();
+	~DescribeRTSNativeSDKPlayTimeRequest();
+	std::string getEndTime() const;
+	void setEndTime(const std::string &endTime);
+	std::vector<std::string> getDomainNameList() const;
+	void setDomainNameList(const std::vector<std::string> &domainNameList);
+	std::string getStartTime() const;
+	void setStartTime(const std::string &startTime);
+	std::string getDataInterval() const;
+	void setDataInterval(const std::string &dataInterval);
+
+private:
+	std::string endTime_;
+	std::vector<std::string> domainNameList_;
+	std::string startTime_;
+	std::string dataInterval_;
+};
+} // namespace Model
+} // namespace Live
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKPLAYTIMEREQUEST_H_

+ 19 - 15
live/include/alibabacloud/live/model/GetMessageAppResult.h → live/include/alibabacloud/live/model/DescribeRTSNativeSDKPlayTimeResult.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_LIVE_MODEL_GETMESSAGEAPPRESULT_H_
-#define ALIBABACLOUD_LIVE_MODEL_GETMESSAGEAPPRESULT_H_
+#ifndef ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKPLAYTIMERESULT_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKPLAYTIMERESULT_H_
 
 #include <string>
 #include <vector>
@@ -29,31 +29,35 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_LIVE_EXPORT GetMessageAppResult : public ServiceResult
+			class ALIBABACLOUD_LIVE_EXPORT DescribeRTSNativeSDKPlayTimeResult : public ServiceResult
 			{
 			public:
-				struct Result
+				struct Data
 				{
-					int status;
-					std::string extension;
-					std::string appConfig;
-					std::string appId;
-					long createTime;
+					std::string playTime;
+					std::string stallTime;
+					std::string timeStamp;
 				};
 
 
-				GetMessageAppResult();
-				explicit GetMessageAppResult(const std::string &payload);
-				~GetMessageAppResult();
-				Result getResult()const;
+				DescribeRTSNativeSDKPlayTimeResult();
+				explicit DescribeRTSNativeSDKPlayTimeResult(const std::string &payload);
+				~DescribeRTSNativeSDKPlayTimeResult();
+				std::string getEndTime()const;
+				std::vector<Data> getPlayTimeData()const;
+				std::string getDataInterval()const;
+				std::string getStartTime()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
-				Result result_;
+				std::string endTime_;
+				std::vector<Data> playTimeData_;
+				std::string dataInterval_;
+				std::string startTime_;
 
 			};
 		}
 	}
 }
-#endif // !ALIBABACLOUD_LIVE_MODEL_GETMESSAGEAPPRESULT_H_
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKPLAYTIMERESULT_H_

+ 18 - 18
live/include/alibabacloud/live/model/SendMessageToGroupUsersRequest.h → live/include/alibabacloud/live/model/DescribeRTSNativeSDKVvDataRequest.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_LIVE_MODEL_SENDMESSAGETOGROUPUSERSREQUEST_H_
-#define ALIBABACLOUD_LIVE_MODEL_SENDMESSAGETOGROUPUSERSREQUEST_H_
+#ifndef ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKVVDATAREQUEST_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKVVDATAREQUEST_H_
 
 #include <alibabacloud/live/LiveExport.h>
 #include <alibabacloud/core/RpcServiceRequest.h>
@@ -26,26 +26,26 @@
 namespace AlibabaCloud {
 namespace Live {
 namespace Model {
-class ALIBABACLOUD_LIVE_EXPORT SendMessageToGroupUsersRequest : public RpcServiceRequest {
+class ALIBABACLOUD_LIVE_EXPORT DescribeRTSNativeSDKVvDataRequest : public RpcServiceRequest {
 public:
-	SendMessageToGroupUsersRequest();
-	~SendMessageToGroupUsersRequest();
-	std::vector<std::string> getReceiverIdList() const;
-	void setReceiverIdList(const std::vector<std::string> &receiverIdList);
-	std::string getGroupIdcopy() const;
-	void setGroupIdcopy(const std::string &groupIdcopy);
-	std::string getGroupId() const;
-	void setGroupId(const std::string &groupId);
-	int getType() const;
-	void setType(int type);
+	DescribeRTSNativeSDKVvDataRequest();
+	~DescribeRTSNativeSDKVvDataRequest();
+	std::string getEndTime() const;
+	void setEndTime(const std::string &endTime);
+	std::vector<std::string> getDomainNameList() const;
+	void setDomainNameList(const std::vector<std::string> &domainNameList);
+	std::string getStartTime() const;
+	void setStartTime(const std::string &startTime);
+	std::string getDataInterval() const;
+	void setDataInterval(const std::string &dataInterval);
 
 private:
-	std::vector<std::string> receiverIdList_;
-	std::string groupIdcopy_;
-	std::string groupId_;
-	int type_;
+	std::string endTime_;
+	std::vector<std::string> domainNameList_;
+	std::string startTime_;
+	std::string dataInterval_;
 };
 } // namespace Model
 } // namespace Live
 } // namespace AlibabaCloud
-#endif // !ALIBABACLOUD_LIVE_MODEL_SENDMESSAGETOGROUPUSERSREQUEST_H_
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKVVDATAREQUEST_H_

+ 19 - 21
live/include/alibabacloud/live/model/ListMessageAppResult.h → live/include/alibabacloud/live/model/DescribeRTSNativeSDKVvDataResult.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_LIVE_MODEL_LISTMESSAGEAPPRESULT_H_
-#define ALIBABACLOUD_LIVE_MODEL_LISTMESSAGEAPPRESULT_H_
+#ifndef ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKVVDATARESULT_H_
+#define ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKVVDATARESULT_H_
 
 #include <string>
 #include <vector>
@@ -29,37 +29,35 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_LIVE_EXPORT ListMessageAppResult : public ServiceResult
+			class ALIBABACLOUD_LIVE_EXPORT DescribeRTSNativeSDKVvDataResult : public ServiceResult
 			{
 			public:
-				struct Result
+				struct Data
 				{
-					struct AppListItem
-					{
-						int status;
-						std::string extension;
-						std::string appConfig;
-						std::string appId;
-						long createTime;
-					};
-					bool hasMore;
-					int total;
-					std::vector<AppListItem> appList;
+					std::string vvTotal;
+					std::string vvSuccess;
+					std::string timeStamp;
 				};
 
 
-				ListMessageAppResult();
-				explicit ListMessageAppResult(const std::string &payload);
-				~ListMessageAppResult();
-				Result getResult()const;
+				DescribeRTSNativeSDKVvDataResult();
+				explicit DescribeRTSNativeSDKVvDataResult(const std::string &payload);
+				~DescribeRTSNativeSDKVvDataResult();
+				std::string getEndTime()const;
+				std::vector<Data> getVvData()const;
+				std::string getDataInterval()const;
+				std::string getStartTime()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
-				Result result_;
+				std::string endTime_;
+				std::vector<Data> vvData_;
+				std::string dataInterval_;
+				std::string startTime_;
 
 			};
 		}
 	}
 }
-#endif // !ALIBABACLOUD_LIVE_MODEL_LISTMESSAGEAPPRESULT_H_
+#endif // !ALIBABACLOUD_LIVE_MODEL_DESCRIBERTSNATIVESDKVVDATARESULT_H_

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

@@ -38,6 +38,7 @@ namespace AlibabaCloud
 					std::string extension;
 					std::string creatorId;
 					long createTime;
+					bool isMuteAll;
 					std::string groupId;
 				};
 

+ 9 - 9
live/include/alibabacloud/live/model/GetMessageAppRequest.h → live/include/alibabacloud/live/model/GetMessageUserInfoRequest.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_LIVE_MODEL_GETMESSAGEAPPREQUEST_H_
-#define ALIBABACLOUD_LIVE_MODEL_GETMESSAGEAPPREQUEST_H_
+#ifndef ALIBABACLOUD_LIVE_MODEL_GETMESSAGEUSERINFOREQUEST_H_
+#define ALIBABACLOUD_LIVE_MODEL_GETMESSAGEUSERINFOREQUEST_H_
 
 #include <alibabacloud/live/LiveExport.h>
 #include <alibabacloud/core/RpcServiceRequest.h>
@@ -26,17 +26,17 @@
 namespace AlibabaCloud {
 namespace Live {
 namespace Model {
-class ALIBABACLOUD_LIVE_EXPORT GetMessageAppRequest : public RpcServiceRequest {
+class ALIBABACLOUD_LIVE_EXPORT GetMessageUserInfoRequest : public RpcServiceRequest {
 public:
-	GetMessageAppRequest();
-	~GetMessageAppRequest();
-	std::string getAppId() const;
-	void setAppId(const std::string &appId);
+	GetMessageUserInfoRequest();
+	~GetMessageUserInfoRequest();
+	std::string getCloudUid() const;
+	void setCloudUid(const std::string &cloudUid);
 
 private:
-	std::string appId_;
+	std::string cloudUid_;
 };
 } // namespace Model
 } // namespace Live
 } // namespace AlibabaCloud
-#endif // !ALIBABACLOUD_LIVE_MODEL_GETMESSAGEAPPREQUEST_H_
+#endif // !ALIBABACLOUD_LIVE_MODEL_GETMESSAGEUSERINFOREQUEST_H_

+ 9 - 8
live/include/alibabacloud/live/model/SendMessageToGroupResult.h → live/include/alibabacloud/live/model/GetMessageUserInfoResult.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_LIVE_MODEL_SENDMESSAGETOGROUPRESULT_H_
-#define ALIBABACLOUD_LIVE_MODEL_SENDMESSAGETOGROUPRESULT_H_
+#ifndef ALIBABACLOUD_LIVE_MODEL_GETMESSAGEUSERINFORESULT_H_
+#define ALIBABACLOUD_LIVE_MODEL_GETMESSAGEUSERINFORESULT_H_
 
 #include <string>
 #include <vector>
@@ -29,18 +29,19 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_LIVE_EXPORT SendMessageToGroupResult : public ServiceResult
+			class ALIBABACLOUD_LIVE_EXPORT GetMessageUserInfoResult : public ServiceResult
 			{
 			public:
 				struct Result
 				{
-					std::string messageId;
+					bool isNewIMUser;
+					bool hasOrderedIM;
 				};
 
 
-				SendMessageToGroupResult();
-				explicit SendMessageToGroupResult(const std::string &payload);
-				~SendMessageToGroupResult();
+				GetMessageUserInfoResult();
+				explicit GetMessageUserInfoResult(const std::string &payload);
+				~GetMessageUserInfoResult();
 				Result getResult()const;
 
 			protected:
@@ -52,4 +53,4 @@ namespace AlibabaCloud
 		}
 	}
 }
-#endif // !ALIBABACLOUD_LIVE_MODEL_SENDMESSAGETOGROUPRESULT_H_
+#endif // !ALIBABACLOUD_LIVE_MODEL_GETMESSAGEUSERINFORESULT_H_

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

@@ -30,17 +30,23 @@ class ALIBABACLOUD_LIVE_EXPORT JoinMessageGroupRequest : public RpcServiceReques
 public:
 	JoinMessageGroupRequest();
 	~JoinMessageGroupRequest();
+	bool getBroadCastStatistics() const;
+	void setBroadCastStatistics(bool broadCastStatistics);
 	std::string getGroupId() const;
 	void setGroupId(const std::string &groupId);
 	std::string getUserId() const;
 	void setUserId(const std::string &userId);
 	std::string getAppId() const;
 	void setAppId(const std::string &appId);
+	int getBroadCastType() const;
+	void setBroadCastType(int broadCastType);
 
 private:
+	bool broadCastStatistics_;
 	std::string groupId_;
 	std::string userId_;
 	std::string appId_;
+	int broadCastType_;
 };
 } // namespace Model
 } // namespace Live

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

@@ -30,17 +30,23 @@ class ALIBABACLOUD_LIVE_EXPORT LeaveMessageGroupRequest : public RpcServiceReque
 public:
 	LeaveMessageGroupRequest();
 	~LeaveMessageGroupRequest();
+	bool getBroadCastStatistics() const;
+	void setBroadCastStatistics(bool broadCastStatistics);
 	std::string getGroupId() const;
 	void setGroupId(const std::string &groupId);
 	std::string getUserId() const;
 	void setUserId(const std::string &userId);
 	std::string getAppId() const;
 	void setAppId(const std::string &appId);
+	int getBroadCastType() const;
+	void setBroadCastType(int broadCastType);
 
 private:
+	bool broadCastStatistics_;
 	std::string groupId_;
 	std::string userId_;
 	std::string appId_;
+	int broadCastType_;
 };
 } // namespace Model
 } // namespace Live

+ 0 - 48
live/include/alibabacloud/live/model/ListMessageAppRequest.h

@@ -1,48 +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_LIVE_MODEL_LISTMESSAGEAPPREQUEST_H_
-#define ALIBABACLOUD_LIVE_MODEL_LISTMESSAGEAPPREQUEST_H_
-
-#include <alibabacloud/live/LiveExport.h>
-#include <alibabacloud/core/RpcServiceRequest.h>
-#include <string>
-#include <vector>
-#include <map>
-
-namespace AlibabaCloud {
-namespace Live {
-namespace Model {
-class ALIBABACLOUD_LIVE_EXPORT ListMessageAppRequest : public RpcServiceRequest {
-public:
-	ListMessageAppRequest();
-	~ListMessageAppRequest();
-	int getSortType() const;
-	void setSortType(int sortType);
-	int getPageNum() const;
-	void setPageNum(int pageNum);
-	int getPageSize() const;
-	void setPageSize(int pageSize);
-
-private:
-	int sortType_;
-	int pageNum_;
-	int pageSize_;
-};
-} // namespace Model
-} // namespace Live
-} // namespace AlibabaCloud
-#endif // !ALIBABACLOUD_LIVE_MODEL_LISTMESSAGEAPPREQUEST_H_

+ 0 - 55
live/include/alibabacloud/live/model/SendMessageToGroupUsersResult.h

@@ -1,55 +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_LIVE_MODEL_SENDMESSAGETOGROUPUSERSRESULT_H_
-#define ALIBABACLOUD_LIVE_MODEL_SENDMESSAGETOGROUPUSERSRESULT_H_
-
-#include <string>
-#include <vector>
-#include <utility>
-#include <alibabacloud/core/ServiceResult.h>
-#include <alibabacloud/live/LiveExport.h>
-
-namespace AlibabaCloud
-{
-	namespace Live
-	{
-		namespace Model
-		{
-			class ALIBABACLOUD_LIVE_EXPORT SendMessageToGroupUsersResult : public ServiceResult
-			{
-			public:
-				struct Result
-				{
-					std::string messageId;
-				};
-
-
-				SendMessageToGroupUsersResult();
-				explicit SendMessageToGroupUsersResult(const std::string &payload);
-				~SendMessageToGroupUsersResult();
-				Result getResult()const;
-
-			protected:
-				void parse(const std::string &payload);
-			private:
-				Result result_;
-
-			};
-		}
-	}
-}
-#endif // !ALIBABACLOUD_LIVE_MODEL_SENDMESSAGETOGROUPUSERSRESULT_H_

+ 279 - 171
live/src/LiveClient.cc

@@ -1203,6 +1203,42 @@ LiveClient::BatchSetLiveDomainConfigsOutcomeCallable LiveClient::batchSetLiveDom
 	return task->get_future();
 }
 
+LiveClient::CancelMuteAllGroupUserOutcome LiveClient::cancelMuteAllGroupUser(const CancelMuteAllGroupUserRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CancelMuteAllGroupUserOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CancelMuteAllGroupUserOutcome(CancelMuteAllGroupUserResult(outcome.result()));
+	else
+		return CancelMuteAllGroupUserOutcome(outcome.error());
+}
+
+void LiveClient::cancelMuteAllGroupUserAsync(const CancelMuteAllGroupUserRequest& request, const CancelMuteAllGroupUserAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, cancelMuteAllGroupUser(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LiveClient::CancelMuteAllGroupUserOutcomeCallable LiveClient::cancelMuteAllGroupUserCallable(const CancelMuteAllGroupUserRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CancelMuteAllGroupUserOutcome()>>(
+			[this, request]()
+			{
+			return this->cancelMuteAllGroupUser(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 LiveClient::CloseLiveShiftOutcome LiveClient::closeLiveShift(const CloseLiveShiftRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1563,42 +1599,6 @@ LiveClient::CreateLiveTranscodeTemplateOutcomeCallable LiveClient::createLiveTra
 	return task->get_future();
 }
 
-LiveClient::CreateMessageAppOutcome LiveClient::createMessageApp(const CreateMessageAppRequest &request) const
-{
-	auto endpointOutcome = endpointProvider_->getEndpoint();
-	if (!endpointOutcome.isSuccess())
-		return CreateMessageAppOutcome(endpointOutcome.error());
-
-	auto outcome = makeRequest(endpointOutcome.result(), request);
-
-	if (outcome.isSuccess())
-		return CreateMessageAppOutcome(CreateMessageAppResult(outcome.result()));
-	else
-		return CreateMessageAppOutcome(outcome.error());
-}
-
-void LiveClient::createMessageAppAsync(const CreateMessageAppRequest& request, const CreateMessageAppAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
-{
-	auto fn = [this, request, handler, context]()
-	{
-		handler(this, request, createMessageApp(request), context);
-	};
-
-	asyncExecute(new Runnable(fn));
-}
-
-LiveClient::CreateMessageAppOutcomeCallable LiveClient::createMessageAppCallable(const CreateMessageAppRequest &request) const
-{
-	auto task = std::make_shared<std::packaged_task<CreateMessageAppOutcome()>>(
-			[this, request]()
-			{
-			return this->createMessageApp(request);
-			});
-
-	asyncExecute(new Runnable([task]() { (*task)(); }));
-	return task->get_future();
-}
-
 LiveClient::CreateMessageGroupOutcome LiveClient::createMessageGroup(const CreateMessageGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -5487,6 +5487,42 @@ LiveClient::DescribeLiveStreamHistoryUserNumOutcomeCallable LiveClient::describe
 	return task->get_future();
 }
 
+LiveClient::DescribeLiveStreamMetricDetailDataOutcome LiveClient::describeLiveStreamMetricDetailData(const DescribeLiveStreamMetricDetailDataRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeLiveStreamMetricDetailDataOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeLiveStreamMetricDetailDataOutcome(DescribeLiveStreamMetricDetailDataResult(outcome.result()));
+	else
+		return DescribeLiveStreamMetricDetailDataOutcome(outcome.error());
+}
+
+void LiveClient::describeLiveStreamMetricDetailDataAsync(const DescribeLiveStreamMetricDetailDataRequest& request, const DescribeLiveStreamMetricDetailDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeLiveStreamMetricDetailData(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LiveClient::DescribeLiveStreamMetricDetailDataOutcomeCallable LiveClient::describeLiveStreamMetricDetailDataCallable(const DescribeLiveStreamMetricDetailDataRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeLiveStreamMetricDetailDataOutcome()>>(
+			[this, request]()
+			{
+			return this->describeLiveStreamMetricDetailData(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 LiveClient::DescribeLiveStreamMonitorListOutcome LiveClient::describeLiveStreamMonitorList(const DescribeLiveStreamMonitorListRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -6315,6 +6351,186 @@ LiveClient::DescribeMixStreamListOutcomeCallable LiveClient::describeMixStreamLi
 	return task->get_future();
 }
 
+LiveClient::DescribeRTSNativeSDKFirstFrameCostOutcome LiveClient::describeRTSNativeSDKFirstFrameCost(const DescribeRTSNativeSDKFirstFrameCostRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRTSNativeSDKFirstFrameCostOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRTSNativeSDKFirstFrameCostOutcome(DescribeRTSNativeSDKFirstFrameCostResult(outcome.result()));
+	else
+		return DescribeRTSNativeSDKFirstFrameCostOutcome(outcome.error());
+}
+
+void LiveClient::describeRTSNativeSDKFirstFrameCostAsync(const DescribeRTSNativeSDKFirstFrameCostRequest& request, const DescribeRTSNativeSDKFirstFrameCostAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRTSNativeSDKFirstFrameCost(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LiveClient::DescribeRTSNativeSDKFirstFrameCostOutcomeCallable LiveClient::describeRTSNativeSDKFirstFrameCostCallable(const DescribeRTSNativeSDKFirstFrameCostRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRTSNativeSDKFirstFrameCostOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRTSNativeSDKFirstFrameCost(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LiveClient::DescribeRTSNativeSDKFirstFrameDelayOutcome LiveClient::describeRTSNativeSDKFirstFrameDelay(const DescribeRTSNativeSDKFirstFrameDelayRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRTSNativeSDKFirstFrameDelayOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRTSNativeSDKFirstFrameDelayOutcome(DescribeRTSNativeSDKFirstFrameDelayResult(outcome.result()));
+	else
+		return DescribeRTSNativeSDKFirstFrameDelayOutcome(outcome.error());
+}
+
+void LiveClient::describeRTSNativeSDKFirstFrameDelayAsync(const DescribeRTSNativeSDKFirstFrameDelayRequest& request, const DescribeRTSNativeSDKFirstFrameDelayAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRTSNativeSDKFirstFrameDelay(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LiveClient::DescribeRTSNativeSDKFirstFrameDelayOutcomeCallable LiveClient::describeRTSNativeSDKFirstFrameDelayCallable(const DescribeRTSNativeSDKFirstFrameDelayRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRTSNativeSDKFirstFrameDelayOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRTSNativeSDKFirstFrameDelay(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LiveClient::DescribeRTSNativeSDKPlayFailStatusOutcome LiveClient::describeRTSNativeSDKPlayFailStatus(const DescribeRTSNativeSDKPlayFailStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRTSNativeSDKPlayFailStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRTSNativeSDKPlayFailStatusOutcome(DescribeRTSNativeSDKPlayFailStatusResult(outcome.result()));
+	else
+		return DescribeRTSNativeSDKPlayFailStatusOutcome(outcome.error());
+}
+
+void LiveClient::describeRTSNativeSDKPlayFailStatusAsync(const DescribeRTSNativeSDKPlayFailStatusRequest& request, const DescribeRTSNativeSDKPlayFailStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRTSNativeSDKPlayFailStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LiveClient::DescribeRTSNativeSDKPlayFailStatusOutcomeCallable LiveClient::describeRTSNativeSDKPlayFailStatusCallable(const DescribeRTSNativeSDKPlayFailStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRTSNativeSDKPlayFailStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRTSNativeSDKPlayFailStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LiveClient::DescribeRTSNativeSDKPlayTimeOutcome LiveClient::describeRTSNativeSDKPlayTime(const DescribeRTSNativeSDKPlayTimeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRTSNativeSDKPlayTimeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRTSNativeSDKPlayTimeOutcome(DescribeRTSNativeSDKPlayTimeResult(outcome.result()));
+	else
+		return DescribeRTSNativeSDKPlayTimeOutcome(outcome.error());
+}
+
+void LiveClient::describeRTSNativeSDKPlayTimeAsync(const DescribeRTSNativeSDKPlayTimeRequest& request, const DescribeRTSNativeSDKPlayTimeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRTSNativeSDKPlayTime(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LiveClient::DescribeRTSNativeSDKPlayTimeOutcomeCallable LiveClient::describeRTSNativeSDKPlayTimeCallable(const DescribeRTSNativeSDKPlayTimeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRTSNativeSDKPlayTimeOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRTSNativeSDKPlayTime(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+LiveClient::DescribeRTSNativeSDKVvDataOutcome LiveClient::describeRTSNativeSDKVvData(const DescribeRTSNativeSDKVvDataRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRTSNativeSDKVvDataOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRTSNativeSDKVvDataOutcome(DescribeRTSNativeSDKVvDataResult(outcome.result()));
+	else
+		return DescribeRTSNativeSDKVvDataOutcome(outcome.error());
+}
+
+void LiveClient::describeRTSNativeSDKVvDataAsync(const DescribeRTSNativeSDKVvDataRequest& request, const DescribeRTSNativeSDKVvDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRTSNativeSDKVvData(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+LiveClient::DescribeRTSNativeSDKVvDataOutcomeCallable LiveClient::describeRTSNativeSDKVvDataCallable(const DescribeRTSNativeSDKVvDataRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRTSNativeSDKVvDataOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRTSNativeSDKVvData(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 LiveClient::DescribeRoomKickoutUserListOutcome LiveClient::describeRoomKickoutUserList(const DescribeRoomKickoutUserListRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -7107,108 +7323,108 @@ LiveClient::GetEditingJobInfoOutcomeCallable LiveClient::getEditingJobInfoCallab
 	return task->get_future();
 }
 
-LiveClient::GetMessageAppOutcome LiveClient::getMessageApp(const GetMessageAppRequest &request) const
+LiveClient::GetMessageGroupOutcome LiveClient::getMessageGroup(const GetMessageGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return GetMessageAppOutcome(endpointOutcome.error());
+		return GetMessageGroupOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return GetMessageAppOutcome(GetMessageAppResult(outcome.result()));
+		return GetMessageGroupOutcome(GetMessageGroupResult(outcome.result()));
 	else
-		return GetMessageAppOutcome(outcome.error());
+		return GetMessageGroupOutcome(outcome.error());
 }
 
-void LiveClient::getMessageAppAsync(const GetMessageAppRequest& request, const GetMessageAppAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void LiveClient::getMessageGroupAsync(const GetMessageGroupRequest& request, const GetMessageGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, getMessageApp(request), context);
+		handler(this, request, getMessageGroup(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-LiveClient::GetMessageAppOutcomeCallable LiveClient::getMessageAppCallable(const GetMessageAppRequest &request) const
+LiveClient::GetMessageGroupOutcomeCallable LiveClient::getMessageGroupCallable(const GetMessageGroupRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<GetMessageAppOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<GetMessageGroupOutcome()>>(
 			[this, request]()
 			{
-			return this->getMessageApp(request);
+			return this->getMessageGroup(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
 	return task->get_future();
 }
 
-LiveClient::GetMessageGroupOutcome LiveClient::getMessageGroup(const GetMessageGroupRequest &request) const
+LiveClient::GetMessageTokenOutcome LiveClient::getMessageToken(const GetMessageTokenRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return GetMessageGroupOutcome(endpointOutcome.error());
+		return GetMessageTokenOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return GetMessageGroupOutcome(GetMessageGroupResult(outcome.result()));
+		return GetMessageTokenOutcome(GetMessageTokenResult(outcome.result()));
 	else
-		return GetMessageGroupOutcome(outcome.error());
+		return GetMessageTokenOutcome(outcome.error());
 }
 
-void LiveClient::getMessageGroupAsync(const GetMessageGroupRequest& request, const GetMessageGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void LiveClient::getMessageTokenAsync(const GetMessageTokenRequest& request, const GetMessageTokenAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, getMessageGroup(request), context);
+		handler(this, request, getMessageToken(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-LiveClient::GetMessageGroupOutcomeCallable LiveClient::getMessageGroupCallable(const GetMessageGroupRequest &request) const
+LiveClient::GetMessageTokenOutcomeCallable LiveClient::getMessageTokenCallable(const GetMessageTokenRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<GetMessageGroupOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<GetMessageTokenOutcome()>>(
 			[this, request]()
 			{
-			return this->getMessageGroup(request);
+			return this->getMessageToken(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
 	return task->get_future();
 }
 
-LiveClient::GetMessageTokenOutcome LiveClient::getMessageToken(const GetMessageTokenRequest &request) const
+LiveClient::GetMessageUserInfoOutcome LiveClient::getMessageUserInfo(const GetMessageUserInfoRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	if (!endpointOutcome.isSuccess())
-		return GetMessageTokenOutcome(endpointOutcome.error());
+		return GetMessageUserInfoOutcome(endpointOutcome.error());
 
 	auto outcome = makeRequest(endpointOutcome.result(), request);
 
 	if (outcome.isSuccess())
-		return GetMessageTokenOutcome(GetMessageTokenResult(outcome.result()));
+		return GetMessageUserInfoOutcome(GetMessageUserInfoResult(outcome.result()));
 	else
-		return GetMessageTokenOutcome(outcome.error());
+		return GetMessageUserInfoOutcome(outcome.error());
 }
 
-void LiveClient::getMessageTokenAsync(const GetMessageTokenRequest& request, const GetMessageTokenAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+void LiveClient::getMessageUserInfoAsync(const GetMessageUserInfoRequest& request, const GetMessageUserInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
 {
 	auto fn = [this, request, handler, context]()
 	{
-		handler(this, request, getMessageToken(request), context);
+		handler(this, request, getMessageUserInfo(request), context);
 	};
 
 	asyncExecute(new Runnable(fn));
 }
 
-LiveClient::GetMessageTokenOutcomeCallable LiveClient::getMessageTokenCallable(const GetMessageTokenRequest &request) const
+LiveClient::GetMessageUserInfoOutcomeCallable LiveClient::getMessageUserInfoCallable(const GetMessageUserInfoRequest &request) const
 {
-	auto task = std::make_shared<std::packaged_task<GetMessageTokenOutcome()>>(
+	auto task = std::make_shared<std::packaged_task<GetMessageUserInfoOutcome()>>(
 			[this, request]()
 			{
-			return this->getMessageToken(request);
+			return this->getMessageUserInfo(request);
 			});
 
 	asyncExecute(new Runnable([task]() { (*task)(); }));
@@ -7575,42 +7791,6 @@ LiveClient::ListMessageOutcomeCallable LiveClient::listMessageCallable(const Lis
 	return task->get_future();
 }
 
-LiveClient::ListMessageAppOutcome LiveClient::listMessageApp(const ListMessageAppRequest &request) const
-{
-	auto endpointOutcome = endpointProvider_->getEndpoint();
-	if (!endpointOutcome.isSuccess())
-		return ListMessageAppOutcome(endpointOutcome.error());
-
-	auto outcome = makeRequest(endpointOutcome.result(), request);
-
-	if (outcome.isSuccess())
-		return ListMessageAppOutcome(ListMessageAppResult(outcome.result()));
-	else
-		return ListMessageAppOutcome(outcome.error());
-}
-
-void LiveClient::listMessageAppAsync(const ListMessageAppRequest& request, const ListMessageAppAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
-{
-	auto fn = [this, request, handler, context]()
-	{
-		handler(this, request, listMessageApp(request), context);
-	};
-
-	asyncExecute(new Runnable(fn));
-}
-
-LiveClient::ListMessageAppOutcomeCallable LiveClient::listMessageAppCallable(const ListMessageAppRequest &request) const
-{
-	auto task = std::make_shared<std::packaged_task<ListMessageAppOutcome()>>(
-			[this, request]()
-			{
-			return this->listMessageApp(request);
-			});
-
-	asyncExecute(new Runnable([task]() { (*task)(); }));
-	return task->get_future();
-}
-
 LiveClient::ListMessageGroupOutcome LiveClient::listMessageGroup(const ListMessageGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -8403,78 +8583,6 @@ LiveClient::RollbackLiveStagingConfigOutcomeCallable LiveClient::rollbackLiveSta
 	return task->get_future();
 }
 
-LiveClient::SendMessageToGroupOutcome LiveClient::sendMessageToGroup(const SendMessageToGroupRequest &request) const
-{
-	auto endpointOutcome = endpointProvider_->getEndpoint();
-	if (!endpointOutcome.isSuccess())
-		return SendMessageToGroupOutcome(endpointOutcome.error());
-
-	auto outcome = makeRequest(endpointOutcome.result(), request);
-
-	if (outcome.isSuccess())
-		return SendMessageToGroupOutcome(SendMessageToGroupResult(outcome.result()));
-	else
-		return SendMessageToGroupOutcome(outcome.error());
-}
-
-void LiveClient::sendMessageToGroupAsync(const SendMessageToGroupRequest& request, const SendMessageToGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
-{
-	auto fn = [this, request, handler, context]()
-	{
-		handler(this, request, sendMessageToGroup(request), context);
-	};
-
-	asyncExecute(new Runnable(fn));
-}
-
-LiveClient::SendMessageToGroupOutcomeCallable LiveClient::sendMessageToGroupCallable(const SendMessageToGroupRequest &request) const
-{
-	auto task = std::make_shared<std::packaged_task<SendMessageToGroupOutcome()>>(
-			[this, request]()
-			{
-			return this->sendMessageToGroup(request);
-			});
-
-	asyncExecute(new Runnable([task]() { (*task)(); }));
-	return task->get_future();
-}
-
-LiveClient::SendMessageToGroupUsersOutcome LiveClient::sendMessageToGroupUsers(const SendMessageToGroupUsersRequest &request) const
-{
-	auto endpointOutcome = endpointProvider_->getEndpoint();
-	if (!endpointOutcome.isSuccess())
-		return SendMessageToGroupUsersOutcome(endpointOutcome.error());
-
-	auto outcome = makeRequest(endpointOutcome.result(), request);
-
-	if (outcome.isSuccess())
-		return SendMessageToGroupUsersOutcome(SendMessageToGroupUsersResult(outcome.result()));
-	else
-		return SendMessageToGroupUsersOutcome(outcome.error());
-}
-
-void LiveClient::sendMessageToGroupUsersAsync(const SendMessageToGroupUsersRequest& request, const SendMessageToGroupUsersAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
-{
-	auto fn = [this, request, handler, context]()
-	{
-		handler(this, request, sendMessageToGroupUsers(request), context);
-	};
-
-	asyncExecute(new Runnable(fn));
-}
-
-LiveClient::SendMessageToGroupUsersOutcomeCallable LiveClient::sendMessageToGroupUsersCallable(const SendMessageToGroupUsersRequest &request) const
-{
-	auto task = std::make_shared<std::packaged_task<SendMessageToGroupUsersOutcome()>>(
-			[this, request]()
-			{
-			return this->sendMessageToGroupUsers(request);
-			});
-
-	asyncExecute(new Runnable([task]() { (*task)(); }));
-	return task->get_future();
-}
-
 LiveClient::SendRoomNotificationOutcome LiveClient::sendRoomNotification(const SendRoomNotificationRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 54 - 0
live/src/model/CancelMuteAllGroupUserRequest.cc

@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/live/model/CancelMuteAllGroupUserRequest.h>
+
+using AlibabaCloud::Live::Model::CancelMuteAllGroupUserRequest;
+
+CancelMuteAllGroupUserRequest::CancelMuteAllGroupUserRequest()
+    : RpcServiceRequest("live", "2016-11-01", "CancelMuteAllGroupUser") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CancelMuteAllGroupUserRequest::~CancelMuteAllGroupUserRequest() {}
+
+std::string CancelMuteAllGroupUserRequest::getGroupId() const {
+  return groupId_;
+}
+
+void CancelMuteAllGroupUserRequest::setGroupId(const std::string &groupId) {
+  groupId_ = groupId;
+  setBodyParameter(std::string("GroupId"), groupId);
+}
+
+std::string CancelMuteAllGroupUserRequest::getAppId() const {
+  return appId_;
+}
+
+void CancelMuteAllGroupUserRequest::setAppId(const std::string &appId) {
+  appId_ = appId;
+  setBodyParameter(std::string("AppId"), appId);
+}
+
+std::string CancelMuteAllGroupUserRequest::getOperatorUserId() const {
+  return operatorUserId_;
+}
+
+void CancelMuteAllGroupUserRequest::setOperatorUserId(const std::string &operatorUserId) {
+  operatorUserId_ = operatorUserId;
+  setBodyParameter(std::string("OperatorUserId"), operatorUserId);
+}
+

+ 8 - 8
live/src/model/CreateMessageAppResult.cc → live/src/model/CancelMuteAllGroupUserResult.cc

@@ -14,38 +14,38 @@
  * limitations under the License.
  */
 
-#include <alibabacloud/live/model/CreateMessageAppResult.h>
+#include <alibabacloud/live/model/CancelMuteAllGroupUserResult.h>
 #include <json/json.h>
 
 using namespace AlibabaCloud::Live;
 using namespace AlibabaCloud::Live::Model;
 
-CreateMessageAppResult::CreateMessageAppResult() :
+CancelMuteAllGroupUserResult::CancelMuteAllGroupUserResult() :
 	ServiceResult()
 {}
 
-CreateMessageAppResult::CreateMessageAppResult(const std::string &payload) :
+CancelMuteAllGroupUserResult::CancelMuteAllGroupUserResult(const std::string &payload) :
 	ServiceResult()
 {
 	parse(payload);
 }
 
-CreateMessageAppResult::~CreateMessageAppResult()
+CancelMuteAllGroupUserResult::~CancelMuteAllGroupUserResult()
 {}
 
-void CreateMessageAppResult::parse(const std::string &payload)
+void CancelMuteAllGroupUserResult::parse(const std::string &payload)
 {
 	Json::Reader reader;
 	Json::Value value;
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
 	auto resultNode = value["Result"];
-	if(!resultNode["AppId"].isNull())
-		result_.appId = resultNode["AppId"].asString();
+	if(!resultNode["Success"].isNull())
+		result_.success = resultNode["Success"].asString() == "true";
 
 }
 
-CreateMessageAppResult::Result CreateMessageAppResult::getResult()const
+CancelMuteAllGroupUserResult::Result CancelMuteAllGroupUserResult::getResult()const
 {
 	return result_;
 }

+ 0 - 49
live/src/model/CreateMessageAppRequest.cc

@@ -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.
- */
-
-#include <alibabacloud/live/model/CreateMessageAppRequest.h>
-
-using AlibabaCloud::Live::Model::CreateMessageAppRequest;
-
-CreateMessageAppRequest::CreateMessageAppRequest()
-    : RpcServiceRequest("live", "2016-11-01", "CreateMessageApp") {
-  setMethod(HttpRequest::Method::Post);
-}
-
-CreateMessageAppRequest::~CreateMessageAppRequest() {}
-
-std::map<std::string, std::string> CreateMessageAppRequest::getExtension() const {
-  return extension_;
-}
-
-void CreateMessageAppRequest::setExtension(const std::map<std::string, std::string> &extension) {
-  extension_ = extension;
-  for(auto const &iter1 : extension) {
-    setBodyParameter(std::string("Extension") + "." + iter1.first, iter1.second);
-  }
-}
-
-std::map<std::string, std::string> CreateMessageAppRequest::getAppConfig() const {
-  return appConfig_;
-}
-
-void CreateMessageAppRequest::setAppConfig(const std::map<std::string, std::string> &appConfig) {
-  appConfig_ = appConfig;
-  for(auto const &iter1 : appConfig) {
-    setBodyParameter(std::string("AppConfig") + "." + iter1.first, iter1.second);
-  }
-}
-

+ 99 - 0
live/src/model/DescribeLiveStreamMetricDetailDataRequest.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/live/model/DescribeLiveStreamMetricDetailDataRequest.h>
+
+using AlibabaCloud::Live::Model::DescribeLiveStreamMetricDetailDataRequest;
+
+DescribeLiveStreamMetricDetailDataRequest::DescribeLiveStreamMetricDetailDataRequest()
+    : RpcServiceRequest("live", "2016-11-01", "DescribeLiveStreamMetricDetailData") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeLiveStreamMetricDetailDataRequest::~DescribeLiveStreamMetricDetailDataRequest() {}
+
+std::string DescribeLiveStreamMetricDetailDataRequest::getNextPageToken() const {
+  return nextPageToken_;
+}
+
+void DescribeLiveStreamMetricDetailDataRequest::setNextPageToken(const std::string &nextPageToken) {
+  nextPageToken_ = nextPageToken;
+  setParameter(std::string("NextPageToken"), nextPageToken);
+}
+
+std::string DescribeLiveStreamMetricDetailDataRequest::getStartTime() const {
+  return startTime_;
+}
+
+void DescribeLiveStreamMetricDetailDataRequest::setStartTime(const std::string &startTime) {
+  startTime_ = startTime;
+  setParameter(std::string("StartTime"), startTime);
+}
+
+std::string DescribeLiveStreamMetricDetailDataRequest::getProtocol() const {
+  return protocol_;
+}
+
+void DescribeLiveStreamMetricDetailDataRequest::setProtocol(const std::string &protocol) {
+  protocol_ = protocol;
+  setParameter(std::string("Protocol"), protocol);
+}
+
+std::string DescribeLiveStreamMetricDetailDataRequest::getAppName() const {
+  return appName_;
+}
+
+void DescribeLiveStreamMetricDetailDataRequest::setAppName(const std::string &appName) {
+  appName_ = appName;
+  setParameter(std::string("AppName"), appName);
+}
+
+std::string DescribeLiveStreamMetricDetailDataRequest::getStreamName() const {
+  return streamName_;
+}
+
+void DescribeLiveStreamMetricDetailDataRequest::setStreamName(const std::string &streamName) {
+  streamName_ = streamName;
+  setParameter(std::string("StreamName"), streamName);
+}
+
+std::string DescribeLiveStreamMetricDetailDataRequest::getDomainName() const {
+  return domainName_;
+}
+
+void DescribeLiveStreamMetricDetailDataRequest::setDomainName(const std::string &domainName) {
+  domainName_ = domainName;
+  setParameter(std::string("DomainName"), domainName);
+}
+
+std::string DescribeLiveStreamMetricDetailDataRequest::getEndTime() const {
+  return endTime_;
+}
+
+void DescribeLiveStreamMetricDetailDataRequest::setEndTime(const std::string &endTime) {
+  endTime_ = endTime;
+  setParameter(std::string("EndTime"), endTime);
+}
+
+long DescribeLiveStreamMetricDetailDataRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void DescribeLiveStreamMetricDetailDataRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+

+ 132 - 0
live/src/model/DescribeLiveStreamMetricDetailDataResult.cc

@@ -0,0 +1,132 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/live/model/DescribeLiveStreamMetricDetailDataResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Live;
+using namespace AlibabaCloud::Live::Model;
+
+DescribeLiveStreamMetricDetailDataResult::DescribeLiveStreamMetricDetailDataResult() :
+	ServiceResult()
+{}
+
+DescribeLiveStreamMetricDetailDataResult::DescribeLiveStreamMetricDetailDataResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeLiveStreamMetricDetailDataResult::~DescribeLiveStreamMetricDetailDataResult()
+{}
+
+void DescribeLiveStreamMetricDetailDataResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allStreamDetailDataNode = value["StreamDetailData"]["StreamData"];
+	for (auto valueStreamDetailDataStreamData : allStreamDetailDataNode)
+	{
+		StreamData streamDetailDataObject;
+		if(!valueStreamDetailDataStreamData["P2pTraffic"].isNull())
+			streamDetailDataObject.p2pTraffic = std::stol(valueStreamDetailDataStreamData["P2pTraffic"].asString());
+		if(!valueStreamDetailDataStreamData["RtmpBps"].isNull())
+			streamDetailDataObject.rtmpBps = std::stof(valueStreamDetailDataStreamData["RtmpBps"].asString());
+		if(!valueStreamDetailDataStreamData["HlsBps"].isNull())
+			streamDetailDataObject.hlsBps = std::stof(valueStreamDetailDataStreamData["HlsBps"].asString());
+		if(!valueStreamDetailDataStreamData["P2pBps"].isNull())
+			streamDetailDataObject.p2pBps = std::stof(valueStreamDetailDataStreamData["P2pBps"].asString());
+		if(!valueStreamDetailDataStreamData["StreamName"].isNull())
+			streamDetailDataObject.streamName = valueStreamDetailDataStreamData["StreamName"].asString();
+		if(!valueStreamDetailDataStreamData["P2pCount"].isNull())
+			streamDetailDataObject.p2pCount = std::stol(valueStreamDetailDataStreamData["P2pCount"].asString());
+		if(!valueStreamDetailDataStreamData["Traffic"].isNull())
+			streamDetailDataObject.traffic = std::stol(valueStreamDetailDataStreamData["Traffic"].asString());
+		if(!valueStreamDetailDataStreamData["RtmpCount"].isNull())
+			streamDetailDataObject.rtmpCount = std::stol(valueStreamDetailDataStreamData["RtmpCount"].asString());
+		if(!valueStreamDetailDataStreamData["RtsCount"].isNull())
+			streamDetailDataObject.rtsCount = std::stol(valueStreamDetailDataStreamData["RtsCount"].asString());
+		if(!valueStreamDetailDataStreamData["RtsBps"].isNull())
+			streamDetailDataObject.rtsBps = std::stof(valueStreamDetailDataStreamData["RtsBps"].asString());
+		if(!valueStreamDetailDataStreamData["Bps"].isNull())
+			streamDetailDataObject.bps = std::stof(valueStreamDetailDataStreamData["Bps"].asString());
+		if(!valueStreamDetailDataStreamData["HlsTraffic"].isNull())
+			streamDetailDataObject.hlsTraffic = std::stol(valueStreamDetailDataStreamData["HlsTraffic"].asString());
+		if(!valueStreamDetailDataStreamData["FlvBps"].isNull())
+			streamDetailDataObject.flvBps = std::stof(valueStreamDetailDataStreamData["FlvBps"].asString());
+		if(!valueStreamDetailDataStreamData["Count"].isNull())
+			streamDetailDataObject.count = std::stol(valueStreamDetailDataStreamData["Count"].asString());
+		if(!valueStreamDetailDataStreamData["RtsTraffic"].isNull())
+			streamDetailDataObject.rtsTraffic = std::stol(valueStreamDetailDataStreamData["RtsTraffic"].asString());
+		if(!valueStreamDetailDataStreamData["RtmpTraffic"].isNull())
+			streamDetailDataObject.rtmpTraffic = std::stol(valueStreamDetailDataStreamData["RtmpTraffic"].asString());
+		if(!valueStreamDetailDataStreamData["HlsCount"].isNull())
+			streamDetailDataObject.hlsCount = std::stol(valueStreamDetailDataStreamData["HlsCount"].asString());
+		if(!valueStreamDetailDataStreamData["AppName"].isNull())
+			streamDetailDataObject.appName = valueStreamDetailDataStreamData["AppName"].asString();
+		if(!valueStreamDetailDataStreamData["FlvCount"].isNull())
+			streamDetailDataObject.flvCount = std::stol(valueStreamDetailDataStreamData["FlvCount"].asString());
+		if(!valueStreamDetailDataStreamData["FlvTraffic"].isNull())
+			streamDetailDataObject.flvTraffic = std::stol(valueStreamDetailDataStreamData["FlvTraffic"].asString());
+		if(!valueStreamDetailDataStreamData["TimeStamp"].isNull())
+			streamDetailDataObject.timeStamp = valueStreamDetailDataStreamData["TimeStamp"].asString();
+		streamDetailData_.push_back(streamDetailDataObject);
+	}
+	if(!value["EndTime"].isNull())
+		endTime_ = value["EndTime"].asString();
+	if(!value["StartTime"].isNull())
+		startTime_ = value["StartTime"].asString();
+	if(!value["NextPageToken"].isNull())
+		nextPageToken_ = value["NextPageToken"].asString();
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["DomainName"].isNull())
+		domainName_ = value["DomainName"].asString();
+
+}
+
+std::string DescribeLiveStreamMetricDetailDataResult::getEndTime()const
+{
+	return endTime_;
+}
+
+int DescribeLiveStreamMetricDetailDataResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+std::string DescribeLiveStreamMetricDetailDataResult::getDomainName()const
+{
+	return domainName_;
+}
+
+std::string DescribeLiveStreamMetricDetailDataResult::getNextPageToken()const
+{
+	return nextPageToken_;
+}
+
+std::string DescribeLiveStreamMetricDetailDataResult::getStartTime()const
+{
+	return startTime_;
+}
+
+std::vector<DescribeLiveStreamMetricDetailDataResult::StreamData> DescribeLiveStreamMetricDetailDataResult::getStreamDetailData()const
+{
+	return streamDetailData_;
+}
+

+ 65 - 0
live/src/model/DescribeRTSNativeSDKFirstFrameCostRequest.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameCostRequest.h>
+
+using AlibabaCloud::Live::Model::DescribeRTSNativeSDKFirstFrameCostRequest;
+
+DescribeRTSNativeSDKFirstFrameCostRequest::DescribeRTSNativeSDKFirstFrameCostRequest()
+    : RpcServiceRequest("live", "2016-11-01", "DescribeRTSNativeSDKFirstFrameCost") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeRTSNativeSDKFirstFrameCostRequest::~DescribeRTSNativeSDKFirstFrameCostRequest() {}
+
+std::string DescribeRTSNativeSDKFirstFrameCostRequest::getEndTime() const {
+  return endTime_;
+}
+
+void DescribeRTSNativeSDKFirstFrameCostRequest::setEndTime(const std::string &endTime) {
+  endTime_ = endTime;
+  setParameter(std::string("EndTime"), endTime);
+}
+
+std::vector<DescribeRTSNativeSDKFirstFrameCostRequest::std::string> DescribeRTSNativeSDKFirstFrameCostRequest::getDomainNameList() const {
+  return domainNameList_;
+}
+
+void DescribeRTSNativeSDKFirstFrameCostRequest::setDomainNameList(const std::vector<DescribeRTSNativeSDKFirstFrameCostRequest::std::string> &domainNameList) {
+  domainNameList_ = domainNameList;
+  for(int dep1 = 0; dep1 != domainNameList.size(); dep1++) {
+    setParameter(std::string("DomainNameList") + "." + std::to_string(dep1 + 1), domainNameList[dep1]);
+  }
+}
+
+std::string DescribeRTSNativeSDKFirstFrameCostRequest::getStartTime() const {
+  return startTime_;
+}
+
+void DescribeRTSNativeSDKFirstFrameCostRequest::setStartTime(const std::string &startTime) {
+  startTime_ = startTime;
+  setParameter(std::string("StartTime"), startTime);
+}
+
+std::string DescribeRTSNativeSDKFirstFrameCostRequest::getDataInterval() const {
+  return dataInterval_;
+}
+
+void DescribeRTSNativeSDKFirstFrameCostRequest::setDataInterval(const std::string &dataInterval) {
+  dataInterval_ = dataInterval;
+  setParameter(std::string("DataInterval"), dataInterval);
+}
+

+ 88 - 0
live/src/model/DescribeRTSNativeSDKFirstFrameCostResult.cc

@@ -0,0 +1,88 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameCostResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Live;
+using namespace AlibabaCloud::Live::Model;
+
+DescribeRTSNativeSDKFirstFrameCostResult::DescribeRTSNativeSDKFirstFrameCostResult() :
+	ServiceResult()
+{}
+
+DescribeRTSNativeSDKFirstFrameCostResult::DescribeRTSNativeSDKFirstFrameCostResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeRTSNativeSDKFirstFrameCostResult::~DescribeRTSNativeSDKFirstFrameCostResult()
+{}
+
+void DescribeRTSNativeSDKFirstFrameCostResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allFirstFrameCostDataNode = value["FirstFrameCostData"]["Data"];
+	for (auto valueFirstFrameCostDataData : allFirstFrameCostDataNode)
+	{
+		Data firstFrameCostDataObject;
+		if(!valueFirstFrameCostDataData["TimeStamp"].isNull())
+			firstFrameCostDataObject.timeStamp = valueFirstFrameCostDataData["TimeStamp"].asString();
+		if(!valueFirstFrameCostDataData["Initialized"].isNull())
+			firstFrameCostDataObject.initialized = valueFirstFrameCostDataData["Initialized"].asString();
+		if(!valueFirstFrameCostDataData["Connected"].isNull())
+			firstFrameCostDataObject.connected = valueFirstFrameCostDataData["Connected"].asString();
+		if(!valueFirstFrameCostDataData["FinishGetStreamInfo"].isNull())
+			firstFrameCostDataObject.finishGetStreamInfo = valueFirstFrameCostDataData["FinishGetStreamInfo"].asString();
+		if(!valueFirstFrameCostDataData["FirstPacket"].isNull())
+			firstFrameCostDataObject.firstPacket = valueFirstFrameCostDataData["FirstPacket"].asString();
+		if(!valueFirstFrameCostDataData["FirstFrameComplete"].isNull())
+			firstFrameCostDataObject.firstFrameComplete = valueFirstFrameCostDataData["FirstFrameComplete"].asString();
+		firstFrameCostData_.push_back(firstFrameCostDataObject);
+	}
+	if(!value["DataInterval"].isNull())
+		dataInterval_ = value["DataInterval"].asString();
+	if(!value["StartTime"].isNull())
+		startTime_ = value["StartTime"].asString();
+	if(!value["EndTime"].isNull())
+		endTime_ = value["EndTime"].asString();
+
+}
+
+std::string DescribeRTSNativeSDKFirstFrameCostResult::getEndTime()const
+{
+	return endTime_;
+}
+
+std::vector<DescribeRTSNativeSDKFirstFrameCostResult::Data> DescribeRTSNativeSDKFirstFrameCostResult::getFirstFrameCostData()const
+{
+	return firstFrameCostData_;
+}
+
+std::string DescribeRTSNativeSDKFirstFrameCostResult::getDataInterval()const
+{
+	return dataInterval_;
+}
+
+std::string DescribeRTSNativeSDKFirstFrameCostResult::getStartTime()const
+{
+	return startTime_;
+}
+

+ 65 - 0
live/src/model/DescribeRTSNativeSDKFirstFrameDelayRequest.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameDelayRequest.h>
+
+using AlibabaCloud::Live::Model::DescribeRTSNativeSDKFirstFrameDelayRequest;
+
+DescribeRTSNativeSDKFirstFrameDelayRequest::DescribeRTSNativeSDKFirstFrameDelayRequest()
+    : RpcServiceRequest("live", "2016-11-01", "DescribeRTSNativeSDKFirstFrameDelay") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeRTSNativeSDKFirstFrameDelayRequest::~DescribeRTSNativeSDKFirstFrameDelayRequest() {}
+
+std::string DescribeRTSNativeSDKFirstFrameDelayRequest::getEndTime() const {
+  return endTime_;
+}
+
+void DescribeRTSNativeSDKFirstFrameDelayRequest::setEndTime(const std::string &endTime) {
+  endTime_ = endTime;
+  setParameter(std::string("EndTime"), endTime);
+}
+
+std::vector<DescribeRTSNativeSDKFirstFrameDelayRequest::std::string> DescribeRTSNativeSDKFirstFrameDelayRequest::getDomainNameList() const {
+  return domainNameList_;
+}
+
+void DescribeRTSNativeSDKFirstFrameDelayRequest::setDomainNameList(const std::vector<DescribeRTSNativeSDKFirstFrameDelayRequest::std::string> &domainNameList) {
+  domainNameList_ = domainNameList;
+  for(int dep1 = 0; dep1 != domainNameList.size(); dep1++) {
+    setParameter(std::string("DomainNameList") + "." + std::to_string(dep1 + 1), domainNameList[dep1]);
+  }
+}
+
+std::string DescribeRTSNativeSDKFirstFrameDelayRequest::getStartTime() const {
+  return startTime_;
+}
+
+void DescribeRTSNativeSDKFirstFrameDelayRequest::setStartTime(const std::string &startTime) {
+  startTime_ = startTime;
+  setParameter(std::string("StartTime"), startTime);
+}
+
+std::string DescribeRTSNativeSDKFirstFrameDelayRequest::getDataInterval() const {
+  return dataInterval_;
+}
+
+void DescribeRTSNativeSDKFirstFrameDelayRequest::setDataInterval(const std::string &dataInterval) {
+  dataInterval_ = dataInterval;
+  setParameter(std::string("DataInterval"), dataInterval);
+}
+

+ 80 - 0
live/src/model/DescribeRTSNativeSDKFirstFrameDelayResult.cc

@@ -0,0 +1,80 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/live/model/DescribeRTSNativeSDKFirstFrameDelayResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Live;
+using namespace AlibabaCloud::Live::Model;
+
+DescribeRTSNativeSDKFirstFrameDelayResult::DescribeRTSNativeSDKFirstFrameDelayResult() :
+	ServiceResult()
+{}
+
+DescribeRTSNativeSDKFirstFrameDelayResult::DescribeRTSNativeSDKFirstFrameDelayResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeRTSNativeSDKFirstFrameDelayResult::~DescribeRTSNativeSDKFirstFrameDelayResult()
+{}
+
+void DescribeRTSNativeSDKFirstFrameDelayResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allFrameDelayDataNode = value["FrameDelayData"]["Data"];
+	for (auto valueFrameDelayDataData : allFrameDelayDataNode)
+	{
+		Data frameDelayDataObject;
+		if(!valueFrameDelayDataData["TimeStamp"].isNull())
+			frameDelayDataObject.timeStamp = valueFrameDelayDataData["TimeStamp"].asString();
+		if(!valueFrameDelayDataData["FrameDelay"].isNull())
+			frameDelayDataObject.frameDelay = valueFrameDelayDataData["FrameDelay"].asString();
+		frameDelayData_.push_back(frameDelayDataObject);
+	}
+	if(!value["DataInterval"].isNull())
+		dataInterval_ = value["DataInterval"].asString();
+	if(!value["StartTime"].isNull())
+		startTime_ = value["StartTime"].asString();
+	if(!value["EndTime"].isNull())
+		endTime_ = value["EndTime"].asString();
+
+}
+
+std::string DescribeRTSNativeSDKFirstFrameDelayResult::getEndTime()const
+{
+	return endTime_;
+}
+
+std::string DescribeRTSNativeSDKFirstFrameDelayResult::getDataInterval()const
+{
+	return dataInterval_;
+}
+
+std::string DescribeRTSNativeSDKFirstFrameDelayResult::getStartTime()const
+{
+	return startTime_;
+}
+
+std::vector<DescribeRTSNativeSDKFirstFrameDelayResult::Data> DescribeRTSNativeSDKFirstFrameDelayResult::getFrameDelayData()const
+{
+	return frameDelayData_;
+}
+

+ 65 - 0
live/src/model/DescribeRTSNativeSDKPlayFailStatusRequest.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/live/model/DescribeRTSNativeSDKPlayFailStatusRequest.h>
+
+using AlibabaCloud::Live::Model::DescribeRTSNativeSDKPlayFailStatusRequest;
+
+DescribeRTSNativeSDKPlayFailStatusRequest::DescribeRTSNativeSDKPlayFailStatusRequest()
+    : RpcServiceRequest("live", "2016-11-01", "DescribeRTSNativeSDKPlayFailStatus") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeRTSNativeSDKPlayFailStatusRequest::~DescribeRTSNativeSDKPlayFailStatusRequest() {}
+
+std::string DescribeRTSNativeSDKPlayFailStatusRequest::getEndTime() const {
+  return endTime_;
+}
+
+void DescribeRTSNativeSDKPlayFailStatusRequest::setEndTime(const std::string &endTime) {
+  endTime_ = endTime;
+  setParameter(std::string("EndTime"), endTime);
+}
+
+std::vector<DescribeRTSNativeSDKPlayFailStatusRequest::std::string> DescribeRTSNativeSDKPlayFailStatusRequest::getDomainNameList() const {
+  return domainNameList_;
+}
+
+void DescribeRTSNativeSDKPlayFailStatusRequest::setDomainNameList(const std::vector<DescribeRTSNativeSDKPlayFailStatusRequest::std::string> &domainNameList) {
+  domainNameList_ = domainNameList;
+  for(int dep1 = 0; dep1 != domainNameList.size(); dep1++) {
+    setParameter(std::string("DomainNameList") + "." + std::to_string(dep1 + 1), domainNameList[dep1]);
+  }
+}
+
+std::string DescribeRTSNativeSDKPlayFailStatusRequest::getStartTime() const {
+  return startTime_;
+}
+
+void DescribeRTSNativeSDKPlayFailStatusRequest::setStartTime(const std::string &startTime) {
+  startTime_ = startTime;
+  setParameter(std::string("StartTime"), startTime);
+}
+
+std::string DescribeRTSNativeSDKPlayFailStatusRequest::getDataInterval() const {
+  return dataInterval_;
+}
+
+void DescribeRTSNativeSDKPlayFailStatusRequest::setDataInterval(const std::string &dataInterval) {
+  dataInterval_ = dataInterval;
+  setParameter(std::string("DataInterval"), dataInterval);
+}
+

+ 90 - 0
live/src/model/DescribeRTSNativeSDKPlayFailStatusResult.cc

@@ -0,0 +1,90 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/live/model/DescribeRTSNativeSDKPlayFailStatusResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Live;
+using namespace AlibabaCloud::Live::Model;
+
+DescribeRTSNativeSDKPlayFailStatusResult::DescribeRTSNativeSDKPlayFailStatusResult() :
+	ServiceResult()
+{}
+
+DescribeRTSNativeSDKPlayFailStatusResult::DescribeRTSNativeSDKPlayFailStatusResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeRTSNativeSDKPlayFailStatusResult::~DescribeRTSNativeSDKPlayFailStatusResult()
+{}
+
+void DescribeRTSNativeSDKPlayFailStatusResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allPlayFailStatusNode = value["PlayFailStatus"]["Data"];
+	for (auto valuePlayFailStatusData : allPlayFailStatusNode)
+	{
+		Data playFailStatusObject;
+		if(!valuePlayFailStatusData["TimeStamp"].isNull())
+			playFailStatusObject.timeStamp = valuePlayFailStatusData["TimeStamp"].asString();
+		if(!valuePlayFailStatusData["V20001"].isNull())
+			playFailStatusObject.v20001 = valuePlayFailStatusData["V20001"].asString();
+		if(!valuePlayFailStatusData["V20002"].isNull())
+			playFailStatusObject.v20002 = valuePlayFailStatusData["V20002"].asString();
+		if(!valuePlayFailStatusData["V20011"].isNull())
+			playFailStatusObject.v20011 = valuePlayFailStatusData["V20011"].asString();
+		if(!valuePlayFailStatusData["V20012"].isNull())
+			playFailStatusObject.v20012 = valuePlayFailStatusData["V20012"].asString();
+		if(!valuePlayFailStatusData["V20013"].isNull())
+			playFailStatusObject.v20013 = valuePlayFailStatusData["V20013"].asString();
+		if(!valuePlayFailStatusData["V20052"].isNull())
+			playFailStatusObject.v20052 = valuePlayFailStatusData["V20052"].asString();
+		playFailStatus_.push_back(playFailStatusObject);
+	}
+	if(!value["DataInterval"].isNull())
+		dataInterval_ = value["DataInterval"].asString();
+	if(!value["StartTime"].isNull())
+		startTime_ = value["StartTime"].asString();
+	if(!value["EndTime"].isNull())
+		endTime_ = value["EndTime"].asString();
+
+}
+
+std::vector<DescribeRTSNativeSDKPlayFailStatusResult::Data> DescribeRTSNativeSDKPlayFailStatusResult::getPlayFailStatus()const
+{
+	return playFailStatus_;
+}
+
+std::string DescribeRTSNativeSDKPlayFailStatusResult::getEndTime()const
+{
+	return endTime_;
+}
+
+std::string DescribeRTSNativeSDKPlayFailStatusResult::getDataInterval()const
+{
+	return dataInterval_;
+}
+
+std::string DescribeRTSNativeSDKPlayFailStatusResult::getStartTime()const
+{
+	return startTime_;
+}
+

+ 65 - 0
live/src/model/DescribeRTSNativeSDKPlayTimeRequest.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/live/model/DescribeRTSNativeSDKPlayTimeRequest.h>
+
+using AlibabaCloud::Live::Model::DescribeRTSNativeSDKPlayTimeRequest;
+
+DescribeRTSNativeSDKPlayTimeRequest::DescribeRTSNativeSDKPlayTimeRequest()
+    : RpcServiceRequest("live", "2016-11-01", "DescribeRTSNativeSDKPlayTime") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeRTSNativeSDKPlayTimeRequest::~DescribeRTSNativeSDKPlayTimeRequest() {}
+
+std::string DescribeRTSNativeSDKPlayTimeRequest::getEndTime() const {
+  return endTime_;
+}
+
+void DescribeRTSNativeSDKPlayTimeRequest::setEndTime(const std::string &endTime) {
+  endTime_ = endTime;
+  setParameter(std::string("EndTime"), endTime);
+}
+
+std::vector<DescribeRTSNativeSDKPlayTimeRequest::std::string> DescribeRTSNativeSDKPlayTimeRequest::getDomainNameList() const {
+  return domainNameList_;
+}
+
+void DescribeRTSNativeSDKPlayTimeRequest::setDomainNameList(const std::vector<DescribeRTSNativeSDKPlayTimeRequest::std::string> &domainNameList) {
+  domainNameList_ = domainNameList;
+  for(int dep1 = 0; dep1 != domainNameList.size(); dep1++) {
+    setParameter(std::string("DomainNameList") + "." + std::to_string(dep1 + 1), domainNameList[dep1]);
+  }
+}
+
+std::string DescribeRTSNativeSDKPlayTimeRequest::getStartTime() const {
+  return startTime_;
+}
+
+void DescribeRTSNativeSDKPlayTimeRequest::setStartTime(const std::string &startTime) {
+  startTime_ = startTime;
+  setParameter(std::string("StartTime"), startTime);
+}
+
+std::string DescribeRTSNativeSDKPlayTimeRequest::getDataInterval() const {
+  return dataInterval_;
+}
+
+void DescribeRTSNativeSDKPlayTimeRequest::setDataInterval(const std::string &dataInterval) {
+  dataInterval_ = dataInterval;
+  setParameter(std::string("DataInterval"), dataInterval);
+}
+

+ 82 - 0
live/src/model/DescribeRTSNativeSDKPlayTimeResult.cc

@@ -0,0 +1,82 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/live/model/DescribeRTSNativeSDKPlayTimeResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Live;
+using namespace AlibabaCloud::Live::Model;
+
+DescribeRTSNativeSDKPlayTimeResult::DescribeRTSNativeSDKPlayTimeResult() :
+	ServiceResult()
+{}
+
+DescribeRTSNativeSDKPlayTimeResult::DescribeRTSNativeSDKPlayTimeResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeRTSNativeSDKPlayTimeResult::~DescribeRTSNativeSDKPlayTimeResult()
+{}
+
+void DescribeRTSNativeSDKPlayTimeResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allPlayTimeDataNode = value["PlayTimeData"]["Data"];
+	for (auto valuePlayTimeDataData : allPlayTimeDataNode)
+	{
+		Data playTimeDataObject;
+		if(!valuePlayTimeDataData["TimeStamp"].isNull())
+			playTimeDataObject.timeStamp = valuePlayTimeDataData["TimeStamp"].asString();
+		if(!valuePlayTimeDataData["PlayTime"].isNull())
+			playTimeDataObject.playTime = valuePlayTimeDataData["PlayTime"].asString();
+		if(!valuePlayTimeDataData["StallTime"].isNull())
+			playTimeDataObject.stallTime = valuePlayTimeDataData["StallTime"].asString();
+		playTimeData_.push_back(playTimeDataObject);
+	}
+	if(!value["DataInterval"].isNull())
+		dataInterval_ = value["DataInterval"].asString();
+	if(!value["StartTime"].isNull())
+		startTime_ = value["StartTime"].asString();
+	if(!value["EndTime"].isNull())
+		endTime_ = value["EndTime"].asString();
+
+}
+
+std::string DescribeRTSNativeSDKPlayTimeResult::getEndTime()const
+{
+	return endTime_;
+}
+
+std::vector<DescribeRTSNativeSDKPlayTimeResult::Data> DescribeRTSNativeSDKPlayTimeResult::getPlayTimeData()const
+{
+	return playTimeData_;
+}
+
+std::string DescribeRTSNativeSDKPlayTimeResult::getDataInterval()const
+{
+	return dataInterval_;
+}
+
+std::string DescribeRTSNativeSDKPlayTimeResult::getStartTime()const
+{
+	return startTime_;
+}
+

+ 65 - 0
live/src/model/DescribeRTSNativeSDKVvDataRequest.cc

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/live/model/DescribeRTSNativeSDKVvDataRequest.h>
+
+using AlibabaCloud::Live::Model::DescribeRTSNativeSDKVvDataRequest;
+
+DescribeRTSNativeSDKVvDataRequest::DescribeRTSNativeSDKVvDataRequest()
+    : RpcServiceRequest("live", "2016-11-01", "DescribeRTSNativeSDKVvData") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeRTSNativeSDKVvDataRequest::~DescribeRTSNativeSDKVvDataRequest() {}
+
+std::string DescribeRTSNativeSDKVvDataRequest::getEndTime() const {
+  return endTime_;
+}
+
+void DescribeRTSNativeSDKVvDataRequest::setEndTime(const std::string &endTime) {
+  endTime_ = endTime;
+  setParameter(std::string("EndTime"), endTime);
+}
+
+std::vector<DescribeRTSNativeSDKVvDataRequest::std::string> DescribeRTSNativeSDKVvDataRequest::getDomainNameList() const {
+  return domainNameList_;
+}
+
+void DescribeRTSNativeSDKVvDataRequest::setDomainNameList(const std::vector<DescribeRTSNativeSDKVvDataRequest::std::string> &domainNameList) {
+  domainNameList_ = domainNameList;
+  for(int dep1 = 0; dep1 != domainNameList.size(); dep1++) {
+    setParameter(std::string("DomainNameList") + "." + std::to_string(dep1 + 1), domainNameList[dep1]);
+  }
+}
+
+std::string DescribeRTSNativeSDKVvDataRequest::getStartTime() const {
+  return startTime_;
+}
+
+void DescribeRTSNativeSDKVvDataRequest::setStartTime(const std::string &startTime) {
+  startTime_ = startTime;
+  setParameter(std::string("StartTime"), startTime);
+}
+
+std::string DescribeRTSNativeSDKVvDataRequest::getDataInterval() const {
+  return dataInterval_;
+}
+
+void DescribeRTSNativeSDKVvDataRequest::setDataInterval(const std::string &dataInterval) {
+  dataInterval_ = dataInterval;
+  setParameter(std::string("DataInterval"), dataInterval);
+}
+

+ 82 - 0
live/src/model/DescribeRTSNativeSDKVvDataResult.cc

@@ -0,0 +1,82 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/live/model/DescribeRTSNativeSDKVvDataResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Live;
+using namespace AlibabaCloud::Live::Model;
+
+DescribeRTSNativeSDKVvDataResult::DescribeRTSNativeSDKVvDataResult() :
+	ServiceResult()
+{}
+
+DescribeRTSNativeSDKVvDataResult::DescribeRTSNativeSDKVvDataResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeRTSNativeSDKVvDataResult::~DescribeRTSNativeSDKVvDataResult()
+{}
+
+void DescribeRTSNativeSDKVvDataResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allVvDataNode = value["VvData"]["Data"];
+	for (auto valueVvDataData : allVvDataNode)
+	{
+		Data vvDataObject;
+		if(!valueVvDataData["TimeStamp"].isNull())
+			vvDataObject.timeStamp = valueVvDataData["TimeStamp"].asString();
+		if(!valueVvDataData["VvTotal"].isNull())
+			vvDataObject.vvTotal = valueVvDataData["VvTotal"].asString();
+		if(!valueVvDataData["VvSuccess"].isNull())
+			vvDataObject.vvSuccess = valueVvDataData["VvSuccess"].asString();
+		vvData_.push_back(vvDataObject);
+	}
+	if(!value["DataInterval"].isNull())
+		dataInterval_ = value["DataInterval"].asString();
+	if(!value["StartTime"].isNull())
+		startTime_ = value["StartTime"].asString();
+	if(!value["EndTime"].isNull())
+		endTime_ = value["EndTime"].asString();
+
+}
+
+std::string DescribeRTSNativeSDKVvDataResult::getEndTime()const
+{
+	return endTime_;
+}
+
+std::vector<DescribeRTSNativeSDKVvDataResult::Data> DescribeRTSNativeSDKVvDataResult::getVvData()const
+{
+	return vvData_;
+}
+
+std::string DescribeRTSNativeSDKVvDataResult::getDataInterval()const
+{
+	return dataInterval_;
+}
+
+std::string DescribeRTSNativeSDKVvDataResult::getStartTime()const
+{
+	return startTime_;
+}
+

+ 0 - 60
live/src/model/GetMessageAppResult.cc

@@ -1,60 +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/live/model/GetMessageAppResult.h>
-#include <json/json.h>
-
-using namespace AlibabaCloud::Live;
-using namespace AlibabaCloud::Live::Model;
-
-GetMessageAppResult::GetMessageAppResult() :
-	ServiceResult()
-{}
-
-GetMessageAppResult::GetMessageAppResult(const std::string &payload) :
-	ServiceResult()
-{
-	parse(payload);
-}
-
-GetMessageAppResult::~GetMessageAppResult()
-{}
-
-void GetMessageAppResult::parse(const std::string &payload)
-{
-	Json::Reader reader;
-	Json::Value value;
-	reader.parse(payload, value);
-	setRequestId(value["RequestId"].asString());
-	auto resultNode = value["Result"];
-	if(!resultNode["AppId"].isNull())
-		result_.appId = resultNode["AppId"].asString();
-	if(!resultNode["CreateTime"].isNull())
-		result_.createTime = std::stol(resultNode["CreateTime"].asString());
-	if(!resultNode["Status"].isNull())
-		result_.status = std::stoi(resultNode["Status"].asString());
-	if(!resultNode["AppConfig"].isNull())
-		result_.appConfig = resultNode["AppConfig"].asString();
-	if(!resultNode["Extension"].isNull())
-		result_.extension = resultNode["Extension"].asString();
-
-}
-
-GetMessageAppResult::Result GetMessageAppResult::getResult()const
-{
-	return result_;
-}
-

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

@@ -50,6 +50,8 @@ void GetMessageGroupResult::parse(const std::string &payload)
 		result_.creatorId = resultNode["CreatorId"].asString();
 	if(!resultNode["Extension"].isNull())
 		result_.extension = resultNode["Extension"].asString();
+	if(!resultNode["IsMuteAll"].isNull())
+		result_.isMuteAll = resultNode["IsMuteAll"].asString() == "true";
 
 }
 

+ 10 - 10
live/src/model/GetMessageAppRequest.cc → live/src/model/GetMessageUserInfoRequest.cc

@@ -14,23 +14,23 @@
  * limitations under the License.
  */
 
-#include <alibabacloud/live/model/GetMessageAppRequest.h>
+#include <alibabacloud/live/model/GetMessageUserInfoRequest.h>
 
-using AlibabaCloud::Live::Model::GetMessageAppRequest;
+using AlibabaCloud::Live::Model::GetMessageUserInfoRequest;
 
-GetMessageAppRequest::GetMessageAppRequest()
-    : RpcServiceRequest("live", "2016-11-01", "GetMessageApp") {
+GetMessageUserInfoRequest::GetMessageUserInfoRequest()
+    : RpcServiceRequest("live", "2016-11-01", "GetMessageUserInfo") {
   setMethod(HttpRequest::Method::Post);
 }
 
-GetMessageAppRequest::~GetMessageAppRequest() {}
+GetMessageUserInfoRequest::~GetMessageUserInfoRequest() {}
 
-std::string GetMessageAppRequest::getAppId() const {
-  return appId_;
+std::string GetMessageUserInfoRequest::getCloudUid() const {
+  return cloudUid_;
 }
 
-void GetMessageAppRequest::setAppId(const std::string &appId) {
-  appId_ = appId;
-  setBodyParameter(std::string("AppId"), appId);
+void GetMessageUserInfoRequest::setCloudUid(const std::string &cloudUid) {
+  cloudUid_ = cloudUid;
+  setBodyParameter(std::string("CloudUid"), cloudUid);
 }
 

+ 10 - 8
live/src/model/SendMessageToGroupResult.cc → live/src/model/GetMessageUserInfoResult.cc

@@ -14,38 +14,40 @@
  * limitations under the License.
  */
 
-#include <alibabacloud/live/model/SendMessageToGroupResult.h>
+#include <alibabacloud/live/model/GetMessageUserInfoResult.h>
 #include <json/json.h>
 
 using namespace AlibabaCloud::Live;
 using namespace AlibabaCloud::Live::Model;
 
-SendMessageToGroupResult::SendMessageToGroupResult() :
+GetMessageUserInfoResult::GetMessageUserInfoResult() :
 	ServiceResult()
 {}
 
-SendMessageToGroupResult::SendMessageToGroupResult(const std::string &payload) :
+GetMessageUserInfoResult::GetMessageUserInfoResult(const std::string &payload) :
 	ServiceResult()
 {
 	parse(payload);
 }
 
-SendMessageToGroupResult::~SendMessageToGroupResult()
+GetMessageUserInfoResult::~GetMessageUserInfoResult()
 {}
 
-void SendMessageToGroupResult::parse(const std::string &payload)
+void GetMessageUserInfoResult::parse(const std::string &payload)
 {
 	Json::Reader reader;
 	Json::Value value;
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
 	auto resultNode = value["Result"];
-	if(!resultNode["MessageId"].isNull())
-		result_.messageId = resultNode["MessageId"].asString();
+	if(!resultNode["IsNewIMUser"].isNull())
+		result_.isNewIMUser = resultNode["IsNewIMUser"].asString() == "true";
+	if(!resultNode["HasOrderedIM"].isNull())
+		result_.hasOrderedIM = resultNode["HasOrderedIM"].asString() == "true";
 
 }
 
-SendMessageToGroupResult::Result SendMessageToGroupResult::getResult()const
+GetMessageUserInfoResult::Result GetMessageUserInfoResult::getResult()const
 {
 	return result_;
 }

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

@@ -25,6 +25,15 @@ JoinMessageGroupRequest::JoinMessageGroupRequest()
 
 JoinMessageGroupRequest::~JoinMessageGroupRequest() {}
 
+bool JoinMessageGroupRequest::getBroadCastStatistics() const {
+  return broadCastStatistics_;
+}
+
+void JoinMessageGroupRequest::setBroadCastStatistics(bool broadCastStatistics) {
+  broadCastStatistics_ = broadCastStatistics;
+  setBodyParameter(std::string("BroadCastStatistics"), broadCastStatistics ? "true" : "false");
+}
+
 std::string JoinMessageGroupRequest::getGroupId() const {
   return groupId_;
 }
@@ -52,3 +61,12 @@ void JoinMessageGroupRequest::setAppId(const std::string &appId) {
   setBodyParameter(std::string("AppId"), appId);
 }
 
+int JoinMessageGroupRequest::getBroadCastType() const {
+  return broadCastType_;
+}
+
+void JoinMessageGroupRequest::setBroadCastType(int broadCastType) {
+  broadCastType_ = broadCastType;
+  setBodyParameter(std::string("BroadCastType"), std::to_string(broadCastType));
+}
+

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

@@ -25,6 +25,15 @@ LeaveMessageGroupRequest::LeaveMessageGroupRequest()
 
 LeaveMessageGroupRequest::~LeaveMessageGroupRequest() {}
 
+bool LeaveMessageGroupRequest::getBroadCastStatistics() const {
+  return broadCastStatistics_;
+}
+
+void LeaveMessageGroupRequest::setBroadCastStatistics(bool broadCastStatistics) {
+  broadCastStatistics_ = broadCastStatistics;
+  setBodyParameter(std::string("BroadCastStatistics"), broadCastStatistics ? "true" : "false");
+}
+
 std::string LeaveMessageGroupRequest::getGroupId() const {
   return groupId_;
 }
@@ -52,3 +61,12 @@ void LeaveMessageGroupRequest::setAppId(const std::string &appId) {
   setBodyParameter(std::string("AppId"), appId);
 }
 
+int LeaveMessageGroupRequest::getBroadCastType() const {
+  return broadCastType_;
+}
+
+void LeaveMessageGroupRequest::setBroadCastType(int broadCastType) {
+  broadCastType_ = broadCastType;
+  setBodyParameter(std::string("BroadCastType"), std::to_string(broadCastType));
+}
+

+ 0 - 54
live/src/model/ListMessageAppRequest.cc

@@ -1,54 +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/live/model/ListMessageAppRequest.h>
-
-using AlibabaCloud::Live::Model::ListMessageAppRequest;
-
-ListMessageAppRequest::ListMessageAppRequest()
-    : RpcServiceRequest("live", "2016-11-01", "ListMessageApp") {
-  setMethod(HttpRequest::Method::Post);
-}
-
-ListMessageAppRequest::~ListMessageAppRequest() {}
-
-int ListMessageAppRequest::getSortType() const {
-  return sortType_;
-}
-
-void ListMessageAppRequest::setSortType(int sortType) {
-  sortType_ = sortType;
-  setBodyParameter(std::string("SortType"), std::to_string(sortType));
-}
-
-int ListMessageAppRequest::getPageNum() const {
-  return pageNum_;
-}
-
-void ListMessageAppRequest::setPageNum(int pageNum) {
-  pageNum_ = pageNum;
-  setBodyParameter(std::string("PageNum"), std::to_string(pageNum));
-}
-
-int ListMessageAppRequest::getPageSize() const {
-  return pageSize_;
-}
-
-void ListMessageAppRequest::setPageSize(int pageSize) {
-  pageSize_ = pageSize;
-  setBodyParameter(std::string("PageSize"), std::to_string(pageSize));
-}
-

+ 0 - 70
live/src/model/ListMessageAppResult.cc

@@ -1,70 +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/live/model/ListMessageAppResult.h>
-#include <json/json.h>
-
-using namespace AlibabaCloud::Live;
-using namespace AlibabaCloud::Live::Model;
-
-ListMessageAppResult::ListMessageAppResult() :
-	ServiceResult()
-{}
-
-ListMessageAppResult::ListMessageAppResult(const std::string &payload) :
-	ServiceResult()
-{
-	parse(payload);
-}
-
-ListMessageAppResult::~ListMessageAppResult()
-{}
-
-void ListMessageAppResult::parse(const std::string &payload)
-{
-	Json::Reader reader;
-	Json::Value value;
-	reader.parse(payload, value);
-	setRequestId(value["RequestId"].asString());
-	auto resultNode = value["Result"];
-	if(!resultNode["Total"].isNull())
-		result_.total = std::stoi(resultNode["Total"].asString());
-	if(!resultNode["HasMore"].isNull())
-		result_.hasMore = resultNode["HasMore"].asString() == "true";
-	auto allAppListNode = resultNode["AppList"]["appListItem"];
-	for (auto resultNodeAppListappListItem : allAppListNode)
-	{
-		Result::AppListItem appListItemObject;
-		if(!resultNodeAppListappListItem["AppId"].isNull())
-			appListItemObject.appId = resultNodeAppListappListItem["AppId"].asString();
-		if(!resultNodeAppListappListItem["CreateTime"].isNull())
-			appListItemObject.createTime = std::stol(resultNodeAppListappListItem["CreateTime"].asString());
-		if(!resultNodeAppListappListItem["Status"].isNull())
-			appListItemObject.status = std::stoi(resultNodeAppListappListItem["Status"].asString());
-		if(!resultNodeAppListappListItem["AppConfig"].isNull())
-			appListItemObject.appConfig = resultNodeAppListappListItem["AppConfig"].asString();
-		if(!resultNodeAppListappListItem["Extension"].isNull())
-			appListItemObject.extension = resultNodeAppListappListItem["Extension"].asString();
-		result_.appList.push_back(appListItemObject);
-	}
-
-}
-
-ListMessageAppResult::Result ListMessageAppResult::getResult()const
-{
-	return result_;
-}
-

+ 0 - 63
live/src/model/SendMessageToGroupRequest.cc

@@ -1,63 +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/live/model/SendMessageToGroupRequest.h>
-
-using AlibabaCloud::Live::Model::SendMessageToGroupRequest;
-
-SendMessageToGroupRequest::SendMessageToGroupRequest()
-    : RpcServiceRequest("live", "2016-11-01", "SendMessageToGroup") {
-  setMethod(HttpRequest::Method::Post);
-}
-
-SendMessageToGroupRequest::~SendMessageToGroupRequest() {}
-
-std::string SendMessageToGroupRequest::getData() const {
-  return data_;
-}
-
-void SendMessageToGroupRequest::setData(const std::string &data) {
-  data_ = data;
-  setBodyParameter(std::string("Data"), data);
-}
-
-std::string SendMessageToGroupRequest::getGroupId() const {
-  return groupId_;
-}
-
-void SendMessageToGroupRequest::setGroupId(const std::string &groupId) {
-  groupId_ = groupId;
-  setBodyParameter(std::string("GroupId"), groupId);
-}
-
-int SendMessageToGroupRequest::getType() const {
-  return type_;
-}
-
-void SendMessageToGroupRequest::setType(int type) {
-  type_ = type;
-  setBodyParameter(std::string("Type"), std::to_string(type));
-}
-
-std::string SendMessageToGroupRequest::getAppId() const {
-  return appId_;
-}
-
-void SendMessageToGroupRequest::setAppId(const std::string &appId) {
-  appId_ = appId;
-  setBodyParameter(std::string("AppId"), appId);
-}
-

+ 0 - 65
live/src/model/SendMessageToGroupUsersRequest.cc

@@ -1,65 +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/live/model/SendMessageToGroupUsersRequest.h>
-
-using AlibabaCloud::Live::Model::SendMessageToGroupUsersRequest;
-
-SendMessageToGroupUsersRequest::SendMessageToGroupUsersRequest()
-    : RpcServiceRequest("live", "2016-11-01", "SendMessageToGroupUsers") {
-  setMethod(HttpRequest::Method::Post);
-}
-
-SendMessageToGroupUsersRequest::~SendMessageToGroupUsersRequest() {}
-
-std::vector<SendMessageToGroupUsersRequest::std::string> SendMessageToGroupUsersRequest::getReceiverIdList() const {
-  return receiverIdList_;
-}
-
-void SendMessageToGroupUsersRequest::setReceiverIdList(const std::vector<SendMessageToGroupUsersRequest::std::string> &receiverIdList) {
-  receiverIdList_ = receiverIdList;
-  for(int dep1 = 0; dep1 != receiverIdList.size(); dep1++) {
-    setBodyParameter(std::string("ReceiverIdList") + "." + std::to_string(dep1 + 1), receiverIdList[dep1]);
-  }
-}
-
-std::string SendMessageToGroupUsersRequest::getGroupIdcopy() const {
-  return groupIdcopy_;
-}
-
-void SendMessageToGroupUsersRequest::setGroupIdcopy(const std::string &groupIdcopy) {
-  groupIdcopy_ = groupIdcopy;
-  setBodyParameter(std::string("GroupId-copy"), groupIdcopy);
-}
-
-std::string SendMessageToGroupUsersRequest::getGroupId() const {
-  return groupId_;
-}
-
-void SendMessageToGroupUsersRequest::setGroupId(const std::string &groupId) {
-  groupId_ = groupId;
-  setBodyParameter(std::string("GroupId"), groupId);
-}
-
-int SendMessageToGroupUsersRequest::getType() const {
-  return type_;
-}
-
-void SendMessageToGroupUsersRequest::setType(int type) {
-  type_ = type;
-  setBodyParameter(std::string("Type"), std::to_string(type));
-}
-

+ 0 - 52
live/src/model/SendMessageToGroupUsersResult.cc

@@ -1,52 +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/live/model/SendMessageToGroupUsersResult.h>
-#include <json/json.h>
-
-using namespace AlibabaCloud::Live;
-using namespace AlibabaCloud::Live::Model;
-
-SendMessageToGroupUsersResult::SendMessageToGroupUsersResult() :
-	ServiceResult()
-{}
-
-SendMessageToGroupUsersResult::SendMessageToGroupUsersResult(const std::string &payload) :
-	ServiceResult()
-{
-	parse(payload);
-}
-
-SendMessageToGroupUsersResult::~SendMessageToGroupUsersResult()
-{}
-
-void SendMessageToGroupUsersResult::parse(const std::string &payload)
-{
-	Json::Reader reader;
-	Json::Value value;
-	reader.parse(payload, value);
-	setRequestId(value["RequestId"].asString());
-	auto resultNode = value["Result"];
-	if(!resultNode["MessageId"].isNull())
-		result_.messageId = resultNode["MessageId"].asString();
-
-}
-
-SendMessageToGroupUsersResult::Result SendMessageToGroupUsersResult::getResult()const
-{
-	return result_;
-}
-