From 1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634 Mon Sep 17 00:00:00 2001 From: Zhineng Li Date: Sun, 12 Jul 2026 17:11:17 +0800 Subject: update APIs 20260712 --- data/zh_cn/live/2016-11-01/api-docs.php | 102644 ++++++++++++----------------- 1 file changed, 43142 insertions(+), 59502 deletions(-) (limited to 'data/zh_cn/live/2016-11-01') diff --git a/data/zh_cn/live/2016-11-01/api-docs.php b/data/zh_cn/live/2016-11-01/api-docs.php index 7cfd5a3..9ad9881 100644 --- a/data/zh_cn/live/2016-11-01/api-docs.php +++ b/data/zh_cn/live/2016-11-01/api-docs.php @@ -1,793 +1,340 @@ '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'live', - 'version' => '2016-11-01', - ], + 'info' => ['style' => 'RPC', 'product' => 'live', 'version' => '2016-11-01'], 'directories' => [ [ - 'id' => 387610, - 'title' => '域名管理', - 'type' => 'directory', 'children' => [ - 'AddLiveDomain', - 'AddLiveDomainPlayMapping', - 'DeleteLiveDomainPlayMapping', - 'AddLiveDomainMapping', - 'DeleteLiveDomain', - 'DeleteLiveDomainMapping', - 'DescribeLiveDomainMapping', - 'DescribeLiveDomainDetail', - 'DescribeLiveUserDomains', - 'StartLiveDomain', - 'StopLiveDomain', - 'DescribeLiveCertificateDetail', - 'DescribeLiveDomainCertificateInfo', - 'DescribeLiveCertificateList', - 'SetLiveDomainCertificate', - 'BatchDeleteLiveDomainConfigs', - 'BatchSetLiveDomainConfigs', - 'DescribeLiveDomainConfigs', - 'DescribeLiveDomainByCertificate', - 'DescribeLiveHttpsDomainList', - 'ModifyLiveDomainSchdmByProperty', - 'DescribeLiveUserTags', - 'VerifyLiveDomainOwner', - 'DescribeLiveVerifyContent', - 'ChangeLiveDomainResourceGroup', + 'AddLiveDomain', 'AddLiveDomainPlayMapping', 'DeleteLiveDomainPlayMapping', 'AddLiveDomainMapping', 'DeleteLiveDomain', 'DeleteLiveDomainMapping', 'DescribeLiveDomainMapping', 'DescribeLiveDomainDetail', 'DescribeLiveUserDomains', 'StartLiveDomain', 'StopLiveDomain', 'DescribeLiveCertificateDetail', 'DescribeLiveDomainCertificateInfo', 'DescribeLiveCertificateList', 'SetLiveDomainCertificate', 'BatchDeleteLiveDomainConfigs', 'BatchSetLiveDomainConfigs', 'DescribeLiveDomainConfigs', 'DescribeLiveDomainByCertificate', 'DescribeLiveHttpsDomainList', + 'ModifyLiveDomainSchdmByProperty', 'DescribeLiveUserTags', 'VerifyLiveDomainOwner', 'DescribeLiveVerifyContent', 'ChangeLiveDomainResourceGroup', ], + 'type' => 'directory', + 'title' => '域名管理', + 'id' => 13232, ], [ - 'id' => 387636, - 'title' => '直播预热', + 'children' => ['SetLiveStreamPreloadTasks', 'DescribeLiveStreamPreloadTasks', 'HotLiveRtcStream'], 'type' => 'directory', - 'children' => [ - 'SetLiveStreamPreloadTasks', - 'DescribeLiveStreamPreloadTasks', - 'HotLiveRtcStream', - ], + 'title' => '直播预热', + 'id' => 16526, ], [ - 'id' => 387640, - 'title' => '直播拉流', + 'children' => ['AddLivePullStreamInfoConfig', 'DescribeLivePullStreamConfig', 'DeleteLivePullStreamInfoConfig', 'SetLiveLazyPullStreamInfoConfig', 'DescribeLiveLazyPullStreamConfig', 'DeleteLiveLazyPullStreamInfoConfig', 'UpdateLivePullStreamInfoConfig'], 'type' => 'directory', - 'children' => [ - 'AddLivePullStreamInfoConfig', - 'DescribeLivePullStreamConfig', - 'DeleteLivePullStreamInfoConfig', - 'SetLiveLazyPullStreamInfoConfig', - 'DescribeLiveLazyPullStreamConfig', - 'DeleteLiveLazyPullStreamInfoConfig', - 'UpdateLivePullStreamInfoConfig', - ], + 'title' => '直播拉流', + 'id' => 16226, ], [ - 'id' => 387648, - 'title' => '直播流管理', + 'children' => ['DescribeLiveStreamsBlockList', 'DescribeLiveStreamsControlHistory', 'DescribeLiveStreamBitRateData', 'DescribeLiveStreamsOnlineList', 'DescribeLiveStreamsPublishList', 'ForbidLiveStream', 'ResumeLiveStream', 'DescribeLiveDomainOnlineUserNum', 'DescribeLiveDomainFrameRateAndBitRateData', 'DescribeLiveDomainLimit', 'DescribeLiveStreamState'], 'type' => 'directory', - 'children' => [ - 'DescribeLiveStreamsBlockList', - 'DescribeLiveStreamsControlHistory', - 'DescribeLiveStreamBitRateData', - 'DescribeLiveStreamsOnlineList', - 'DescribeLiveStreamsPublishList', - 'ForbidLiveStream', - 'ResumeLiveStream', - 'DescribeLiveDomainOnlineUserNum', - 'DescribeLiveDomainFrameRateAndBitRateData', - 'DescribeLiveDomainLimit', - 'DescribeLiveStreamState', - ], + 'title' => '直播流管理', + 'id' => 16234, ], [ - 'id' => 387660, - 'title' => '主备合流 ', + 'children' => ['DeleteLiveStreamMerge', 'AddLiveStreamMerge', 'DescribeLiveStreamMerge'], 'type' => 'directory', - 'children' => [ - 'DeleteLiveStreamMerge', - 'AddLiveStreamMerge', - 'DescribeLiveStreamMerge', - ], + 'title' => '主备合流 ', + 'id' => 16533, ], [ - 'id' => 387664, - 'title' => '直播延播', + 'children' => ['DeleteLiveDelayConfig', 'UpdateLiveDelayConfig', 'DescribeLiveDelayConfig', 'ListLiveDelayConfig', 'CreateLiveDelayConfig'], 'type' => 'directory', - 'children' => [ - 'DeleteLiveDelayConfig', - 'UpdateLiveDelayConfig', - 'DescribeLiveDelayConfig', - 'ListLiveDelayConfig', - 'CreateLiveDelayConfig', - ], + 'title' => '直播延播', + 'id' => 16537, ], [ - 'id' => 387670, - 'title' => '推流回调', + 'children' => ['SetLiveStreamsNotifyUrlConfig', 'DescribeLiveStreamsNotifyUrlConfig', 'DeleteLiveStreamsNotifyUrlConfig', 'DescribeLiveStreamsNotifyRecords'], 'type' => 'directory', - 'children' => [ - 'SetLiveStreamsNotifyUrlConfig', - 'DescribeLiveStreamsNotifyUrlConfig', - 'DeleteLiveStreamsNotifyUrlConfig', - 'DescribeLiveStreamsNotifyRecords', - ], + 'title' => '推流回调', + 'id' => 16246, ], [ - 'id' => 387675, - 'title' => '直播安全', + 'children' => ['DeleteLiveStreamBlock', 'SetLiveStreamBlock', 'DescribeStreamLocationBlock'], 'type' => 'directory', - 'children' => [ - 'DeleteLiveStreamBlock', - 'SetLiveStreamBlock', - 'DescribeStreamLocationBlock', - ], + 'title' => '直播安全', + 'id' => 16543, ], [ - 'id' => 387679, - 'title' => '直播时移', + 'children' => ['DescribeLiveShiftConfigs', 'OpenLiveShift', 'CloseLiveShift'], 'type' => 'directory', - 'children' => [ - 'DescribeLiveShiftConfigs', - 'OpenLiveShift', - 'CloseLiveShift', - ], + 'title' => '直播时移', + 'id' => 16473, ], [ - 'id' => 387683, - 'title' => '直播转码', + 'children' => ['AddLiveStreamTranscode', 'AddCustomLiveStreamTranscode', 'AddRtsLiveStreamTranscode', 'UpdateCustomLiveStreamTranscode', 'UpdateLiveStreamTranscode', 'UpdateRtsLiveStreamTranscode', 'DeleteLiveStreamTranscode', 'DescribeLiveStreamTranscodeInfo', 'AddTrancodeSEI'], 'type' => 'directory', - 'children' => [ - 'AddLiveStreamTranscode', - 'AddCustomLiveStreamTranscode', - 'AddRtsLiveStreamTranscode', - 'UpdateCustomLiveStreamTranscode', - 'UpdateLiveStreamTranscode', - 'UpdateRtsLiveStreamTranscode', - 'DeleteLiveStreamTranscode', - 'DescribeLiveStreamTranscodeInfo', - 'AddTrancodeSEI', - ], + 'title' => '直播转码', + 'id' => 16251, ], [ - 'id' => 387693, - 'title' => '直播录制存储至VOD', + 'children' => ['AddLiveRecordVodConfig', 'UpdateLiveRecordVodConfig', 'DeleteLiveRecordVodConfig', 'DescribeLiveRecordVodConfigs'], 'type' => 'directory', - 'children' => [ - 'AddLiveRecordVodConfig', - 'UpdateLiveRecordVodConfig', - 'DeleteLiveRecordVodConfig', - 'DescribeLiveRecordVodConfigs', - ], + 'title' => '直播录制存储至VOD', + 'id' => 16477, ], [ - 'id' => 387698, - 'title' => '直播录制存储至OSS', + 'children' => ['AddLiveAppRecordConfig', 'RealTimeRecordCommand', 'UpdateLiveAppRecordConfig', 'DeleteLiveAppRecordConfig', 'DeleteLiveStreamRecordIndexFiles', 'DescribeLiveRecordConfig', 'DescribeLiveStreamRecordContent', 'CreateLiveStreamRecordIndexFiles', 'DescribeLiveStreamRecordIndexFile', 'DescribeLiveStreamRecordIndexFiles', 'AddLiveRecordNotifyConfig', 'DeleteLiveRecordNotifyConfig', 'DescribeLiveRecordNotifyConfig', 'UpdateLiveRecordNotifyConfig', 'DescribeLiveRecordNotifyRecords'], 'type' => 'directory', - 'children' => [ - 'AddLiveAppRecordConfig', - 'RealTimeRecordCommand', - 'UpdateLiveAppRecordConfig', - 'DeleteLiveAppRecordConfig', - 'DeleteLiveStreamRecordIndexFiles', - 'DescribeLiveRecordConfig', - 'DescribeLiveStreamRecordContent', - 'CreateLiveStreamRecordIndexFiles', - 'DescribeLiveStreamRecordIndexFile', - 'DescribeLiveStreamRecordIndexFiles', - 'AddLiveRecordNotifyConfig', - 'DeleteLiveRecordNotifyConfig', - 'DescribeLiveRecordNotifyConfig', - 'UpdateLiveRecordNotifyConfig', - 'DescribeLiveRecordNotifyRecords', - ], + 'title' => '直播录制存储至OSS', + 'id' => 16261, ], [ - 'id' => 387714, - 'title' => '直播截图', + 'children' => ['AddLiveAppSnapshotConfig', 'DeleteLiveAppSnapshotConfig', 'DeleteSnapshotFiles', 'DescribeLiveSnapshotConfig', 'UpdateLiveAppSnapshotConfig', 'DescribeLiveStreamSnapshotInfo', 'DescribeLiveSnapshotNotifyConfig', 'DeleteLiveSnapshotNotifyConfig', 'AddLiveSnapshotNotifyConfig', 'UpdateLiveSnapshotNotifyConfig', 'SetSnapshotCallbackAuth', 'QuerySnapshotCallbackAuth', 'DeleteSnapshotCallbackAuth'], 'type' => 'directory', - 'children' => [ - 'AddLiveAppSnapshotConfig', - 'DeleteLiveAppSnapshotConfig', - 'DeleteSnapshotFiles', - 'DescribeLiveSnapshotConfig', - 'UpdateLiveAppSnapshotConfig', - 'DescribeLiveStreamSnapshotInfo', - 'DescribeLiveSnapshotNotifyConfig', - 'DeleteLiveSnapshotNotifyConfig', - 'AddLiveSnapshotNotifyConfig', - 'UpdateLiveSnapshotNotifyConfig', - 'SetSnapshotCallbackAuth', - 'QuerySnapshotCallbackAuth', - 'DeleteSnapshotCallbackAuth', - ], + 'title' => '直播截图', + 'id' => 16277, ], [ - 'id' => 387728, - 'title' => '直播封装', + 'children' => ['AddLivePackageConfig', 'UpdateLivePackageConfig', 'DescribeLivePackageConfig', 'DeleteLivePackageConfig'], 'type' => 'directory', - 'children' => [ - 'AddLivePackageConfig', - 'UpdateLivePackageConfig', - 'DescribeLivePackageConfig', - 'DeleteLivePackageConfig', - ], + 'title' => '直播封装', + 'id' => 16547, ], [ - 'id' => 387733, - 'title' => '直播审核', + 'children' => ['AddLiveSnapshotDetectPornConfig', 'AddLiveDetectNotifyConfig', 'DescribeLiveSnapshotDetectPornConfig', 'DescribeLiveDetectNotifyConfig', 'UpdateLiveSnapshotDetectPornConfig', 'UpdateLiveDetectNotifyConfig', 'DeleteLiveSnapshotDetectPornConfig', 'DeleteLiveDetectNotifyConfig', 'AddLiveAudioAuditConfig', 'AddLiveAudioAuditNotifyConfig', 'DeleteLiveAudioAuditConfig', 'DeleteLiveAudioAuditNotifyConfig', 'UpdateLiveAudioAuditNotifyConfig', 'UpdateLiveAudioAuditConfig', 'DescribeLiveAudioAuditConfig', 'DescribeLiveAudioAuditNotifyConfig'], 'type' => 'directory', - 'children' => [ - 'AddLiveSnapshotDetectPornConfig', - 'AddLiveDetectNotifyConfig', - 'DescribeLiveSnapshotDetectPornConfig', - 'DescribeLiveDetectNotifyConfig', - 'UpdateLiveSnapshotDetectPornConfig', - 'UpdateLiveDetectNotifyConfig', - 'DeleteLiveSnapshotDetectPornConfig', - 'DeleteLiveDetectNotifyConfig', - 'AddLiveAudioAuditConfig', - 'AddLiveAudioAuditNotifyConfig', - 'DeleteLiveAudioAuditConfig', - 'DeleteLiveAudioAuditNotifyConfig', - 'UpdateLiveAudioAuditNotifyConfig', - 'UpdateLiveAudioAuditConfig', - 'DescribeLiveAudioAuditConfig', - 'DescribeLiveAudioAuditNotifyConfig', - ], + 'title' => '直播审核', + 'id' => 16291, ], [ - 'id' => 387750, - 'title' => '全球加速', + 'children' => ['CreateLivePrivateLine', 'DeleteLivePrivateLine', 'DescribeLivePrivateLineAreas', 'DescribeLivePrivateLineAvailGA'], 'type' => 'directory', - 'children' => [ - 'CreateLivePrivateLine', - 'DeleteLivePrivateLine', - 'DescribeLivePrivateLineAreas', - 'DescribeLivePrivateLineAvailGA', - ], + 'title' => '全球加速', + 'id' => 16552, ], [ - 'id' => 387755, - 'title' => '直播延迟', + 'children' => ['DescribeLiveStreamDelayConfig', 'SetLiveStreamDelayConfig'], 'type' => 'directory', - 'children' => [ - 'DescribeLiveStreamDelayConfig', - 'SetLiveStreamDelayConfig', - ], + 'title' => '直播延迟', + 'id' => 16523, ], [ - 'id' => 387758, - 'title' => '监控统计', - 'type' => 'directory', 'children' => [ - 'DescribeLiveDomainBpsData', - 'DescribeLiveDomainTrafficData', - 'DescribeLiveStreamTranscodeMetricData', - 'DescribeLiveCenterStreamRateData', - 'DescribeLiveDomainBpsDataByLayer', - 'DescribeLiveDomainPushBpsData', - 'DescribeLiveDomainPushTrafficData', - 'DescribeLiveStreamPushMetricDetailData', - 'DescribeLiveDomainPublishErrorCode', - 'DescribeLiveUpVideoAudioInfo', - 'DescribeLiveDomainRealTimeBpsData', - 'DescribeLiveDomainRealTimeTrafficData', - 'DescribeLiveDomainRealTimeHttpCodeData', - 'DescribeLiveStreamHistoryUserNum', - 'DescribeLiveStreamCount', - 'DescribeLiveStreamTranscodeStreamNum', - 'DescribeLiveDomainPvUvData', - 'DescribeLiveTopDomainsByFlow', - 'DescribeLiveStreamsTotalCount', - 'DescribeLiveStreamMetricDetailData', - 'DescribeLiveStreamDetailFrameRateAndBitRateData', - 'DescribeLiveUserStreamMetricData', + 'DescribeLiveDomainBpsData', 'DescribeLiveDomainTrafficData', 'DescribeLiveStreamTranscodeMetricData', 'DescribeLiveCenterStreamRateData', 'DescribeLiveDomainBpsDataByLayer', 'DescribeLiveDomainPushBpsData', 'DescribeLiveDomainPushTrafficData', 'DescribeLiveStreamPushMetricDetailData', 'DescribeLiveDomainPublishErrorCode', 'DescribeLiveUpVideoAudioInfo', 'DescribeLiveDomainRealTimeBpsData', 'DescribeLiveDomainRealTimeTrafficData', 'DescribeLiveDomainRealTimeHttpCodeData', 'DescribeLiveStreamHistoryUserNum', 'DescribeLiveStreamCount', 'DescribeLiveStreamTranscodeStreamNum', 'DescribeLiveDomainPvUvData', 'DescribeLiveTopDomainsByFlow', 'DescribeLiveStreamsTotalCount', 'DescribeLiveStreamMetricDetailData', + 'DescribeLiveStreamDetailFrameRateAndBitRateData', 'DescribeLiveUserStreamMetricData', ], + 'type' => 'directory', + 'title' => '监控统计', + 'id' => 16308, ], [ - 'id' => 387781, - 'title' => '用量查询', + 'children' => ['DescribeLiveDomainRecordUsageData', 'DescribeLiveDomainSnapshotData', 'DescribeLiveDetectPornData', 'DescribeDomainUsageData', 'DescribeLivePushProxyUsageData', 'DescribeLiveRealtimeDeliveryAcc', 'DescribeLiveDomainTimeShiftData', 'DescribeLiveDomainStreamTranscodeData', 'DescribeLiveProducerUsageData', 'DescribeLiveDomainMonitoringUsageData', 'DescribeLiveDelayedStreamingUsage', 'DescribeLiveGrtnDuration', 'DescribeMeterLiveBypassDuration', 'DescribeLiveDrmUsageData', 'DescribeLiveRtcRecordUsageData'], 'type' => 'directory', - 'children' => [ - 'DescribeLiveDomainRecordUsageData', - 'DescribeLiveDomainSnapshotData', - 'DescribeLiveDetectPornData', - 'DescribeDomainUsageData', - 'DescribeLivePushProxyUsageData', - 'DescribeLiveRealtimeDeliveryAcc', - 'DescribeLiveDomainTimeShiftData', - 'DescribeLiveDomainStreamTranscodeData', - 'DescribeLiveProducerUsageData', - 'DescribeLiveDomainMonitoringUsageData', - 'DescribeLiveDelayedStreamingUsage', - 'DescribeLiveGrtnDuration', - 'DescribeMeterLiveBypassDuration', - 'DescribeLiveDrmUsageData', - 'DescribeLiveRtcRecordUsageData', - ], + 'title' => '用量查询', + 'id' => 16482, ], [ - 'id' => 387797, - 'title' => '云导播', - 'type' => 'directory', 'children' => [ [ - 'id' => 387798, + 'children' => ['CreateCaster', 'SetCasterConfig', 'DescribeCasterConfig', 'DescribeCasters', 'DescribeCasterStreamUrl', 'CopyCaster', 'StartCaster', 'StopCaster', 'DeleteCaster', 'RestartCaster', 'UpdateCasterResourceGroup'], + 'type' => 'directory', 'title' => '导播台管理', + 'id' => 16331, + ], + [ + 'children' => ['AddCasterVideoResource', 'DeleteCasterVideoResource', 'ModifyCasterVideoResource', 'DescribeCasterVideoResources'], 'type' => 'directory', - 'children' => [ - 'CreateCaster', - 'SetCasterConfig', - 'DescribeCasterConfig', - 'DescribeCasters', - 'DescribeCasterStreamUrl', - 'CopyCaster', - 'StartCaster', - 'StopCaster', - 'DeleteCaster', - 'RestartCaster', - 'UpdateCasterResourceGroup', - ], - ], - [ - 'id' => 387810, 'title' => '输入源媒体管理', - 'type' => 'directory', - 'children' => [ - 'AddCasterVideoResource', - 'DeleteCasterVideoResource', - 'ModifyCasterVideoResource', - 'DescribeCasterVideoResources', - ], + 'id' => 16342, ], [ - 'id' => 387815, - 'title' => '布局管理', + 'children' => ['AddCasterLayout', 'DeleteCasterLayout', 'ModifyCasterLayout', 'DescribeCasterLayouts'], 'type' => 'directory', - 'children' => [ - 'AddCasterLayout', - 'DeleteCasterLayout', - 'ModifyCasterLayout', - 'DescribeCasterLayouts', - ], + 'title' => '布局管理', + 'id' => 16347, ], [ - 'id' => 387820, - 'title' => '组件管理', + 'children' => ['AddCasterComponent', 'DeleteCasterComponent', 'ModifyCasterComponent', 'DescribeCasterComponents'], 'type' => 'directory', - 'children' => [ - 'AddCasterComponent', - 'DeleteCasterComponent', - 'ModifyCasterComponent', - 'DescribeCasterComponents', - ], + 'title' => '组件管理', + 'id' => 16352, ], [ - 'id' => 387825, - 'title' => '场景与音频管理', + 'children' => ['CopyCasterSceneConfig', 'DeleteCasterSceneConfig', 'UpdateCasterSceneConfig', 'SetCasterSceneConfig', 'DescribeCasterScenes', 'UpdateCasterSceneAudio', 'DescribeCasterSceneAudio', 'StartCasterScene', 'StopCasterScene'], 'type' => 'directory', - 'children' => [ - 'CopyCasterSceneConfig', - 'DeleteCasterSceneConfig', - 'UpdateCasterSceneConfig', - 'SetCasterSceneConfig', - 'DescribeCasterScenes', - 'UpdateCasterSceneAudio', - 'DescribeCasterSceneAudio', - 'StartCasterScene', - 'StopCasterScene', - ], + 'title' => '场景与音频管理', + 'id' => 16357, ], [ - 'id' => 387835, - 'title' => '通道管理', + 'children' => ['SetCasterChannel', 'DescribeCasterChannels'], 'type' => 'directory', - 'children' => [ - 'SetCasterChannel', - 'DescribeCasterChannels', - ], + 'title' => '通道管理', + 'id' => 16367, ], [ - 'id' => 387838, - 'title' => '备播管理', + 'children' => ['EffectCasterUrgent', 'EffectCasterVideoResource'], 'type' => 'directory', - 'children' => [ - 'EffectCasterUrgent', - 'EffectCasterVideoResource', - ], + 'title' => '备播管理', + 'id' => 16370, ], [ - 'id' => 387841, - 'title' => '新播单型导播台管理', + 'children' => ['AddShowIntoShowList', 'RemoveShowFromShowList', 'ModifyShowList', 'DescribeShowList', 'PlayChoosenShow', 'InitializeAutoShowListTask', 'DescribeAutoShowListTasks', 'EditShowAndReplace', 'GetEditingJobInfo', 'SetShowListBackground'], 'type' => 'directory', - 'children' => [ - 'AddShowIntoShowList', - 'RemoveShowFromShowList', - 'ModifyShowList', - 'DescribeShowList', - 'PlayChoosenShow', - 'InitializeAutoShowListTask', - 'DescribeAutoShowListTasks', - 'EditShowAndReplace', - 'GetEditingJobInfo', - 'SetShowListBackground', - ], + 'title' => '新播单型导播台管理', + 'id' => 16373, ], [ - 'id' => 387852, - 'title' => '虚拟演播厅管理', + 'children' => ['AddStudioLayout', 'DeleteStudioLayout', 'ModifyStudioLayout', 'DescribeStudioLayouts'], 'type' => 'directory', - 'children' => [ - 'AddStudioLayout', - 'DeleteStudioLayout', - 'ModifyStudioLayout', - 'DescribeStudioLayouts', - ], + 'title' => '虚拟演播厅管理', + 'id' => 16384, ], [ - 'id' => 387857, - 'title' => '(旧)播单型导播台', + 'children' => ['AddCasterEpisode', 'DeleteCasterEpisode', 'ModifyCasterEpisode', 'AddCasterEpisodeGroup', 'DeleteCasterEpisodeGroup', 'AddCasterEpisodeGroupContent', 'AddCasterProgram', 'DescribeCasterProgram', 'ModifyCasterProgram', 'DeleteCasterProgram', 'AddPlaylistItems', 'DeletePlaylistItems', 'ListPlaylistItems', 'EditPlaylist', 'DeletePlaylist', 'ListPlaylist', 'StartPlaylist', 'StopPlaylist'], 'type' => 'directory', - 'children' => [ - 'AddCasterEpisode', - 'DeleteCasterEpisode', - 'ModifyCasterEpisode', - 'AddCasterEpisodeGroup', - 'DeleteCasterEpisodeGroup', - 'AddCasterEpisodeGroupContent', - 'AddCasterProgram', - 'DescribeCasterProgram', - 'ModifyCasterProgram', - 'DeleteCasterProgram', - 'AddPlaylistItems', - 'DeletePlaylistItems', - 'ListPlaylistItems', - 'EditPlaylist', - 'DeletePlaylist', - 'ListPlaylist', - 'StartPlaylist', - 'StopPlaylist', - ], + 'title' => '(旧)播单型导播台', + 'id' => 16389, ], ], + 'type' => 'directory', + 'title' => '云导播', + 'id' => 16330, ], [ - 'id' => 387876, - 'title' => '云端合流', + 'children' => ['CreateMixStream', 'UpdateMixStream', 'DescribeMixStreamList', 'DeleteMixStream', 'GetAllCustomTemplates'], 'type' => 'directory', - 'children' => [ - 'CreateMixStream', - 'UpdateMixStream', - 'DescribeMixStreamList', - 'DeleteMixStream', - 'CreateCustomTemplate', - 'DeleteCustomTemplate', - 'GetCustomTemplate', - 'GetAllCustomTemplates', - ], + 'title' => '云端合流', + 'id' => 16408, ], [ - 'id' => 387885, - 'title' => '直播水印', + 'children' => ['AddLiveStreamWatermark', 'DeleteLiveStreamWatermark', 'UpdateLiveStreamWatermark', 'DynamicUpdateWaterMarkStreamRule', 'DescribeLiveStreamWatermarks', 'AddLiveStreamWatermarkRule', 'DeleteLiveStreamWatermarkRule', 'UpdateLiveStreamWatermarkRule', 'DescribeLiveStreamWatermarkRules'], 'type' => 'directory', - 'children' => [ - 'AddLiveStreamWatermark', - 'DeleteLiveStreamWatermark', - 'UpdateLiveStreamWatermark', - 'DynamicUpdateWaterMarkStreamRule', - 'DescribeLiveStreamWatermarks', - 'AddLiveStreamWatermarkRule', - 'DeleteLiveStreamWatermarkRule', - 'UpdateLiveStreamWatermarkRule', - 'DescribeLiveStreamWatermarkRules', - ], + 'title' => '直播水印', + 'id' => 16417, ], [ - 'id' => 387895, - 'title' => '边缘转码', + 'children' => ['ListEdgeTranscodeTemplate', 'GetEdgeTranscodeTemplate', 'CreateEdgeTranscodeJob', 'DeleteEdgeTranscodeJob', 'ListEdgeTranscodeJob', 'GetEdgeTranscodeJob', 'UpdateEdgeTranscodeJob', 'StartEdgeTranscodeJob', 'StopEdgeTranscodeJob'], 'type' => 'directory', - 'children' => [ - 'ListEdgeTranscodeTemplate', - 'GetEdgeTranscodeTemplate', - 'CreateEdgeTranscodeJob', - 'DeleteEdgeTranscodeJob', - 'ListEdgeTranscodeJob', - 'GetEdgeTranscodeJob', - 'UpdateEdgeTranscodeJob', - 'StartEdgeTranscodeJob', - 'StopEdgeTranscodeJob', - ], + 'title' => '边缘转码', + 'id' => 16644, ], [ - 'id' => 387905, - 'title' => '直播日志', + 'children' => ['EnableLiveRealtimeLogDelivery', 'DisableLiveRealtimeLogDelivery', 'ModifyLiveRealtimeLogDelivery', 'CreateLiveRealTimeLogDelivery', 'DeleteLiveRealtimeLogDelivery', 'DescribeLiveDomainRealtimeLogDelivery', 'ListLiveRealtimeLogDelivery', 'ListLiveRealtimeLogDeliveryDomains', 'ListLiveRealtimeLogDeliveryInfos', 'DescribeLivePushProxyLog', 'DeleteLiveRealTimeLogLogstore', 'DescribeLiveDomainLog'], 'type' => 'directory', - 'children' => [ - 'EnableLiveRealtimeLogDelivery', - 'DisableLiveRealtimeLogDelivery', - 'ModifyLiveRealtimeLogDelivery', - 'CreateLiveRealTimeLogDelivery', - 'DeleteLiveRealtimeLogDelivery', - 'DescribeLiveDomainRealtimeLogDelivery', - 'ListLiveRealtimeLogDelivery', - 'ListLiveRealtimeLogDeliveryDomains', - 'ListLiveRealtimeLogDeliveryInfos', - 'DescribeLivePushProxyLog', - 'DeleteLiveRealTimeLogLogstore', - 'DescribeLiveDomainLog', - ], + 'title' => '直播日志', + 'id' => 16434, ], [ - 'id' => 387918, - 'title' => '直播监播', + 'children' => ['CreateLiveStreamMonitor', 'UpdateLiveStreamMonitor', 'DescribeLiveStreamMonitorList', 'StartLiveStreamMonitor', 'StopLiveStreamMonitor', 'DeleteLiveStreamMonitor'], 'type' => 'directory', - 'children' => [ - 'CreateLiveStreamMonitor', - 'UpdateLiveStreamMonitor', - 'DescribeLiveStreamMonitorList', - 'StartLiveStreamMonitor', - 'StopLiveStreamMonitor', - 'DeleteLiveStreamMonitor', - ], + 'title' => '直播监播', + 'id' => 16427, ], [ - 'id' => 387925, - 'title' => '互动消息服务端接口', - 'type' => 'directory', 'children' => [ - 'GetMessageToken', - 'CreateMessageApp', - 'UpdateMessageApp', - 'ListMessageApp', - 'GetMessageApp', - 'QueryMessageApp', - 'DeleteMessageApp', - 'CreateMessageGroup', - 'UpdateMessageGroup', - 'ListMessageGroupUser', - 'ListMessageGroup', - 'GetMessageGroup', - 'JoinMessageGroup', - 'MuteAllGroupUser', - 'MuteGroupUser', - 'CancelMuteGroupUser', - 'CancelMuteAllGroupUser', - 'LeaveMessageGroup', - 'SendLike', - 'SendMessageToGroup', - 'SendMessageToGroupUsers', - 'ListMessage', - 'ListMessageGroupUserById', - 'BatchGetOnlineUsers', - 'ListMuteGroupUser', + 'GetMessageToken', 'CreateMessageApp', 'UpdateMessageApp', 'ListMessageApp', 'GetMessageApp', 'QueryMessageApp', 'DeleteMessageApp', 'CreateMessageGroup', 'UpdateMessageGroup', 'ListMessageGroupUser', 'ListMessageGroup', 'GetMessageGroup', 'JoinMessageGroup', 'MuteAllGroupUser', 'MuteGroupUser', 'CancelMuteGroupUser', 'CancelMuteAllGroupUser', 'LeaveMessageGroup', 'SendLike', 'SendMessageToGroup', + 'SendMessageToGroupUsers', 'ListMessage', 'ListMessageGroupUserById', 'BatchGetOnlineUsers', 'ListMuteGroupUser', ], + 'type' => 'directory', + 'title' => '互动消息服务端接口', + 'id' => 16497, ], [ - 'id' => 387951, - 'title' => '互动消息(新)', - 'type' => 'directory', 'children' => [ - 'CreateLiveMessageApp', - 'CreateLiveMessageGroup', - 'DescribeLiveMessageGroup', - 'ModifyLiveMessageGroup', - 'DeleteLiveMessageGroup', - 'ListLiveMessageGroups', - 'ListLiveMessageGroupByPage', - 'ModifyLiveMessageGroupBand', - 'DescribeLiveMessageGroupBand', - 'CheckLiveMessageUsersOnline', - 'CheckLiveMessageUsersInGroup', - 'ListLiveMessageGroupUsers', - 'ListLiveMessageGroupMessages', - 'UnbanLiveMessageGroup', - 'RecoverLiveMessageDeletedGroup', - 'BanLiveMessageGroup', - 'AddLiveMessageGroupBand', - 'RemoveLiveMessageGroupBand', - 'DeleteLiveMessageGroupMessage', - 'DeleteLiveMessageUserMessage', - 'SendLiveMessageGroup', - 'SendLiveMessageUser', - 'ListLiveMessageApps', - 'DescribeLiveMessageApp', - 'ModifyLiveMessageAppDisable', - 'ModifyLiveMessageAppAudit', - 'ModifyLiveMessageAppCallback', - 'KickLiveMessageGroupUser', - 'ModifyLiveMessageUserInfo', + 'CreateLiveMessageApp', 'CreateLiveMessageGroup', 'DescribeLiveMessageGroup', 'ModifyLiveMessageGroup', 'DeleteLiveMessageGroup', 'ListLiveMessageGroups', 'ListLiveMessageGroupByPage', 'ModifyLiveMessageGroupBand', 'DescribeLiveMessageGroupBand', 'CheckLiveMessageUsersOnline', 'CheckLiveMessageUsersInGroup', 'ListLiveMessageGroupUsers', 'ListLiveMessageGroupMessages', 'UnbanLiveMessageGroup', 'RecoverLiveMessageDeletedGroup', 'BanLiveMessageGroup', 'AddLiveMessageGroupBand', 'RemoveLiveMessageGroupBand', 'DeleteLiveMessageGroupMessage', 'DeleteLiveMessageUserMessage', + 'SendLiveMessageGroup', 'SendLiveMessageUser', 'ListLiveMessageApps', 'DescribeLiveMessageApp', 'ModifyLiveMessageAppDisable', 'ModifyLiveMessageAppAudit', 'ModifyLiveMessageAppCallback', 'KickLiveMessageGroupUser', 'ModifyLiveMessageUserInfo', ], + 'type' => 'directory', + 'title' => '互动消息(新)', + 'id' => 16557, ], [ - 'id' => 387981, - 'title' => '实时音视频', - 'type' => 'directory', 'children' => [ [ - 'id' => 387982, - 'title' => '云端录制 ', - 'type' => 'directory', - 'children' => [ - 'StartRtcCloudRecording', - 'UpdateRtcCloudRecording', - 'StopRtcCloudRecording', - 'DescribeRtcCloudRecordingFiles', - ], - ], - [ - 'id' => 387987, - 'title' => '频道管理', + 'children' => ['StartRtcCloudRecording', 'UpdateRtcCloudRecording', 'StopRtcCloudRecording', 'DescribeRtcCloudRecordingFiles'], 'type' => 'directory', - 'children' => [ - 'DescribeChannelParticipants', - 'DescribeChannelUsers', - 'RemoveTerminals', - 'CreateRTCWhipStreamAddress', - 'CreateRoomRealTimeStreamAddress', - 'DeleteChannel', - 'ListRTCLiveRooms', - ], + 'title' => '云端录制 ', + 'id' => 11367, ], [ - 'id' => 387995, - 'title' => '旁路转推', + 'children' => ['DescribeChannelParticipants', 'DescribeChannelUsers', 'RemoveTerminals', 'CreateRTCWhipStreamAddress', 'CreateRoomRealTimeStreamAddress', 'ListRTCLiveRooms'], 'type' => 'directory', - 'children' => [ - 'StartLiveMPUTask', - 'UpdateLiveMPUTask', - 'StopLiveMPUTask', - 'ListRtcMPUTaskDetail', - 'SetLiveMpuTaskSei', - ], + 'title' => '频道管理', + 'id' => 11360, ], [ - 'id' => 388001, - 'title' => '事件回调', + 'children' => ['StartLiveMPUTask', 'UpdateLiveMPUTask', 'StopLiveMPUTask', 'ListRtcMPUTaskDetail', 'SetLiveMpuTaskSei'], 'type' => 'directory', - 'children' => [ - 'CreateEventSub', - 'ListEventSub', - 'ListEventSubEvent', - 'UpdateEventSub', - 'DeleteEventSub', - 'CreateRtcMPUEventSub', - 'UpdateRtcMPUEventSub', - 'DeleteRtcMPUEventSub', - 'DescribeRtcMPUEventSub', - 'ListRtcMPUEventSubRecord', - ], + 'title' => '旁路转推', + 'id' => 16594, ], [ - 'id' => 388012, - 'title' => '质量数据', + 'children' => ['CreateEventSub', 'ListEventSub', 'ListEventSubEvent', 'UpdateEventSub', 'DeleteEventSub', 'CreateRtcMPUEventSub', 'UpdateRtcMPUEventSub', 'DeleteRtcMPUEventSub', 'DescribeRtcMPUEventSub', 'ListRtcMPUEventSubRecord'], 'type' => 'directory', - 'children' => [ - 'DescribeLiveInteractionMetricData', - ], + 'title' => '事件回调', + 'id' => 16600, ], [ - 'id' => 388014, - 'title' => '实时语音转文字/翻译', + 'children' => ['DescribeLiveInteractionMetricData'], 'type' => 'directory', - 'children' => [ - 'CreateRtcAsrTask', - 'QueryRtcAsrTasks', - 'StopRtcAsrTask', - 'DeleteRtcAsrTask', - ], + 'title' => '质量数据', + 'id' => 16611, ], ], + 'type' => 'directory', + 'title' => '实时音视频', + 'id' => 16587, ], [ - 'id' => 388019, - 'title' => '实时字幕', + 'children' => ['DeleteLiveAIProduceRules', 'DescribeLiveAIProduceRules', 'UpdateLiveAIProduceRules', 'AddLiveAIProduceRules', 'AddLiveAISubtitle', 'DeleteLiveAISubtitle', 'UpdateLiveAISubtitle', 'DescribeLiveAISubtitle'], 'type' => 'directory', - 'children' => [ - 'DeleteLiveAIProduceRules', - 'DescribeLiveAIProduceRules', - 'UpdateLiveAIProduceRules', - 'AddLiveAIProduceRules', - 'AddLiveAISubtitle', - 'DeleteLiveAISubtitle', - 'UpdateLiveAISubtitle', - 'DescribeLiveAISubtitle', - ], + 'title' => '实时字幕', + 'id' => 117442, ], [ - 'id' => 388028, - 'title' => '虚拟背景', + 'children' => ['CreateLiveAIStudio', 'DeleteLiveAIStudio', 'ModifyLiveAIStudio', 'DescribeLiveAIStudio'], 'type' => 'directory', - 'children' => [ - 'CreateLiveAIStudio', - 'DeleteLiveAIStudio', - 'ModifyLiveAIStudio', - 'DescribeLiveAIStudio', - ], + 'title' => '虚拟背景', + 'id' => 111884, ], [ - 'id' => 388033, - 'title' => '拉流转推 ', + 'children' => ['CreateLivePullToPush', 'UpdateLivePullToPush', 'DeleteLivePullToPush', 'DescribeLivePullToPush', 'DescribeLivePullToPushList', 'StopLivePullToPush', 'RestartLivePullToPush'], 'type' => 'directory', - 'children' => [ - 'CreateLivePullToPush', - 'UpdateLivePullToPush', - 'DeleteLivePullToPush', - 'DescribeLivePullToPush', - 'DescribeLivePullToPushList', - 'StopLivePullToPush', - 'RestartLivePullToPush', - ], + 'title' => '拉流转推 ', + 'id' => 16654, ], [ - 'id' => 388041, - 'title' => '双流灾备 ', + 'children' => ['SetLiveDomainMultiStreamConfig', 'SetLiveDomainMultiStreamOptimalMode', 'SetLiveDomainMultiStreamMaster', 'DescribeLiveDomainMultiStreamConfig', 'QueryLiveDomainMultiStreamList'], 'type' => 'directory', - 'children' => [ - 'SetLiveDomainMultiStreamConfig', - 'SetLiveDomainMultiStreamOptimalMode', - 'SetLiveDomainMultiStreamMaster', - 'DescribeLiveDomainMultiStreamConfig', - 'QueryLiveDomainMultiStreamList', - ], + 'title' => '双流灾备 ', + 'id' => 16662, ], [ - 'id' => 388047, - 'title' => '边缘脚本', + 'children' => ['DescribeLiveDomainStagingConfig', 'PublishLiveStagingConfigToProduction', 'RollbackLiveStagingConfig', 'SetLiveDomainStagingConfig', 'DeleteLiveSpecificStagingConfig'], 'type' => 'directory', - 'children' => [ - 'DescribeLiveDomainStagingConfig', - 'PublishLiveStagingConfigToProduction', - 'RollbackLiveStagingConfig', - 'SetLiveDomainStagingConfig', - 'DeleteLiveSpecificStagingConfig', - ], + 'title' => '边缘脚本', + 'id' => 16638, ], [ - 'id' => 388053, - 'title' => '工具箱', + 'children' => ['DescribeLiveIpInfo', 'DescribeLiveStreamAuthChecking'], 'type' => 'directory', - 'children' => [ - 'DescribeLiveIpInfo', - 'DescribeLiveStreamAuthChecking', - ], + 'title' => '工具箱', + 'id' => 16530, ], [ - 'id' => 388056, - 'title' => '标签管理', + 'children' => ['TagLiveResources', 'UnTagLiveResources', 'ListLiveTagResources', 'DescribeLiveTagResources'], 'type' => 'directory', - 'children' => [ - 'TagLiveResources', - 'UnTagLiveResources', - 'ListLiveTagResources', - 'DescribeLiveTagResources', - ], + 'title' => '标签管理', + 'id' => 381743, ], [ - 'id' => 388061, - 'title' => '其他', - 'type' => 'directory', 'children' => [ [ - 'id' => 388062, + 'children' => ['AddLiveCenterTransfer', 'UpdateLiveCenterTransfer', 'DescribeLiveCenterTransfer', 'DeleteLiveCenterTransfer'], + 'type' => 'directory', 'title' => '中心转推', + 'id' => 282776, + ], + [ + 'children' => ['CreateRtcAsrTask', 'QueryRtcAsrTasks', 'StopRtcAsrTask', 'DeleteRtcAsrTask'], 'type' => 'directory', - 'children' => [ - 'AddLiveCenterTransfer', - 'UpdateLiveCenterTransfer', - 'DescribeLiveCenterTransfer', - 'DeleteLiveCenterTransfer', - ], + 'title' => '实时语音转文字/翻译', + 'id' => 16613, ], [ - 'id' => 388067, - 'title' => '边缘转推', + 'children' => ['DescribeLiveEdgeTransfer', 'DeleteLiveEdgeTransfer', 'SetLiveEdgeTransfer'], 'type' => 'directory', - 'children' => [ - 'DescribeLiveEdgeTransfer', - 'DeleteLiveEdgeTransfer', - 'SetLiveEdgeTransfer', - ], + 'title' => '边缘转推', + 'id' => 282781, ], 'DescribeLiveUserBillPrediction', 'DescribeRTSNativeSDKFirstFrameCost', @@ -805,340 +352,164 @@ 'DescribeRtcCloudTranscode', 'StartRtcCloudTranscode', 'StopRtcCloudTranscode', + 'CreateCustomTemplate', + 'DeleteChannel', + 'DeleteCustomTemplate', + 'GetCustomTemplate', ], + 'type' => 'directory', + 'title' => '其他', + 'id' => 64631, ], ], 'components' => [ - 'schemas' => [ - 'AppInfoDTO' => [ - 'title' => 'A short description of struct', - 'description' => '应用信息', - 'type' => 'object', - 'properties' => [ - 'Platforms' => [ - 'title' => '应用包含的平台信息列表', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'title' => '平台类型', - 'type' => 'integer', - 'format' => 'int64', - ], - 'LicenseItemIds' => [ - 'title' => '授权列表', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - 'example' => '授权itemId', - ], - ], - 'PkgSignature' => [ - 'title' => '包签名', - 'type' => 'string', - ], - 'PlatformType' => [ - 'title' => '平台类型', - 'type' => 'integer', - 'format' => 'int64', - ], - 'ItemId' => [ - 'title' => '平台标志', - 'type' => 'string', - ], - 'PkgName' => [ - 'title' => '包名', - 'type' => 'string', - ], - ], - ], - ], - 'GmtCreate' => [ - 'title' => '创建时间', - 'type' => 'string', - ], - 'UserId' => [ - 'title' => '用户ID', - 'type' => 'integer', - 'format' => 'int64', - ], - 'CreationTime' => [ - 'title' => '创建时间', - 'type' => 'string', - ], - 'GmtModified' => [ - 'title' => '更新时间', - 'type' => 'string', - ], - 'ModificationTime' => [ - 'title' => '更新时间', - 'type' => 'string', - ], - 'ItemId' => [ - 'title' => '应用标识', - 'type' => 'string', - ], - 'AppType' => [ - 'title' => '应用类型', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1-普通应用,2-内嵌SDK.', - ], - 'AppName' => [ - 'title' => '应用名称', - 'type' => 'string', - ], - ], - ], - 'LicenseInstanceAppDTO' => [ - 'title' => 'A short description of struct', - 'type' => 'object', - 'properties' => [ - 'ItemId' => [ - 'title' => 'itemId', - 'type' => 'string', - ], - 'UserId' => [ - 'title' => 'userId', - 'type' => 'integer', - 'format' => 'int64', - ], - 'BeginOn' => [ - 'title' => 'beginOn', - 'type' => 'string', - ], - 'ExpiredOn' => [ - 'title' => 'expiredOn', - 'type' => 'string', - ], - 'Status' => [ - 'title' => 'status', - 'type' => 'string', - ], - 'InstanceId' => [ - 'title' => 'instanceId', - 'type' => 'string', - ], - 'ContractNo' => [ - 'title' => 'contractNo', - 'type' => 'string', - ], - 'CreationTime' => [ - 'title' => 'creationTime', - 'type' => 'string', - ], - 'ModificationTime' => [ - 'title' => 'modificationTime', - 'type' => 'string', - ], - 'AppId' => [ - 'title' => 'appId', - 'type' => 'string', - ], - 'LicenseConfigs' => [ - 'title' => 'LicenseConfigDTOS', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'SubscriptionImp' => [ - 'title' => 'subscriptionImp', - 'type' => 'string', - ], - 'SubscriptionPkg' => [ - 'title' => 'subscriptionPkg', - 'type' => 'string', - ], - 'SdkId' => [ - 'title' => 'sdkId', - 'type' => 'integer', - 'format' => 'int32', - ], - 'BusinessType' => [ - 'title' => 'businessType', - 'type' => 'string', - ], - 'SdkName' => [ - 'title' => 'sdkName', - 'type' => 'string', - ], - 'Subscription' => [ - 'title' => 'subscription', - 'type' => 'string', - ], - 'FeatureIds' => [ - 'title' => 'featureIds', - 'type' => 'string', - ], - 'IsTrial' => [ - 'title' => 'isTrial', - 'type' => 'boolean', - ], - ], - ], - 'required' => false, - ], - ], - ], - ], + 'schemas' => [], ], 'apis' => [ - 'AddLiveDomain' => [ - 'summary' => '调用该接口添加直播域名,一次只能提交一个域名。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddCasterComponent' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '106844', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'LiveDomainType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '域名业务类型。取值:'."\n" - ."\n" - .'- **liveVideo**:播流域名。如果选择DomainName(需要接入直播的域名)为播流域名时,则域名业务类型必须选择为liveVideo。'."\n" - .'- **liveEdge**:边缘推流域名。如果选择DomainName(需要接入直播的域名)为推流域名时,则域名业务类型必须选择为liveEdge。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'liveVideo', - 'enum' => [ - 'liveVideo', - 'liveEdge', - 'liveGrtnPub', - 'liveGrtnSub', - ], - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '需要接入直播的推流域名或播流域名。支持泛域名,以英文句号(.)开头。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'example.aliyundoc.com', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'>直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], [ - 'name' => 'Region', + 'name' => 'ComponentName', 'in' => 'query', - 'schema' => [ - 'description' => '直播域名单元化信息。取值:'."\n" - ."\n" - .'- **cn-beijing**:北京。'."\n" - .'- **cn-shanghai**:上海。'."\n" - .'- **cn-shenzhen**:深圳。'."\n" - .'- **cn-qingdao**:青岛。'."\n" - .'- **ap-southeast-1**:新加坡。'."\n" - .'- **eu-central-1**:德国。'."\n" - .'- **ap-northeast-1**:东京。'."\n" - .'- **ap-southeast-5**:雅加达。'."\n" - ."\n" - .'>Region(直播域名单元化信息)与Scope(加速区域)之间不存在相互限制。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'cn-beijing', - ], + 'schema' => ['description' => '组件名称。默认为组件ID。', 'type' => 'string', 'required' => false, 'example' => 'text01'], ], [ - 'name' => 'CheckUrl', + 'name' => 'LocationId', 'in' => 'query', - 'schema' => [ - 'description' => '健康检测URL。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://demo.aliyundoc.com/status.html', - ], + 'schema' => ['description' => '用于指定组件位置,每个位置至多设置一个组件,格式需符合“RC01~RC99”。'."\n" + ."\n" + .'> 组件类型为caption时,表示引用的视频源Location。', 'type' => 'string', 'required' => true, 'example' => 'RC01'], ], [ - 'name' => 'Scope', + 'name' => 'ComponentType', 'in' => 'query', - 'schema' => [ - 'description' => '加速区域。国际用户、中国站L3及以上用户设置有效。取值:'."\n" - ."\n" - .'- **domestic**(默认值):中国内地。'."\n" - .'- **overseas**:海外及港澳台加速。'."\n" - .'- **global**:全球加速。', - 'type' => 'string', - 'required' => false, - 'example' => 'domestic', - ], + 'schema' => ['description' => '组件类型。取值:'."\n" + ."\n" + .'- **text**:文字组件。如果选择text类型,必须同时设置请求参数TextLayerContent。'."\n" + ."\n" + .'- **image**:图片组件。如果选择image类型,必须同时设置请求参数ImageLayerContent。'."\n" + ."\n" + .'- **caption**:翻译字幕组件。如果选择caption类型,必须同时设置请求参数CaptionLayerContent。'."\n" + ."\n\n" + ."\n", 'type' => 'string', 'required' => true, 'example' => 'text'], ], [ - 'name' => 'TopLevelDomain', + 'name' => 'Effect', 'in' => 'query', - 'schema' => [ - 'description' => '顶级接入域。', - 'type' => 'string', - 'required' => false, - 'example' => 'learn.aliyundoc.com', - ], + 'schema' => ['description' => '组件显示的特效 。取值:'."\n" + .' '."\n" + .'- **none**(默认值):无。'."\n" + .'- **animateH**:水平滚动。'."\n" + .'- **animateV**:垂直滚动。', 'type' => 'string', 'required' => false, 'example' => 'animateH'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'ComponentLayer', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'title' => '', - 'description' => '资源组ID。关于资源组的更多信息,请参见[什么是资源组](~~2381067~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-aekzw******', - ], + 'schema' => ['description' => '该组件Layer的尺寸,布局等信息。设置元素说明如下:'."\n" + .'- **HeightNormalized**:高度归一化比例值。'."\n" + .'- **WidthNormalized**:宽度归一化比例值。'."\n" + .'- **PositionNormalized**:layer 元素的位置归一化值。'."\n" + .'- **PositionRefer**:元素的位置参考坐标值。'."\n" + ."\n" + .'JSON格式字符串,参数名采用首字母大写、驼峰格式。', 'type' => 'string', 'required' => true, 'example' => '{"HeightNormalized":"1","PositionRefer":"topRight","WidthNormalized":"0","PositionNormalized":["0.1","0.2"]}'], ], [ - 'name' => 'Tag', + 'name' => 'LayerOrder', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签列表。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签健。', - 'type' => 'string', - 'required' => false, - 'example' => 'TestKey', - ], - 'Value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'required' => false, - 'example' => 'TestValue'."\n", - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => '组件层叠次序。'."\n" + ."\n" + .'- cover:覆盖。'."\n" + .'- background:背景。', 'type' => 'string', 'required' => false, 'example' => 'cover'], + ], + [ + 'name' => 'TextLayerContent', + 'in' => 'query', + 'schema' => ['description' => 'Layer元素属性。元素属性说明如下:'."\n" + .'>当ComponentType为text时,本参数才可用且必传。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'- **SizeNormalized**:字体归一化大小,字体设置大小为“font_size/output_height”,取值范围`[0,1]`,如果系统根据归一化方式反计算出来的字体大小大于1024,取1024。'."\n" + .'- **BorderWidthNormalized**:文字边框宽度归一化值,该归一化值是基于文字的size来计算的,即“BorderWidth/FontSize”,取值范围`[0,1]`,如果根据归一化方式反计算出来的值超过16,取16,默认0。'."\n" + .'- **FontName**:字体名称,取值请参见**导播台字体说明**,默认楷体,“KaiTi”。'."\n" + .'- **BorderColor**:文字边框色彩,取值“0x000000-0xffffff”,默认“”,表示无效。'."\n" + .'- **Text**:文本内容,默认“”。'."\n" + .'- **Color**:文字色彩,默认“0xff0000”,红色。'."\n" + ."\n" + .'JSON格式字符串,参数名采用首字母大写,驼峰格式。'."\n", 'type' => 'string', 'required' => false, 'example' => '{"BorderWidthNormalized":"1","SizeNormalized":"0.2","Color":"0x000000","FontName":"KaiTi","BorderColor":"0x000000","Text":"hello world!"}'], + ], + [ + 'name' => 'ImageLayerContent', + 'in' => 'query', + 'schema' => ['description' => 'Layer元素属性。元素属性说明如下:'."\n" + ."\n" + .'> ComponentType为image时,该参数必传。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'MaterialId:媒资库素材ID。上传素材时设置的名称就是媒资库素材ID。'."\n" + ."\n" + .'JSON格式字符串,参数名采用首字母大写,驼峰格式。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '{"MaterialId":"6cf724c6ebfd4a59b5b3cec6f10d****"}'], + ], + [ + 'name' => 'CaptionLayerContent', + 'in' => 'query', + 'schema' => ['description' => 'Layer元素属性。元素属性说明如下:'."\n" + .'>当ComponentType为caption时,该参数必传。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'- **SizeNormalized**:字体归一化大小,字体设置大小为“font_size/output_height”,取值范围`[0,1]`,精确到小数点后两位,如果系统根据归一化方式反计算出来的字体大小大于**1024**,取**1024**。'."\n" + .'- **BorderWidthNormalized**:文字边框宽度归一化值,该归一化值是基于文字的size来计算的,即“BorderWidth/FontSize”,取值范围`[0,1]`,精确到小数点后两位,如果根据归一化方式反计算出来的值超过**16**,取**16**,默认**0**。'."\n" + .'- **FontName**:字体名称,取值请参见**云导播字体说明**,默认楷体,“KaiTi”。'."\n" + .'- **BorderColor**:文字边框色彩,取值“0x000000-0xffffff”,默认“”,表示无效。'."\n" + .'- **LocationId**: 翻译源的channelId。'."\n" + .'- **SourceLan**: 视频源的原始音频语言。En-英文,cn-中文,es-西班牙文,ru-俄文,默认为cn-中文。'."\n" + .'- **TargetLan**:视频源的目标音频语言。不设置表示语音识别,设置表示翻译。取值:en-英文,cn-中文,es-西班牙文,ru-俄文,cn-中文。'."\n" + .'- **ShowSourceLan**:是否显示源语言。取值:true-显示,false-不显示,默认为false。'."\n" + .'- **Truncation**:字幕是否可以被截断。取值:true-可以被截断,false-不可以被截断,默认为false。'."\n" + .'- **SourceLanPerLineWordCount**:源语言每行字数,默认20。'."\n" + .'- **TargetLanPerLineWordCount**:目标语言每行字数,默认20。'."\n" + .'- **SourceLanReservePages**:源语言保留行数,Truncation为true的时候生效,默认2行。'."\n" + .'- **TargetLanReservePages**:目标语言保留行数,Truncation为true的时候生效,默认2行。'."\n" + ."\n" + .'JSON格式字符串,参数名采用首字母大写,驼峰格式。'."\n", 'type' => 'string', 'required' => false, 'example' => '{"BorderWidthNormalized":0.01,"SizeNormalized":0.05,"Color":"0x000000","LocationId":"RV01","SourceLan":"cn","FontName":"KaiTi","BorderColor":"0xffffff"}'], + ], + [ + 'name' => 'HtmlLayerContent', + 'in' => 'query', + 'schema' => ['description' => 'H5组件配置。', 'type' => 'string', 'required' => false, 'example' => '{"htmlUrl":http://caster.example.com}'], ], ], 'responses' => [ @@ -1146,346 +517,325 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'ComponentId' => ['description' => '组件ID。可作为查询导播台组件、修改导播台组件、删除导播台组件的请求参数。', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'Specified DomainName is malformed.', - ], - [ - 'errorCode' => 'InvalidRegion.Malformed', - 'errorMessage' => 'Specified Region is malformed.', - ], - [ - 'errorCode' => 'InvalidSource.Content.Malformed', - 'errorMessage' => 'Specified source content is malformed.', - ], - [ - 'errorCode' => 'InvalidTypeContent.Mismatch', - 'errorMessage' => 'Specified source type does not math the specified source content.', - ], - [ - 'errorCode' => 'MissingSource.Content', - 'errorMessage' => 'Specified source content is mandatory for this action.', - ], - [ - 'errorCode' => 'MissingSource.Type', - 'errorMessage' => 'Specified source type is mandatory for this action.', - ], - [ - 'errorCode' => 'InvalidSource.Type.Malformed', - 'errorMessage' => 'Specified source type is malformed.', - ], - [ - 'errorCode' => 'InvalidSource.Priority.Malformed', - 'errorMessage' => 'Specified source priority is malformed.', - ], - [ - 'errorCode' => 'InvalidScope.Malformed', - 'errorMessage' => 'Specified Scope is malformed.', - ], - [ - 'errorCode' => 'SourceIp.Exceed', - 'errorMessage' => 'The Certificate you provided is malformed!', - ], - [ - 'errorCode' => 'InvalidCertificate', - 'errorMessage' => 'The Certificate you provided is malformed!', - ], - [ - 'errorCode' => 'InvalidCertificate.TooLong', - 'errorMessage' => 'The Certificate you provided is over the max length!', - ], - [ - 'errorCode' => 'InnerAddDomainDenied', - 'errorMessage' => 'Your account haven\'t bind aoneId, can not add domain.', - ], - [ - 'errorCode' => 'CheckSourceHealthFailed', - 'errorMessage' => 'sources ip or source domain check health failed,please input right source.', - ], - [ - 'errorCode' => 'ExtensiveAndAllBothExist', - 'errorMessage' => 'Extensive domain and the domain begins with \'all.\' can not exist at the same time.', - ], - [ - 'errorCode' => 'CdnTypeNotSupportExtensiveDomain', - 'errorMessage' => 'Extensive domain not supported for this cdn type.', - ], - [ - 'errorCode' => 'ExtensiveAndSpecificDomainConflict', - 'errorMessage' => 'Extensive domain and corresponding specific domain are mutually exclusive.', - ], - [ - 'errorCode' => 'InvalidDomainNameLevel', - 'errorMessage' => 'Domain name suffixed with alicdn.com only support third level.', - ], - [ - 'errorCode' => 'TopLevelDomain.NotFound', - 'errorMessage' => 'TopLevelDomain is not exist.', - ], - [ - 'errorCode' => 'EntityNotExists.ResourceGroup', - 'errorMessage' => 'The resource group does not exist.', - ], - [ - 'errorCode' => 'InvalidStatus.ResourceGroup', - 'errorMessage' => 'It\'s now allowed to do this operation because of the current status of resource-group.', - ], - [ - 'errorCode' => 'NotInternationRealIdentity', - 'errorMessage' => 'You need to do real name authentication when you use Chinese mainland resources.', - ], - [ - 'errorCode' => 'RecordCheckNotAvailable', - 'errorMessage' => 'Please try again later.', - ], - [ - 'errorCode' => 'IcpBlack', - 'errorMessage' => 'The domain is on the ICP blacklist.', - ], - [ - 'errorCode' => 'IspBlack', - 'errorMessage' => 'The domain is on the ISP blacklist.', - ], - [ - 'errorCode' => 'DomainNotRecordedAliyun', - 'errorMessage' => 'The domain not access Ali Cloud for the record please access.', - ], - [ - 'errorCode' => 'Abs.CheckUrl.Malformed', - 'errorMessage' => 'The CheckUrl you provided is malformed!', - ], - [ - 'errorCode' => 'DomainOwnerVerifyFail', - 'errorMessage' => 'Owner verification of the root domain failed.', - ], - [ - 'errorCode' => 'TopLevelDomain.Mismatch', - 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId.Malformed', - 'errorMessage' => 'Specified ResourceGroupId is malformed.', - ], - [ - 'errorCode' => 'DomainReserved', - 'errorMessage' => 'The root domain of your domain is reserved by another account.', - ], - [ - 'errorCode' => 'ExceedLimit', - 'errorMessage' => 'The number of domains has exceeded the limit.', - ], - [ - 'errorCode' => 'LockFail', - 'errorMessage' => 'Domain has been occupied.', - ], - ], - 403 => [ - [ - 'errorCode' => 'AccountException', - 'errorMessage' => 'Account exception. Please open ticket to make an appeal.', - ], - [ - 'errorCode' => 'EntityNotExist.ResourceGroup', - 'errorMessage' => 'The resource group does not exist.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidPositionNormalized.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PositionNormalized无效,请检查后重试。'], + ['errorCode' => 'DuplicateLocationID', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数LocationID重复,请检查后重试。'], ], [ - [ - 'errorCode' => 'InvalidUser', - 'errorMessage' => 'The user\'s account is invalid.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'CanvasNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Canvas不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n\\t\\"Code\\":\\"InternalError\\",\\n\\t\\"HostId\\":\\"live.aliyuncs.com\\",\\n\\t\\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n\\t\\"RequestId\\":\\"6EBD1AC4-C34D-4BE1-963E-B688A228BE31\\"\\n}\\n"},{"type":"xml","example":"\\r\\n\\r\\n\\t15C66C7B-671A-4297-9187-2C4477247A74\\r\\n","errorExample":"{\\n\\t\\"RequestId\\":\\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}\\n"}]', - 'title' => '添加直播域名', - 'description' => '- 添加直播域名之前,必须先开通视频直播服务。具体操作请参见[开通服务](~~195292~~)。'."\n" - .'- 添加新的域名时,必须先进行验证,再调用本接口添加域名。您可以选择DNS解析验证或文件验证。请参见[验证域名归属权](~~184466~~)。'."\n" - .'- 使用视频直播需要进行推流和播流,您需要分别添加推流域名和播流域名,一次只能提交一个域名。'."\n" - .'- 完成添加域名操作后,还需要对添加的域名进行CNAME解析,请参见[配置CNAME域名解析](~~84929~~)。'."\n" - ."\n" - .'- 在添加推流域名和播流域名后,您需要关联域名,才能使用视频直播服务,具体操作请参见[关联域名](~~199338~~)。'."\n" - ."\n" - .'>从2019年2月19日起,通过AddLiveDomain添加的域名不支持中心推流的方式,通过CDN API添加的新域名同样不支持中心推流。请使用边缘推流添加一个推流域名(调用AddLiveDomain,业务类型为liveEdge),一个播流域名(调用AddLiveDomain,业务类型为liveVideo),并做关联(调用[AddLiveDomainMapping](~~2847792~~)),2019年2月19日之前添加的域名不受影响。'."\n" - .'>'."\n" - ."\n" + 'title' => '添加导播台组件', + 'summary' => '添加导播台组件。', + 'description' => '请先创建导播台、了解导播台的布局列表后再调用本接口添加导播台组件。本接口目前支持添加图片、文字、字幕三类组件。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', + ."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '## 云导播字体说明'."\n" + .'|字体|FontName取值|'."\n" + .'|-----|-----|'."\n" + .'|楷体|KaiTi|'."\n" + .'|阿里巴巴普惠体-常规|AlibabaPuHuiTi-Regular|'."\n" + .'|阿里巴巴普惠体-粗体|AlibabaPuHuiTi-Bold|'."\n" + .'|阿里巴巴普惠体-细体|AlibabaPuHuiTi-Light|'."\n" + .'|思源黑体-常规|NotoSansHans-Regular|'."\n" + .'|思源黑体-粗体|NotoSansHans-Bold|'."\n" + .'|思源黑体-细体|NotoSansHans-Light|', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AddLiveDomainPlayMapping' => [ - 'summary' => '添加主播流域名和子播流域名映射。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterComponent'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterComponent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ComponentId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ComponentId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\"\\n}"}]', + ], + 'AddCasterEpisode' => [ + 'summary' => '添加导播台节目。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '106846', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => '地域id。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'ComponentId', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', + 'description' => '组件列表。按照元素顺序由下而上排列。'."\n" + ."\n" + .'如果您通过[AddCasterComponent接口](~~2848030~~)添加导播台组件,请查看AddCasterComponent接口调用返回的参数ComponentId值。'."\n" + ."\n" + .'- 当资源类型为**Component**时,参数有用且必传。'."\n" + .'- 当资源类型为**Resource**时,参数非必传,传入时表示组件与视频源绑定并同步切换。'."\n" + ."\n" + .'>N表示第几个组件ID。例如:**ComponentId.1**表示传入第一个组件ID;**ComponentId.2**表示传入第2个组件ID。', + 'type' => 'array', + 'items' => ['description' => '组件ID', 'type' => 'string', 'required' => false, 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****'], 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'example' => '["a2b8e671-2fe5-4642-a2ec-bf93880e****"]', + 'maxItems' => 10, ], ], [ - 'name' => 'PlayDomain', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '子播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.aliyundoc.com', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台**> **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], [ - 'name' => 'PullDomain', + 'name' => 'EpisodeType', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '节点类型。 取值:'."\n" + .' '."\n" + .'- **Resource**:视频源。如果选择Resource类型,必须同时设置请求参数ResourceId和SwitchType。'."\n" + .'- **Component**:组件。'."\n" + .' ', 'type' => 'string', 'required' => true, 'example' => 'Resource'], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + [ + 'name' => 'EpisodeName', + 'in' => 'query', + 'schema' => ['description' => '节目名称。', 'type' => 'string', 'required' => false, 'example' => 'episode_1'], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => ['description' => '视频源ID。 '."\n" + .'>当EpisodeType(节点类型)设为Resource时本参数有用且必传。'."\n" + .'> '."\n" + .'如果您通过[AddCasterVideoResource接口](~~2848020~~)添加导播台视频源,请查看AddCasterVideoResourcer接口调用返回的参数ResourceId值。', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '起始时间。 格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .' ', 'type' => 'string', 'required' => true, 'example' => '2016-06-29T08:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。 格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .' ', 'type' => 'string', 'required' => true, 'example' => '2016-06-29T09:10:00Z'], + ], + [ + 'name' => 'SwitchType', + 'in' => 'query', + 'schema' => ['description' => '切换策略。取值: '."\n" + .'>当EpisodeType(节点类型)设为Resource时本参数才有效。'."\n" + .'>'."\n" + .' '."\n" + .'- **TimeFirst**:时间优先 。'."\n" + .'- **ContentFirst**:内容优先。'."\n" + ."\n" + .'>更多关于视频源的信息,请参见[添加视频源](~~66094~~)。'."\n", 'type' => 'string', 'required' => true, 'example' => 'TimeFirst'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EpisodeId' => ['description' => '节目ID。可作为查询导播台节目单、修改导播台节目、删除导播台节目的请求参数。', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'SwitchTypeInvalid.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SwitchType无效,请检查后重试。'], + ['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数StartTime无效,请检查后重试。'], + ['errorCode' => 'IncorrectEndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数EndTime无效,请检查后重试。'], + ['errorCode' => 'EpisodeConflict.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '节目时间存在冲突,请检查后重试。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], + ['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '待操作的组件不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]', - 'title' => '添加主播放和子播放域名映射', - 'description' => '先调用[AddLiveDomain接口](~~88327~~)添加主播流域名和子播流域名,才能调用本接口添加主播流域名和子播流域名映射。'."\n" + 'title' => '添加导播台节目', + 'description' => '调用本接口必须提前获取导播台ID。导播台ID在创建导播台后生成。'."\n" ."\n" - .'## QPS限制'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" ."\n" - .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。'."\n" + ."\n" + .'## QPS权限'."\n" + .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteLiveDomainPlayMapping' => [ - 'summary' => '删除主播流域名和子播流域名的映射关系配置。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterEpisode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EpisodeId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"EpisodeId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\"\\n}"}]', + ], + 'AddCasterEpisodeGroup' => [ + 'summary' => '添加导播台节目列表。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '106928', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域id。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'PlayDomain', + 'name' => 'Item', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '子播流域名。', - 'type' => 'string', + 'description' => '节目列表。', + 'type' => 'array', + 'items' => [ + 'description' => '节目对象。', + 'type' => 'object', + 'properties' => [ + 'ItemName' => ['description' => '节目名称。', 'type' => 'string', 'required' => false, 'example' => 'Program 1'], + 'VodUrl' => ['description' => '点播文件地址。'."\n" + ."\n" + .'如果您通过[DescribeCasterVideoResources接口](~~2848023~~)查询导播台视频源,请查看DescribeCasterVideoResources接口调用返回的参数VodUrl值。'."\n" + ."\n" + .'> 当且仅当资源为文件视频,且视频文件未导入素材库时使用。
'."\n" + .'支持MP4、FLV、TS格式。', 'type' => 'string', 'required' => false, 'example' => 'http://learn.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****.flv?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****'], + ], + 'required' => false, + ], 'required' => true, - 'example' => 'example.aliyundoc.com', + 'maxItems' => 150, ], ], [ - 'name' => 'PullDomain', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '用户生成的请求token。用于保证请求的幂等性。'."\n" + ."\n" + .'> 由客户端生成该参数值,要保证在不同请求间唯一,最大值不超过64个ASCII字符。'."\n" + .'>', 'type' => 'string', 'required' => true, 'example' => '8751ad99-2ddb-4aac-ad44-84b21102****'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2018-03-06T19:00:00Z'], + ], + [ + 'name' => 'RepeatNum', + 'in' => 'query', + 'schema' => ['description' => '重复次数。取值:'."\n" + .'- **0**:不循环。'."\n" + .'- **-1**:无限循环。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0'], + ], + [ + 'name' => 'SideOutputUrl', + 'in' => 'query', + 'schema' => ['description' => '用户自定义导播台旁路输出地址对应的推流地址。'."\n" + ."\n" + .'若该参数为空,则默认使用阿里云自动生成的输出地址对应的推流地址。', 'type' => 'string', 'required' => true, 'example' => 'rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****'], + ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => ['description' => '用户回调地址。'."\n" + ."\n" + .'如果您通过[DescribeCasterConfig接口](~~2848011~~)查询导播台配置信息,请查看DescribeCasterConfig接口调用返回的参数CallbackUrl值。', 'type' => 'string', 'required' => true, 'example' => 'http://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****'], ], ], 'responses' => [ @@ -1493,72 +843,111 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'ItemIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ItemId' => [ + 'description' => '节目ID列表。', + 'type' => 'array', + 'items' => ['description' => '节目ID。', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc98****'], + ], + ], + 'description' => '', ], + 'ProgramId' => ['description' => '节目单ID。可作为删除导播台节目列表,创建或添加节目单项,删除节目单项,查询节目单项,编辑节目单,删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68X****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], ], + 'description' => '', ], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数StartTime无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n","errorExample":""}]', - 'title' => '删除播流域名的映射关系', - 'description' => '先添加主播流域名和子播流域名映射,才能调用本接口删除主播流域名和子播流域名的映射关系配置。使用API添加主播流域名和子播流域名映射,请参见[添加主播流域名和子播流域名映射](~~173091~~)。'."\n" + 'title' => '添加导播台节目列表', + 'description' => '先创建导播台和获取导播台配置信息,再调用本接口添加导播台节目列表。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" ."\n" .'## QPS限制'."\n" ."\n" - .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AddLiveDomainMapping' => [ - 'summary' => '添加直播域名播流域名和推流域名的映射关系配置。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterEpisodeGroup'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterEpisodeGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ItemIds\\": {\\n \\"ItemId\\": [\\n \\"21926b36-7dd2-4fde-ae25-51b5bc98****\\"\\n ]\\n },\\n \\"ProgramId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68X****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68X****\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t21926b36-7dd2-4fde-ae25-51b5bc98****\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ProgramId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68XX876\\",\\n \\"ItemIds\\": [\\n \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\",\\n \\"21926b36-7dd2-4fde-ae25-51b5bc98765t\\"\\n ]\\n}"}]', + ], + 'AddCasterEpisodeGroupContent' => [ + 'summary' => '添加导播台节目列表信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'readAndWrite', 'systemTags' => [ 'operationType' => 'create', - 'abilityTreeCode' => '106845', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'PushDomain', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '您的推流域名。域名类型为:**liveEdge**。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['description' => '地域id。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'PullDomain', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => '您的播流域名。域名类型为:**liveVideo**。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '用户生成的请求token。用于保证请求的幂等性。'."\n" + ."\n" + .'> 由客户端生成该参数值,要保证在不同请求间唯一,最大值不超过64个ASCII字符。', 'type' => 'string', 'required' => true, 'example' => '8751ad99-2ddb-4aac-ad44-84b21102****'], + ], + [ + 'name' => 'Content', + 'in' => 'query', + 'schema' => ['description' => '设置导播台节目属性。JSON字符串格式。参数采用首字母大写驼峰格式。属性信息说明如下:'."\n" + .'- **CallbackUrl**:用户回调地址。'."\n" + .'- **SideOutputUrl**: 用户自定义旁路输出地址。'."\n" + .'- **RepeatNum**:重复次数。0表示不循环,-1表示无限循环。'."\n" + .'- **StartTime**:起始时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'- **DomainName**:域名。'."\n" + .'- **Items**:节目列表。'."\n" + .' - **ItemName**:节目名称。'."\n" + .' - **VodUrl**:点播文件地址,当且仅当资源为文件视频,且视频文件未导入素材库时使用,支持MP4、FLV、TS格式。'."\n" + ."\n" + .' ', 'type' => 'string', 'required' => true, 'example' => '{"CallbackUrl":"http://example.aliyundoc.com/callBackLive","SideOutputUrl":"rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****","DomainName":"developer.aliyundoc.com ","StartTime":"2018-03-26T16:00:00Z","RepeatNum":-1,"Items":[{"ItemName":"program1","VodUrl":"http://learn.aliyundoc.com"},{"ItemName":"program2","VodUrl":"http://demo.aliyundoc.com"}]}'], ], ], 'responses' => [ @@ -1566,51 +955,72 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'ItemIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ItemId' => [ + 'description' => '节目ID列表。', + 'type' => 'array', + 'items' => ['description' => '节目ID。', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****'], + ], + ], + 'description' => '', ], + 'ProgramId' => ['description' => '节目单ID。可作为创建或添加节目单项,删除节目单项,查询节目单项,编辑节目单,删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68X****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidPushDomain', - 'errorMessage' => 'The PushDomain should be liveEdge type.', - ], - [ - 'errorCode' => 'InvalidPullDomain', - 'errorMessage' => 'The PullDomain should be liveVideo type.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数StartTime无效,请检查后重试。'], + ['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ClientToken无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\", \\n}"}]', - 'title' => '添加播流域名和推流域名的映射关系', - 'description' => '先调用[AddLiveDomain接口](~~2847789~~)添加播流域名和推流域名,才能调用本接口添加直播域名中播流域名和推流域名的映射关系配置。'."\n" - ."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ItemIds\\": {\\n \\"ItemId\\": [\\n \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\"\\n ]\\n },\\n \\"ProgramId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68X****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ProgramId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68XX876\\",\\n \\"ItemIds\\": [\\n \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\",\\n \\"21926b36-7dd2-4fde-ae25-51b5bc98765t\\"\\n ]\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68X****\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t21926b36-7dd2-4fde-ae25-51b5bc98****\\n\\t\\n","errorExample":"Content 参数格式示例\\n {\\n \\"StartTime\\": \\"2018-04-02T19:00:00Z\\",\\n \\"DomainName\\": \\"XXX.XXX.XXX\\",\\n \\"RepeatNum\\":3,\\n \\"SideOutputUrl\\":\\"rtmp://XXXX/XXXX/XXXX\\",\\n \\"CallbackUrl\\":\\"http://XXXXXX/XXXXXXX\\",\\n \\"Items\\": [\\n {\\n \\"ItemName\\": \\"节目1\\",\\n \\"VodUrl\\": \\"http://XXXX/XXXXXX1.flv\\"\\n },\\n {\\n \\"ItemName\\": \\"节目2\\",\\n \\"VodUrl\\": \\"http://XXXX/XXXXXX2.mp4\\"\\n }\\n ]\\n }"}]', + 'title' => '添加导播台节目列表', + 'description' => '先创建导播台和添加导播台节目列表,再调用接口添加导播台节目列表信息。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" + .' '."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteLiveDomain' => [ - 'summary' => '删除本条直播域名的全部相关记录。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterEpisodeGroupContent'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterEpisodeGroupContent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'AddCasterLayout' => [ + 'summary' => '添加导播台布局。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1618,569 +1028,511 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '106925', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域id。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'VideoLayer', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '需要删除的推流或播流域名。', - 'type' => 'string', + 'description' => '视频布局。', + 'type' => 'array', + 'items' => [ + 'description' => '视频布局。', + 'type' => 'object', + 'properties' => [ + 'FillMode' => ['description' => '元素填充方式。 取值:'."\n" + .' '."\n" + .'- **none**(默认):不填充。以画面作为配置目标进行设置。'."\n" + .'- **fit**:自适应,以填充区(框)作为配置目标进行设置,此时画面会按照原始的宽高比缩放,长边对齐的自适应方式在填充区(框)内居中填充。若填充区宽高比和画面不一致,则短边两侧无填充(显示为下层元素画面,若下层未配置,默认为底图黑色)。 '."\n" + .' ', 'type' => 'string', 'required' => false, 'example' => 'fit'], + 'FixedDelayDuration' => ['description' => '该字段对视频进行固定延迟设置,可用于字幕同步。 单位:毫秒。 默认值:**0** 。取值范围:**0~5000**。'."\n" + .' ', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5000'], + 'HeightNormalized' => ['description' => '元素的高度归一化比例值。 '."\n" + .' '."\n" + .'- 若采用不填充方式,元素的宽度会按照该高度来进行等比缩放。默认值为**0**,表示按照画面的原始尺寸进行显示。 '."\n" + .'- 若采用自适应方式,该字段必传且大于**0**,表示填充区(框)高度归一化比例值。 '."\n" + .' ', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1'], + 'PositionNormalized' => [ + 'description' => '视频元素配置列表,元素为视频画面的配置信息:位置。'."\n" + ."\n" + .'设置该视频元素的位置归一化值`[x,y]`, 默认为`[0,0]`。注意x,y需要进行归一化计算。', + 'type' => 'array', + 'items' => ['description' => '值。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0'], + 'required' => false, + 'example' => '0.3', + 'maxItems' => 2, + ], + 'PositionRefer' => ['description' => '元素的位置参考坐标值。 取值:'."\n" + .' '."\n" + .'- **topLeft**(默认值):左上。'."\n" + .'- **topRight**:右上。'."\n" + .'- **bottomLeft**:左下。'."\n" + .'- **bottomRight**:右下。'."\n" + .'- **center**:中间。'."\n" + .'- **topCenter**:中上。'."\n" + .'- **bottomCenter**:中下。'."\n" + .'- **leftCenter**:左中。'."\n" + .'- **rightCenter**:右中。 '."\n" + .' ', 'type' => 'string', 'required' => false, 'example' => 'topLeft'], + 'WidthNormalized' => ['description' => '元素的宽度归一化比例值。 '."\n" + .' '."\n" + .'- 若采用不填充方式,元素的高度会按照该宽度来进行等比缩放,默认值为**0**,表示按照画面的原始尺寸进行显示。 '."\n" + .'- 若采用自适应方式,该字段必传且大于**0**,表示填充区(框)宽度归一化比例值。 '."\n" + .' ', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1'], + ], + 'required' => false, + ], 'required' => true, - 'example' => 'demo.aliyundoc.com', + 'maxItems' => 12, ], ], - ], - 'responses' => [ - 200 => [ + [ + 'name' => 'AudioLayer', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '94E3559F-7B6A-4A5E-AFFD-44E2A208A249', + 'description' => '音频布局。', + 'type' => 'array', + 'items' => [ + 'description' => '音频布局。', + 'type' => 'object', + 'properties' => [ + 'FixedDelayDuration' => ['description' => '对音频进行固定延迟设置,可用于字幕同步。 单位:毫秒。 默认值:**0** 。取值范围:**0~5000**。'."\n" + .' ', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5000'], + 'ValidChannel' => ['description' => '确定哪些声道可以作为音量输入。 取值:'."\n" + .' '."\n" + .'- **leftChannel**:左声道。'."\n" + .'- **rightChannel**:右声道。'."\n" + .'- **all**(默认值):双声道。'."\n" + .' ', 'type' => 'string', 'required' => false, 'example' => 'all'], + 'VolumeRate' => ['description' => '调节音频流的音量大小倍数。 取值范围为**0~10.0**。其中:'."\n" + .' '."\n" + .'- **1.0**(默认值):表示保持原有音量。 '."\n" + .'- 小于**1**:表示降低音量的倍数。 '."\n" + .'- 大于**1**:表示放大的倍数。 '."\n" + ."\n", 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1.0'], ], + 'required' => false, ], + 'required' => true, + 'maxItems' => 12, ], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specific value of parameter DomainName is malformed.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Delete live region parameters have error.', - ], - [ - 'errorCode' => 'InvalidOperation', - 'errorMessage' => 'Delete domain until configure compete.', - ], - ], - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"94E3559F-7B6A-4A5E-AFFD-44E2A208A249\\"\\n}","type":"json"}]', - 'title' => '删除已添加的直播域名', - 'description' => '- DeleteLiveDomain调用成功后,将删除本条直播域名的全部相关记录,请谨慎操作。'."\n" - .'- 为了避免此域名不可访问,建议您在删除域名前到域名解析服务商处恢复域名A记录。如果您的域名注册商在阿里云,请登录[云解析DNS控制台](https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fdns.console.aliyun.com%2F%3Fspm%3Da2c4g.11186623.0.0.3cda841fcvk7Qs&lang=zh),导航到**域名解析**页面,找到域名后点击**解析设置**将CNAME修改为A记录。如果您的域名是在其他注册商,需前往域名所在注册商进行配置,配置方法与此相似。'."\n" - .'- 如果您仅需要暂停使用该直播域名,建议您使用[StopLiveDomain](~~2847799~~)接口。'."\n" - ."\n" - .'>'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteLiveDomainMapping' => [ - 'summary' => '删除直播域名播流域名和推流域名的映射关系配置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'delete', - 'abilityTreeCode' => '106927', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], - ], - 'parameters' => [ [ - 'name' => 'PushDomain', + 'name' => 'BlendList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '推流域名。域名类型为:**liveEdge**。', - 'type' => 'string', + 'description' => '元素为视频资源的位置ID,即LocationId。'."\n" + ."\n" + .'LocationId参见[添加视频源](~~2848020~~),与VideoLayers元素顺序对应。', + 'type' => 'array', + 'items' => ['description' => 'LocationId。', 'type' => 'string', 'required' => false, 'example' => 'RV01'], 'required' => true, - 'example' => 'demo.aliyundoc.com', + 'example' => 'RV01', + 'maxItems' => 12, ], ], [ - 'name' => 'PullDomain', + 'name' => 'MixList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '播流域名。域名类型为:**liveVideo**。', - 'type' => 'string', + 'description' => '元素为音频资源的位置ID,即LocationId。'."\n" + ."\n" + .'LocationId参见[添加视频源](~~2848020~~),与AudioLayers元素顺序对应。', + 'type' => 'array', + 'items' => ['description' => 'LocationId。', 'type' => 'string', 'required' => false, 'example' => 'RV01'], 'required' => true, - 'example' => 'example.com', + 'example' => 'RV01', + 'maxItems' => 12, ], ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'LayoutId' => ['description' => '布局ID。可作为删除导播台布局,修改导播台布局,查询导播台布局列表,删除虚拟演播厅布局,修改虚拟演播厅布局,查询虚拟演播厅布局的请求参数。', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidPushDomain', - 'errorMessage' => 'The PushDomain should be liveEdge type.', - ], - [ - 'errorCode' => 'InvalidPullDomain', - 'errorMessage' => 'The PullDomain should be liveVideo type.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidVideoLayersAndBlendListSize.Mismatch', 'errorMessage' => '%s, please check and try again later.', 'description' => 'VideoLayers的大小与BlendList的大小不匹配,请检查后重试。'], + ['errorCode' => 'InvalidAudioLayersAndMixListSize.Mismatch', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AudioLayers的大小与MixList的大小不匹配,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidBlendList.ExceedNorm', 'errorMessage' => '%s, please check and try again later.', 'description' => 'BlendList大小超过规格,请检查后重试。'], + ['errorCode' => 'InvalidPositionNormalized.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PositionNormalized无效,请检查后重试。'], + ['errorCode' => 'InvalidHeightOrWidthNormalized', 'errorMessage' => '%s, please check and try again later.', 'description' => 'HeightNormalized或者WidthNormalized参数无效,请检查后重试。'], + ['errorCode' => 'InvalidMixList.ExceedNorm', 'errorMessage' => '%s, please check and try again later.', 'description' => 'MixList大小超过规格,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\", \\n}"}]', - 'title' => '删除直播域名的映射关系', - 'description' => '先添加直播域名中播流域名和推流域名的映射关系配置,才能调用本接口删除直播域名中播流域名和推流域名的映射关系配置。使用API添加播流域名和推流域名的映射关系,请参见[添加播流域名和推流域名的映射关系](~~2847792~~)。'."\n" + 'title' => '添加导播台布局', + 'description' => '先创建导播台和添加导播台视频资源,再调用本接口添加导播台布局。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" ."\n" .'## QPS限制'."\n" - ."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '>请求参数中的N表示第几个的意思。例如:VideoLayer.N.FillMode表示传入第几个元素的填充方式。VideoLayer.1.FillMode表示传入第1个元素的填充方式,VideoLayer.2.FillMode表示传入第2个元素的填充方式。'."\n" + ."\n\n" + .' '."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveDomainMapping' => [ - 'summary' => '查询推流域名、主播流域名和子播流域名映射。', - 'methods' => [ - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterLayout'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterLayout', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\"\\n}"}]', + ], + 'AddCasterProgram' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域id。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'Episode', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '您要查询的域名。域名可以是以下类型:'."\n" - ."\n" - .'- 推流域名。'."\n" - ."\n" - .'- 主播流域名。'."\n" - ."\n" - .'- 子播流域名。', - 'type' => 'string', + 'description' => '节目单信息。', + 'type' => 'array', + 'items' => [ + 'description' => '节目单信息。', + 'type' => 'object', + 'properties' => [ + 'ComponentId' => [ + 'description' => '组件列表。按照元素顺序由下而上排列。'."\n" + .'>当Episode.N.EpisodeType为**Component**时,本参数有用且必传。'."\n" + .'>'."\n" + ."\n" + .' 当节点类型为**Resource**时,表示组件与视频源绑定并同步切换。', + 'type' => 'array', + 'items' => ['description' => '组件ID。', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf931826****'], + 'required' => false, + 'example' => '[ "a2b8e671-2fe5-4642-a2ec-bf931826****", "a2b8e671-2fe5-4642-a2ec-28374657****"]', + 'maxItems' => 10, + ], + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .' ', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T10:02:00Z'], + 'EpisodeName' => ['description' => '节目名称。', 'type' => 'string', 'required' => false, 'example' => 'program_name_1'], + 'EpisodeType' => ['description' => '节点类型。 '."\n" + .' '."\n" + .'- **Resource**:视频源。如果选择Resource类型,必须同时设置请求参数Episode.N.ResourceId和Episode.N.SwitchType。'."\n" + .'- **Component**:组件。 如果选择Component类型,必须同时设置请求参数Episode.N.ComponentId.N。'."\n" + .' ', 'type' => 'string', 'required' => false, 'example' => 'Resource'], + 'ResourceId' => ['description' => '视频源ID。'."\n" + .'>当Episode.N.EpisodeType为**Resource**时,本参数有用且必传。'."\n" + .'> '."\n" + .' 当Episode.N.EpisodeType为**Component**时,本参数不可用。'."\n" + ."\n" + .'如果您通过[AddCasterVideoResource接口](~~60250~~)添加导播台视频源,请查看AddCasterVideoResource接口调用返回的参数ResourceId值。'."\n" + .' '."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'StartTime' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .' ', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:00:00Z'], + 'SwitchType' => ['description' => '切换策略。取值:'."\n" + .'>当Episode.N.EpisodeType为**Resource**时,本参数才有用。'."\n" + .'>'."\n" + .' '."\n" + .'- **TimeFirst**:时间优先,直播类视频源只允许采用时间优先。 '."\n" + .'- **ContentFirst**:内容优先。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'TimeFirst'], + ], + 'required' => false, + ], 'required' => true, - 'example' => 'example.com', + 'maxItems' => 100, ], ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F6CD8', - ], - 'LiveDomainModels' => [ + 'EpisodeIds' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'LiveDomainModel' => [ - 'description' => '直播域名映射列表。', + 'EpisodeId' => [ + 'description' => '节目ID列表,列表中元素顺序和传入节目顺序保持一致。', 'type' => 'array', 'items' => [ - 'description' => '直播域名映射列表。', 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => '查询域名的属性。取值:'."\n" - ."\n" - .'- **vhost**:主播流域名。'."\n" - .'- **publish**:推流域名。'."\n" - .'- **play**:子播流域名。', - 'type' => 'string', - 'example' => 'play', - ], - 'DomainName' => [ - 'description' => '查询域名的映射域名。', - 'type' => 'string', - 'example' => 'example.aliyundoc.com', - ], + 'EpisodeId' => ['description' => '节目组ID。可作为修改导播台节目单,查询导播台节目单,删除导播台节目,修改导播台节目的请求参数。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], ], + 'description' => '', ], ], ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], ], + 'description' => '', ], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'SwitchTypeInvalid.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SwitchType无效,请检查后重试。'], + ['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数StartTime无效,请检查后重试。'], + ['errorCode' => 'IncorrectEndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数EndTime无效,请检查后重试。'], + ['errorCode' => 'EpisodeConflict.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '节目时间存在冲突,请检查后重试。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.EndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数EndTime无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], + ['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '待操作的组件不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F6CD8\\",\\n \\"LiveDomainModels\\": {\\n \\"LiveDomainModel\\": [\\n {\\n \\"Type\\": \\"play\\",\\n \\"DomainName\\": \\"example.aliyundoc.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F6CD8\\n \\n play\\n example.aliyundoc.com\\n \\n","errorExample":""}]', - 'title' => '查询直播域名映射', - 'description' => '先获取需要查询的推流域名、主播流域名和子播流域名,再调用本接口查询直播域名映射。'."\n" + 'title' => '添加导播台节目单', + 'summary' => '添加导播台节目单。', + 'description' => '请先创建导播台,添加导播台视频资源后再调用本接口添加导播台节目单。本接口目前只支持视频源和组件两种节点类型。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为500次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' >请求参数中的N表示第几个的意思。例如:
Episode.N.EpisodeName表示传入第几个节目名称。Episode.1.EpisodeName表示传入第1个节目名称,Episode.2.EpisodeName表示传入第2个节目名称。'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveDomainDetail' => [ - 'summary' => '查询指定推流域名或播流域名的基本配置信息。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterProgram', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EpisodeIds\\": {\\n \\"EpisodeId\\": [\\n {\\n \\"EpisodeId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n [ \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\", \\"16A96B9A-F203-4EC5-8E43-CB92E688****\\" ]\\n \\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'AddCasterVideoResource' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107014', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '106832', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '直播推流域名或播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'DomainDetail' => [ - 'description' => '域名配置详情。', - 'type' => 'object', - 'properties' => [ - 'CertName' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'example' => 'liveCert****', - ], - 'Cname' => [ - 'description' => 'CNAME域名。为直播域名生成一个CNAME域名,需要在域名解析服务商处将直播域名CNAME解析到该域名。'."\n" - .'>由于Local DNS的解析记录存在缓存时间,因此在配置域名的CNAME解析记录之后大约会延迟10分钟才会显示CNAME解析记录配置成功。详细内容,请参见[CNAME解析常见问题](~~362010~~)。', - 'type' => 'string', - 'example' => 'learn.developer.aliyundoc.com', - ], - 'Description' => [ - 'description' => '域名备注,说明信息。', - 'type' => 'string', - 'example' => 'test', - ], - 'DomainName' => [ - 'description' => '直播推流域名或播流域名。', - 'type' => 'string', - 'example' => 'demo.aliyundoc.com', - ], - 'DomainStatus' => [ - 'description' => '直播域名运行状态。取值:'."\n" - ."\n" - .'- **online**:启用。'."\n" - .'- **offline**:停用。'."\n" - .'- **configuring**:配置中。', - 'type' => 'string', - 'example' => 'online', - ], - 'GmtCreated' => [ - 'description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'example' => '2018-07-27T06:51:25Z', - ], - 'GmtModified' => [ - 'description' => '最近修改时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'example' => '2018-08-07T06:51Z', - ], - 'LiveDomainType' => [ - 'description' => '域名业务类型。取值:'."\n" - ."\n" - .'- **liveVideo**:播流域名。'."\n" - .'- **liveEdge**:边缘推流域名。', - 'type' => 'string', - 'example' => 'liveVideo', - ], - 'Region' => [ - 'description' => '域名所属地域。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'SSLProtocol' => [ - 'description' => '是否开启SSL证书。取值:'."\n" - ."\n" - .'- **on**:开启。'."\n" - .'- **off**:关闭。', - 'type' => 'string', - 'example' => 'on', - ], - 'SSLPub' => [ - 'description' => '证书公钥。', - 'type' => 'string', - 'example' => 'Public Key', - ], - 'Scope' => [ - 'description' => '加速区域。取值:'."\n" - ."\n" - .'- **domestic**:中国内地。'."\n" - .'- **overseas**:海外及港澳台加速。'."\n" - .'- **global**:全球加速。', - 'type' => 'string', - 'example' => 'domestic', - ], - 'ResourceGroupId' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'rg-**k3bpq2yjw22**', - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '09ABE829-6CD3-4FE0-AFEE-556113E29727', - ], - ], - ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DomainDetail\\": {\\n \\"CertName\\": \\"liveCert****\\",\\n \\"Cname\\": \\"learn.developer.aliyundoc.com\\",\\n \\"Description\\": \\"test\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"GmtCreated\\": \\"2018-07-27T06:51:25Z\\",\\n \\"GmtModified\\": \\"2018-08-07T06:51Z\\",\\n \\"LiveDomainType\\": \\"liveVideo\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"SSLPub\\": \\"Public Key\\",\\n \\"Scope\\": \\"domestic\\",\\n \\"ResourceGroupId\\": \\"rg-**k3bpq2yjw22**\\"\\n },\\n \\"RequestId\\": \\"09ABE829-6CD3-4FE0-AFEE-556113E29727\\"\\n}","type":"json"}]', - 'title' => '获取指定直播域名配置的基本信息', - 'description' => '本接口支持查询指定推流域名或播流域名的基本配置信息。'."\n" - .'如果是新增域名的查询,域名配置完成需要一定时间,分钟级别,完全配置成功后可支持查询。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveUserDomains' => [ - 'summary' => '查询用户名下所有的直播域名。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'ResourceName', + 'in' => 'query', + 'schema' => ['description' => '视频源名称。', 'type' => 'string', 'required' => true, 'example' => 'test001'], ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '107118', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + [ + 'name' => 'LocationId', + 'in' => 'query', + 'schema' => ['description' => '用于标识视频源位置。本参数必填。 '."\n" + ."\n" + .'定义布局内画面的引用编号,每个位置至多关联一个资源,格式需符合“RV01~RV12”,即RV+数字,数字范围`[01~99]`。', 'type' => 'string', 'required' => false, 'example' => 'RV01'], ], - ], - 'parameters' => [ [ - 'name' => 'LiveDomainType', + 'name' => 'LiveStreamUrl', 'in' => 'query', - 'schema' => [ - 'description' => '直播域名业务类型。取值:'."\n" - .'- **liveVideo**:播流域名。'."\n" - .'- **liveEdge**:边缘推流域名。'."\n" - ."\n" - .'>如果不设置此参数,则请求参数DomainName默认查询用户所有直播推流和播流域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveVideo', - ], + 'schema' => ['description' => '阿里云直播流地址。'."\n" + ."\n" + .'> '."\n" + .' '."\n" + .'- 当视频源类型为直播流时,本参数必填。'."\n" + .' '."\n" + .'- 视频源类型不是直播流时,请求时不要带这个参数。'."\n" + ."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****'], ], [ - 'name' => 'PageSize', + 'name' => 'MaterialId', 'in' => 'query', - 'schema' => [ - 'description' => '分页大小。默认值为**20**,最大值为**50**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => '媒资库素材ID。'."\n" + .'>当视频源类型为素材时,本参数才可用且必须传入。'."\n" + .'>'."\n" + ."\n" + .'如果您通过[DescribeCasterConfig接口](~~2848011~~)查询导播台配置信息,请查看DescribeCasterConfig接口调用返回的参数UrgentMaterialId值。'."\n" + ."\n" + .'> UrgentMaterialId值即为媒资库素材ID值。', 'type' => 'string', 'required' => false, 'example' => 'f080575eb5f4427684fc0715159a****'], ], [ - 'name' => 'PageNumber', + 'name' => 'VodUrl', 'in' => 'query', - 'schema' => [ - 'description' => '当前页码。取值范围:**1~100000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '点播文件地址。'."\n" + .'>当视频源类型为文件视频且视频文件未导入素材库时,本参数才可用。'."\n" + .'>'."\n" + ."\n" + .'>点播文件仅限MP4、FLV、TS格式。', 'type' => 'string', 'required' => false, 'example' => 'http://learn.aliyundoc.com/AppName/StreamName.flv'], ], [ - 'name' => 'DomainName', + 'name' => 'BeginOffset', 'in' => 'query', - 'schema' => [ - 'description' => '域名模糊匹配过滤。'."\n" - ."\n" - .'>- 如果LiveDomainType(直播域名业务类型)取值为liveVideo,此参数不传值时,默认查询用户播流域名的相关信息。- 如果LiveDomainType(直播域名业务类型)取值为liveEdge,此参数不传值时,默认查询用户推流域名的相关信息。', - 'type' => 'string', - 'required' => false, - 'example' => '*.aliyundoc.com', - ], + 'schema' => ['description' => '视频文件起始偏移值。单位:毫秒。'."\n" + .'>当视频源类型为文件视频时,本参数才有用。'."\n" + .'>'."\n" + ."\n" + .'> 大于**0**,表示从相对于首帧的偏差时间作为开始读取的位置。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1000'], ], [ - 'name' => 'RegionName', + 'name' => 'EndOffset', 'in' => 'query', - 'schema' => [ - 'description' => '域名所属地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-beijing', - ], + 'schema' => ['description' => '视频文件结束偏移值。单位:毫秒。'."\n" + .'>当视频源类型为文件视频时,本参数才有用。'."\n" + .'>'."\n" + .' '."\n" + .'- 大于**0**时:从相对于首帧的偏差时间为结束读取的位置。'."\n" + .'- 小于**0**时:相对于最后一帧的偏差时间作为结束读取的位置。 ', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10000'], ], [ - 'name' => 'DomainSearchType', + 'name' => 'RepeatNum', 'in' => 'query', - 'schema' => [ - 'description' => '域名查询类型。取值:'."\n" - ."\n" - .'- **fuzzy_match**(默认值):模糊匹配。'."\n" - .'- **pre_match**:前匹配。'."\n" - .'- **suf_match**:后匹配。'."\n" - .'- **full_match**:完全匹配。', - 'type' => 'string', - 'required' => false, - 'example' => 'fuzzy_match', - ], + 'schema' => ['description' => '播放完后重复继续播放的次数。取值:'."\n" + .'>当视频源类型为文件视频时,本参数才有用。'."\n" + .'>'."\n" + ."\n" + .'- **0**(默认值):不重复播放。'."\n" + .'- **-1**:一直循环重复。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '60', 'minimum' => '-1', 'example' => '0'], ], [ - 'name' => 'DomainStatus', + 'name' => 'PtsCallbackInterval', 'in' => 'query', - 'schema' => [ - 'description' => '域名状态。取值:'."\n" - ."\n" - .'- **online**:运行中(表示域名服务状态正常)。'."\n" - .'- **offline**:已停止。'."\n" - .'- **configuring**:配置中。', - 'type' => 'string', - 'required' => false, - 'example' => 'online', - ], + 'schema' => ['description' => 'PTS回调间隔。单位:毫秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '0', 'example' => '2000'], ], [ - 'name' => 'Tag', + 'name' => 'FixedDelayDuration', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签列表。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签健。', - 'type' => 'string', - 'required' => false, - 'example' => 'TestKey', - ], - 'Value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'required' => false, - 'example' => 'TestValue', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => '该字段对视频进行固定延迟设置,可用于字幕同步。单位ms, 默认取值为0, 取值范围`[0-5000]`。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'ImageId', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-**kzvyjetyjjm**', - ], + 'schema' => ['description' => '媒资库图片素材ID。'."\n" + .'> 当视频源类型为图片时,本参数才可用且必须传入。', 'type' => 'string', 'required' => false, 'example' => 'a089175eb5f4427684fc0715159a****'], + ], + [ + 'name' => 'ImageUrl', + 'in' => 'query', + 'schema' => ['description' => '图片素材URL。'."\n" + .'>当视频源类型为图片且图片文件未导入素材库时,本参数才可用。支持上传jpg、png格式图片,最大文件不可超过10M。', 'type' => 'string', 'required' => false, 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg'], ], ], 'responses' => [ @@ -2188,182 +1540,290 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Domains' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PageData' => [ - 'description' => '域名列表。', - 'type' => 'array', - 'items' => [ - 'description' => '返回直播域名的状态信息。', - 'type' => 'object', - 'properties' => [ - 'Cname' => [ - 'description' => '直播域名对应的CNAME域名。', - 'type' => 'string', - 'example' => 'learn.developer.aliyundoc.com', - ], - 'Description' => [ - 'description' => '描述信息', - 'type' => 'string', - 'example' => 'test', - ], - 'DomainName' => [ - 'description' => '域名名称。', - 'type' => 'string', - 'example' => 'demo.aliyundoc.com', - ], - 'GmtCreated' => [ - 'description' => '直播域名创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'example' => '2017-08-29T12:15:36Z', - ], - 'GmtModified' => [ - 'description' => '直播域名修改时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'example' => '2017-12-29T12:15:36Z', - ], - 'LiveDomainStatus' => [ - 'description' => '域名状态。取值:'."\n" - ."\n" - .'- **online**:运行中(表示域名服务状态正常)。'."\n" - .'- **offline**:已停止。'."\n" - .'- **configuring**:配置中。', - 'type' => 'string', - 'example' => 'online', - ], - 'LiveDomainType' => [ - 'description' => '直播域名业务类型。取值:'."\n" - ."\n" - .'- **liveVideo**:播流域名。'."\n" - .'- **liveEdge**:边缘推流域名。', - 'type' => 'string', - 'example' => 'liveVideo', - ], - 'RegionName' => [ - 'description' => '域名所属地域。', - 'type' => 'string', - 'example' => 'cn-beijing', - ], - 'ResourceGroupId' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'rg-**kzvyjetyjjm**', - ], - ], - ], - ], - ], - ], - 'PageNumber' => [ - 'description' => '返回数据的当前页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '分页大小。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'E4EBD2BF-5EB0-4476-8829-9D94E1B15267', - ], - 'TotalCount' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7'], + 'ResourceId' => ['description' => '资源ID。可作为删除导播台视频源,修改导播台视频源的请求参数。', 'type' => 'string', 'example' => 'e5542d98-b08c-46bf-83e9-5b09d08c****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidPageNumber.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter PageNumber is not supported.', - ], - [ - 'errorCode' => 'InvalidPageSize.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter PageSize is not supported.', - ], - [ - 'errorCode' => 'InvalidDomainStatus.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter DomainStatus is not supported.', - ], - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specific value of parameter DomainName is malformed.', - ], - [ - 'errorCode' => 'InvalidDomainSearchType.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter DomainSearchType is not supported.', - ], - [ - 'errorCode' => 'InvalidDomainSearchType.Malformed', - 'errorMessage' => 'he specified value of parameter DomainSearchType is invalid.', - ], - [ - 'errorCode' => 'InvalidLiveDomainType.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter LiveDomainType is not supported.', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidLiveStreamUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数LiveStreamUrl无效,请检查后重试。'], + ['errorCode' => 'InvalidMaterialId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数MaterialId无效,请检查后重试。'], + ['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数VodUrl无效,请检查后重试。'], + ['errorCode' => 'ResourceNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源数量超限,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'DuplicateLocationID', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数LocationID重复,请检查后重试。'], + ['errorCode' => 'UnexpectedLocationID', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LocationId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Domains\\": {\\n \\"PageData\\": [\\n {\\n \\"Cname\\": \\"learn.developer.aliyundoc.com\\",\\n \\"Description\\": \\"test\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"GmtCreated\\": \\"2017-08-29T12:15:36Z\\",\\n \\"GmtModified\\": \\"2017-12-29T12:15:36Z\\",\\n \\"LiveDomainStatus\\": \\"online\\",\\n \\"LiveDomainType\\": \\"liveVideo\\",\\n \\"RegionName\\": \\"cn-beijing\\",\\n \\"ResourceGroupId\\": \\"rg-**kzvyjetyjjm**\\"\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 100,\\n \\"RequestId\\": \\"E4EBD2BF-5EB0-4476-8829-9D94E1B15267\\",\\n \\"TotalCount\\": 1\\n}","type":"json"}]', - 'title' => '查询用户名下所有的直播域名', - 'description' => '本接口目前支持的直播域名业务类型为播流域名和边缘推流域名。'."\n" - ."\n\n" + 'title' => '添加导播台视频资源', + 'summary' => '添加视频源,视频源数量受限于导播台输入路数。', + 'description' => '请先创建导播台,再调用本接口添加导播台视频源。视频源数量受限于导播台输入路数。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' >视频源类型是根据直播流地址里的资源类型判断的。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'StartLiveDomain' => [ - 'summary' => '启用状态为停用的直播域名,将DomainStatus变更为online。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-08-08T03:24:10.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2023-03-31T08:26:54.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterVideoResource'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterVideoResource', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"ResourceId\\": \\"e5542d98-b08c-46bf-83e9-5b09d08c****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\te5542d98-b08c-46bf-83e9-5b09d08c****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"ResourceId\\": \\"e5542d98-b08c-46bf-83e9-5b09d08c692f\\"\\n}"}]', + ], + 'AddCustomLiveStreamTranscode' => [ + 'summary' => '调用AddCustomLiveStreamTranscode添加自定义转码配置信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107241', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '106833', + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '直播推流域名或播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['description' => '地域id。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'KmsKeyID', + 'in' => 'query', + 'schema' => ['description' => '用户KMS主密钥ID。', 'type' => 'string', 'required' => false, 'example' => 'afce5722-81d2-43c3-9930-7601da11****'], + ], + [ + 'name' => 'KmsUID', + 'in' => 'query', + 'schema' => ['description' => '用户KMS主账号ID。', 'type' => 'string', 'required' => false, 'example' => '25346073170691****'], + ], + [ + 'name' => 'KmsKeyExpireInterval', + 'in' => 'query', + 'schema' => ['description' => '换Key周期。取值范围:60~3600,单位:秒。', 'type' => 'string', 'required' => false, 'example' => '3600'], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => ['description' => '转码模板自定义名称。'."\n" + ."\n" + .'> 支持数字、大小写字母或短横线(-),且字段必须以大小写字母或数字开头,不能与标准的转码模板命名重复。'."\n", 'type' => 'string', 'required' => true, 'example' => 'LiveCusTranscode****'], + ], + [ + 'name' => 'TemplateType', + 'in' => 'query', + 'schema' => ['description' => '自定义转码模版类型。取值:'."\n" + ."\n" + .'- **h264**:自定义H264标准模版。'."\n" + .'- **h264-nbhd**:自定义H264窄带高清™模版。'."\n" + .'- **h265**:自定义H265标准模版。'."\n" + .'- **h265-nbhd**:自定义H265窄带高清模版。'."\n" + .'- **audio**:纯音频模板。'."\n" + ."\n" + .'>**TemplateType**取值为视频类型时(例如**h264**、**h264-nbhd**、**h265**或 **h265-nbhd**),请求参数**Height**、**Width**、**FPS**和**VideoBitrate**的值必须填写。', 'type' => 'string', 'required' => true, 'example' => 'h264'], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => ['description' => '转码视频高度。单位:像素。取值:'."\n" + .'需要同时满足如下三个条件:'."\n" + .'- **Height ≥ 100**:视频的高需要不小于100像素。'."\n" + .'- **max(Height,Width)≤ 2560**:视频的宽、高中较大的一个最大不能大于2560。'."\n" + .'- **min(Height,Width)≤ 1440**:视频的宽、高中较小的一个最大不能大于1440。'."\n" + ."\n" + .'>265窄带高清模板不得超过1280×720。'."\n" + ."\n\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '720'], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => ['description' => '转码视频宽度。单位:像素。取值:'."\n" + ."\n" + .'需要同时满足如下三个条件:'."\n" + .'- **Width ≥ 100**:视频的宽需要不小于100像素。'."\n" + .'- **max(Height,Width)≤ 2560**:视频的宽、高中较大的一个最大不能大于2560。'."\n" + .'- **min(Height,Width)≤ 1440**:视频的宽、高中较小的一个最大不能大于1440。'."\n" + ."\n" + .'>265窄带高清模板不得超过1280×720。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '576'], + ], + [ + 'name' => 'FPS', + 'in' => 'query', + 'schema' => ['description' => '转码视频帧率。单位:FPS,取值:**1~60**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], + ], + [ + 'name' => 'VideoBitrate', + 'in' => 'query', + 'schema' => ['description' => '转码视频比特率。单位:kbps,取值:**1~6000**。'."\n" + ."\n" + .'> 转码视频会尽量接近您所设定的比特率,但转码视频的实际比特率不能保证和您所设定的完全一致,尤其是当您设定的比特率过大或过小时。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '720'], + ], + [ + 'name' => 'AudioBitrate', + 'in' => 'query', + 'schema' => ['description' => '转码音频比特率。单位:kbps,取值:**1~1000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '512'], + ], + [ + 'name' => 'Gop', + 'in' => 'query', + 'schema' => ['description' => '视频GOP(Group of Picture),单位可选帧或者秒。'."\n" + .'- 单位:帧,取值:**1~3000**。例如:设置GOP为2帧,则此参数传入2。'."\n" + .'- 单位:秒,取值:**1s~20s**。例如:设置GOP为1秒,则此参数传入1s。', 'type' => 'string', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'Profile', + 'in' => 'query', + 'schema' => ['description' => '编码级别。视频支持的一组特定的编码功能,一般值越大得到的画面质量越好,同时编解码消耗的资源也越高。取值:'."\n" + ."\n" + .'- **1**:baseline(适合移动设备)。'."\n" + .'- **2**:main(适合标准分辨率设备)。'."\n" + .'- **3**:high(适合高分辨率设备)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + ], + [ + 'name' => 'AudioProfile', + 'in' => 'query', + 'schema' => ['description' => '音频编码。取值:'."\n" + .'- **aac_low**'."\n" + .'- **aac_he**'."\n" + .'- **aac_he_v2**'."\n" + .'- **aac_ld**'."\n", 'type' => 'string', 'required' => false, 'example' => 'aac_low'], + ], + [ + 'name' => 'AudioCodec', + 'in' => 'query', + 'schema' => ['description' => '音频编码格式。取值:'."\n" + ."\n" + .'- **AAC**'."\n" + ."\n" + .'- **MP3**', 'type' => 'string', 'required' => false, 'example' => 'AAC'], + ], + [ + 'name' => 'AudioRate', + 'in' => 'query', + 'schema' => ['description' => '音频采样率。取值:**22050~96000**。'."\n" + ."\n" + .'>如果AudioProfile取值为**aac_ld**,则采样率不能超过44100。'."\n" + .'>', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '96000'], + ], + [ + 'name' => 'AudioChannelNum', + 'in' => 'query', + 'schema' => ['description' => '音频声道数。取值'."\n" + ."\n" + .'- **1**:单声道。'."\n" + .'- **2**:双声道。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + ], + [ + 'name' => 'Lazy', + 'in' => 'query', + 'schema' => ['description' => '是否开启触发转码。取值:'."\n" + .'- **yes**:开启触发转码。'."\n" + .'- **no**:不开启触发转码。', 'type' => 'string', 'required' => false, 'example' => 'yes'], + ], + [ + 'name' => 'EncryptParameters', + 'in' => 'query', + 'schema' => ['description' => '加密配置。JSON格式,各字段说明如下:'."\n" + ."\n" + .'- **EncryptType**:加密类型。固定取值aliyun。'."\n" + ."\n" + .'- **KmsKeyID**:用户KMS主密钥ID。'."\n" + ."\n" + .'- **KmsKeyExpireInterval**:换Key周期。取值范围:60~3600,单位:秒。'."\n" + ."\n" + .'> EncryptParameters参数若配置,则KmsKeyID、KmsUID、KmsKeyExpireInterval参数不能为空', 'type' => 'string', 'required' => false, 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}'], + ], + [ + 'name' => 'ResWithSource', + 'in' => 'query', + 'schema' => ['description' => '分辨率随源配置,若设置了该字段,分辨率以该字段为主。包含的字段如下:'."\n" + .'- **Type string** (必须添加):只可以传 short (短边自适应)、long(长边自适应) 、screen(横竖屏自适应) 。'."\n" + .'- **Value string**(必须添加):'."\n" + .' - 短边自适应取值可选:360、480、540、720、1080。'."\n" + .' - 长边自适应取值可选:640、848、960、1280、1920。'."\n" + .' - 横竖屏自适应取值可选:640\\*360、848\\*480、960\\*540、1280\\*720、1920\\*1080。', 'type' => 'string', 'required' => false, 'example' => '{"Type":"short","Value":"1080"}'], + ], + [ + 'name' => 'FpsWithSource', + 'in' => 'query', + 'schema' => ['description' => '帧率随源配置,若设置了该字段,帧率以该字段为主。包含的字段如下:'."\n" + .'- **UpLimit int**(必须添加):帧率上限,输入范围1-60的整数,且大于帧率下限。'."\n" + .'- **LowerLimit int** (必须添加):帧率下限,输入范围1-60的整数,且小于帧率上限。', 'type' => 'string', 'required' => false, 'example' => '{"UpLimit":60,"LowerLimit":1}'], + ], + [ + 'name' => 'BitrateWithSource', + 'in' => 'query', + 'schema' => ['description' => '码率随源配置,若设置了该字段,码率以该字段为主。包含的字段如下:'."\n" + .'- **UpLimit int**(必须添加):码率上限,输入范围128-10000的整数,且大于码率下限。'."\n" + .'- **LowerLimit int** (必须添加):码率下限,输入范围128-10000的整数,且小于码率上限。'."\n" + .'- **Factor float** (必须添加):按源码率输出倍率,输入范围0.1-1,精确至小数点后一位,“1”为按源流输出。', 'type' => 'string', 'required' => false, 'example' => '{"UpLimit":2500,"LowerLimit":800,"Factor":1}'], + ], + [ + 'name' => 'ExtWithSource', + 'in' => 'query', + 'schema' => ['description' => '其他随源配置,包含的字段如下:'."\n" + .'- **KeyFrameOpen**:关键帧随源是否开启,开启后,转码输出流关键帧与原始流关键帧一致。取值yes或no。'."\n" + .'- **Copyts string** :pts随源是否开启,开启后,转码输出流pts与原始流pts一致。取值yes或no。'."\n" + .'- **SeiMode** :透传sei模式。取值有0(不透传)、 1(全部透传)。', 'type' => 'string', 'required' => false, 'example' => '{"KeyFrameOpen":"yes","Copyts":"yes","SeiMode":1}'], + ], + [ + 'name' => 'DeInterlaced', + 'in' => 'query', + 'schema' => ['description' => '转码过程中是否自动检测并去除隔行处理(将隔行扫描内容转换为逐行扫描):'."\n" + ."\n" + .'- true:开启去隔行处理。'."\n" + ."\n" + .'- false:保持源格式,不做处理(默认)。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ @@ -2371,59 +1831,62 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'RecordCheckNotAvailable', - 'errorMessage' => 'Please try again later.', - ], - [ - 'errorCode' => 'IcpBlack', - 'errorMessage' => 'The domain is on the ICP blacklist.', - ], - [ - 'errorCode' => 'IspBlack', - 'errorMessage' => 'The domain is on the ISP blacklist.', - ], - [ - 'errorCode' => 'DomainNotRecordedAliyun', - 'errorMessage' => 'The domain not access Ali Cloud for the record please access.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'TemplateLimit', 'errorMessage' => '%s Please check and try again later.', 'description' => '模板数量达到上限。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', - 'title' => '启用直播域名', - 'description' => '如果您的域名账户已欠费或您的域名处于非法状态,则无法正常调用此接口。'."\n" + 'title' => '添加自定义转码配置信息', + 'description' => '本接口目前支持以下自定义转码模版类型,取值:'."\n" + ."\n" + .'- h264:自定义H264标准模版。'."\n" + ."\n" + .'- h264-nbhd:自定义H264窄带高清™模版。'."\n" + ."\n" + .'- h265:自定义H265标准模版。'."\n" + ."\n" + .'- h265-nbhd:自定义H265窄带高清模版。'."\n" + ."\n" + .'- audio:纯音频模板。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'StopLiveDomain' => [ - 'summary' => '停用状态为启用的直播域名,将DomainStatus变更为offline。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCustomLiveStreamTranscode'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCustomLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + ], + 'AddLiveAIProduceRules' => [ + 'summary' => '添加字幕规则。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2431,24 +1894,67 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107251', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '218952', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '直播推流域名或播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['description' => '地域id。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => ['description' => '直播流应用名称。不超过256字符,支持数字、大小写字母、短划线(-)、下划线(_)AppName名称与推流地址中的AppName名称对应,模板才能生效。', 'type' => 'string', 'required' => true, 'example' => 'AppName'], + ], + [ + 'name' => 'Suffix', + 'in' => 'query', + 'schema' => ['description' => '后缀匹配', 'type' => 'string', 'required' => false, 'example' => 'test01'], + ], + [ + 'name' => 'SubtitleName', + 'in' => 'query', + 'schema' => ['description' => '字幕模板名称', 'type' => 'string', 'required' => false, 'example' => 'sub01'], + ], + [ + 'name' => 'StudioName', + 'in' => 'query', + 'schema' => ['description' => '虚拟背景模板名称', 'type' => 'string', 'required' => false, 'example' => 'sub02'], + ], + [ + 'name' => 'IsLazy', + 'in' => 'query', + 'schema' => ['description' => '拉流触发。取值:'."\n" + .'- true:拉流时启动字幕,若5分钟内没有拉流则会断掉字幕,后续再有拉流才会启动。'."\n" + .'- false:只要有推流就启动字幕,与是否有拉流无关。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'LiveTemplate', + 'in' => 'query', + 'schema' => ['description' => '字幕输出规格,取值:'."\n" + .'- 横屏流畅 360P 640x360:`lp_ld`'."\n" + .'- 竖屏流畅 360P 360x640:`lp_ld_v`'."\n" + .'- 横屏标清 480P 854x480:`lp_sd`'."\n" + .'- 竖屏标清 480P 480x854:`lp_sd_v`'."\n" + .'- 横屏高清 720P 1280x720:`lp_hd`'."\n" + .'- 竖屏高清 720P 720x1280:`lp_hd_v`'."\n" + .'- 横屏超清 1080P 1920x1080:`lp_ud`'."\n" + .'- 竖屏超清 1080P 1080x1920:`lp_ud_v`', 'type' => 'string', 'required' => true, 'example' => 'lp_ld'], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => '字幕规则描述。可包含中英文、数字、字符,不超过128位。', 'type' => 'string', 'required' => false, 'example' => 'live AI subtitle template'], ], ], 'responses' => [ @@ -2456,312 +1962,436 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '324AEFFF-308C-4DA7-8CD3-01B277B98F28', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****'], + 'RulesId' => ['description' => '字幕规则ID。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], + 'description' => '', ], ], ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"324AEFFF-308C-4DA7-8CD3-01B277B98F28\\"\\n}","type":"json"}]', - 'title' => '停用直播域名', - 'description' => '停用该直播域名后,域名信息仍保留。针对直播域名的请求,系统将自动回源处理。'."\n" + 'title' => '添加实时字幕规则', + 'description' => '- 调用[AddLiveAISubtitle](~~2848222~~)接口添加字幕模板后,可使用本接口添加字幕规则。'."\n" + ."\n" + .'- 播放字幕流需要在播放地址的StreamName后加_{字幕模板名称}:'."\n" + .' - RTMP:rtmp://example.aliyundoc.com/app/stream_{字幕模板名称}?auth_key={鉴权串}'."\n" + .' - FLV:http://example.aliyundoc.com/app/stream_{字幕模板名称}.flv?auth_key={鉴权串}'."\n" + .' - M3U8:http://example.aliyundoc.com/app/stream_{字幕模板名称}.m3u8?auth_key={鉴权串}'."\n" + ."\n" + .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" + .'>'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveCertificateDetail' => [ - 'summary' => '查询证书详细信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-10-14T03:46:55.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-07-04T02:57:17.000Z', 'description' => '请求参数发生变更'], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAIProduceRules'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'CertName', - 'in' => 'query', - 'schema' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'Cert-****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'CertName' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'example' => 'Cert-****', - ], - 'Cert' => [ - 'description' => '证书内容。', - 'type' => 'string', - 'example' => '-----BEGIN CERTIFICATE-----****-----END CERTIFICATE-----', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C7C69682-7F88-40DD-A198-10D0309E439B', - ], - 'CertId' => [ - 'description' => '证书ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '23451111', - ], + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveAIProduceRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], ], - 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'CertNameNotFound', - 'errorMessage' => 'The cert name is not found.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertName\\": \\"Cert-****\\",\\n \\"Cert\\": \\"-----BEGIN CERTIFICATE-----****-----END CERTIFICATE-----\\",\\n \\"RequestId\\": \\"C7C69682-7F88-40DD-A198-10D0309E439B\\",\\n \\"CertId\\": 23451111\\n}","errorExample":""},{"type":"xml","example":"\\n\\nC7C69682-7F88-40DD-A198-10D0309E439B\\n23451111\\nCert-****\\n-----BEGIN CERTIFICATE-----****-----END CERTIFICATE-----\\n","errorExample":"{\\n \\"CertId\\": xxx,\\n \\"RequestId\\": \\"C7C69682-7F88-40DD-A198-10D0309E439B\\",\\n \\"CertName\\": \\"证书名称\\",\\n \\"Cert\\": \\"-----BEGIN CERTIFICATE-----xxx-----END CERTIFICATE-----\\"\\n}"}]', - 'title' => '查询证书信息', - 'description' => '您可在视频直播控制台[证书服务](~~2584962~~)页面先获取证书名称,再调用本接口查询证书详细信息。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\",\\n \\"RulesId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64-af62-20e91b96****\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', ], - 'DescribeLiveDomainCertificateInfo' => [ - 'summary' => '获取指定直播域名证书信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddLiveAISubtitle' => [ + 'summary' => '调用AddLiveAISubtitle添加字幕模板。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107011', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '220749', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'SubtitleName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名或推流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '字幕模板名称,仅支持数字、大小写字母或短横线-,短横线不和位于首位。', 'type' => 'string', 'required' => true, 'example' => 'sub01'], ], - ], - 'responses' => [ + [ + 'name' => 'SrcLanguage', + 'in' => 'query', + 'schema' => ['description' => '源语言,取值:'."\n" + .'- 英文:en-US'."\n" + .'- 中文:zh-CN'."\n" + .'- 俄文:ru-RU', 'type' => 'string', 'required' => true, 'example' => 'zh-CN'], + ], + [ + 'name' => 'DstLanguage', + 'in' => 'query', + 'schema' => ['description' => '翻译目标语言,取值:'."\n" + .'- 英文:en-US'."\n" + .'- 中文:zh-CN'."\n" + .'- 西班牙文:es-ES'."\n" + .'- 俄文:ru-RU', 'type' => 'string', 'required' => false, 'example' => 'zh-CN'], + ], + [ + 'name' => 'FontColor', + 'in' => 'query', + 'schema' => ['description' => '字体颜色,RGBA值。', 'type' => 'string', 'required' => false, 'example' => '0xFFFFFF'], + ], + [ + 'name' => 'FontName', + 'in' => 'query', + 'schema' => ['description' => '字体,取值:'."\n" + .'- KaiTi-楷体,默认'."\n" + .'- AlibabaPuHuiTi-Regular-阿里巴巴普惠体-常规'."\n" + .'- AlibabaPuHuiTi-Bold-阿里巴巴普惠体-粗体'."\n" + .'- AlibabaPuHuiTi-Light-阿里巴巴普惠体-细体'."\n" + .'- NotoSansHans-Regular-思源黑体-常规'."\n" + .'- NotoSansHans-Bold-思源黑体-粗体'."\n" + .'- NotoSansHans-Light-思源黑体-细体', 'type' => 'string', 'required' => false, 'example' => 'KaiTi'], + ], + [ + 'name' => 'BgColor', + 'in' => 'query', + 'schema' => ['description' => '字幕背景颜色,RGBA值。', 'type' => 'string', 'required' => false, 'example' => '0xFF0000'], + ], + [ + 'name' => 'PositionNormalized', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '字幕位置信息,以屏幕左下角为起点的 x,y 轴坐标。'."\n" + ."\n" + .'> x,y需要进行归一化计算。实际数值需要乘以画面高度。如画面高度为720p设置的PositionNormalized为[0.1,0.5] ,则字幕的实际位置是 x轴为72,y轴为360。', + 'type' => 'array', + 'items' => ['description' => '字幕位置坐标值。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.32'], + 'required' => true, + 'example' => '[0.32,0.27]', + ], + ], + [ + 'name' => 'ShowSourceLan', + 'in' => 'query', + 'schema' => ['description' => '是否显示源语言,ShowSourceLan默认为false。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'MaxLines', + 'in' => 'query', + 'schema' => ['description' => '显示行数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + ], + [ + 'name' => 'WordPerLine', + 'in' => 'query', + 'schema' => ['description' => '每行显示字数,取值范围:支持输入【1,500】内的整数。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20'], + ], + [ + 'name' => 'FontSizeNormalized', + 'in' => 'query', + 'schema' => ['description' => '字体尺寸,取值范围:【0,1】', 'type' => 'number', 'format' => 'float', 'required' => true, 'example' => '0.037'], + ], + [ + 'name' => 'BorderWidthNormalized', + 'in' => 'query', + 'schema' => ['description' => '字体粗细,取值范围:【0,1】', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.05'], + ], + [ + 'name' => 'BgWidthNormalized', + 'in' => 'query', + 'schema' => ['description' => '字幕背景尺寸,取值范围:【0,1】', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.09'], + ], + [ + 'name' => 'CopyFrom', + 'in' => 'query', + 'schema' => ['description' => '复制的字幕模板,传值SubtitleName', 'type' => 'string', 'required' => false, 'example' => 'sub01'], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => '自定义字幕描述信息。可包含中英文、数字、字符,不超过128位。', 'type' => 'string', 'required' => false, 'example' => 'live AI subtitle template'], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => ['description' => '预览画面宽度,单位:px', 'type' => 'string', 'required' => false, 'example' => '1280'], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => ['description' => '预览画面高度,单位:px'."\n" + ."\n" + .'预览画面宽度x高度仅支持以下规格: '."\n" + .'- 横屏流畅 360P 640x360 '."\n" + .'- 竖屏流畅 360P 360x640'."\n" + .'- 横屏标清 480P 854x480'."\n" + .'- 竖屏标清 480P 480x854'."\n" + .'- 横屏高清 720P 1280x720'."\n" + .'- 竖屏高清 720P 720x1280'."\n" + .'- 横屏超清 1080P 1920x1080'."\n" + .'- 竖屏超清 1080P 1080x1920', 'type' => 'string', 'required' => false, 'example' => '720'], + ], + ], + 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5C1E43DC-9E51-4771-82C0-7D5ECEB547A1', - ], - 'CertInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'CertInfo' => [ - 'description' => '证书信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '个人测试证书(免费版)状态。取值:'."\n" - ."\n" - .'- **success**:已生效。'."\n" - .'- **checking**:检测域名是否在阿里云直播。'."\n" - .'- **cname_error**:域名没有切到阿里云直播。'."\n" - .'- **domain_invalid**:域名包含非法字符。'."\n" - .'- **unsupport_wildcard**:不支持泛域名。'."\n" - .'- **applying**:证书申请中。'."\n" - .'- **failed**:证书申请失败。'."\n" - ."\n" - .'>**status**只有在域名证书为个人测试证书(免费版)时有意义。当域名证书不是个人测试证书(免费版)时,会返回空值。', - 'type' => 'string', - 'example' => 'success', - ], - 'CertLife' => [ - 'description' => '证书时长。'."\n" - .' - 有效期大于12个月的,显示XX year(s) XX month(s)。例如,2 years 3 months表示有效期为2年3个月。'."\n" - .'- 有效期小于12个月的,显示为XX month(s)。例如,3 months表示有效期为3个月。'."\n" - ."\n\n" - ."\n\n" - ."\n\n" - ."\n", - 'type' => 'string', - 'example' => '3 months', - ], - 'CertExpireTime' => [ - 'description' => '证书过期时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'example' => '2018-06-03T22:03:39Z', - ], - 'SSLPub' => [ - 'description' => '证书公钥。', - 'type' => 'string', - 'example' => 'yourSSLPub', - ], - 'SSLProtocol' => [ - 'description' => 'HTTPS开启状态。取值:'."\n" - .'- **on**:已开启。'."\n" - .'- **off**:未开启。', - 'type' => 'string', - 'example' => 'on', - ], - 'CertType' => [ - 'description' => '证书类型。取值:'."\n" - ."\n" - .'- **free**:个人测试证书(免费版)。'."\n" - .'- **cas**:云盾证书。'."\n" - .'- **upload**:自定义上传。', - 'type' => 'string', - 'example' => 'cas', - ], - 'CertDomainName' => [ - 'description' => '证书匹配的播流域名或推流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'CertName' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'example' => 'Cert-****', - ], - 'CertOrg' => [ - 'description' => '证书组织。', - 'type' => 'string', - 'example' => 'Let\'s Encrypt', - ], - 'DomainName' => [ - 'description' => '播流域名或推流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****'], + 'SubtitleId' => ['description' => '字幕模板ID。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], + 'description' => '', ], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\",\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"CertLife\\": \\"3 months\\",\\n \\"CertExpireTime\\": \\"2018-06-03T22:03:39Z\\",\\n \\"SSLPub\\": \\"yourSSLPub\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"CertType\\": \\"cas\\",\\n \\"CertDomainName\\": \\"example.com\\",\\n \\"CertName\\": \\"Cert-****\\",\\n \\"CertOrg\\": \\"Let\'s Encrypt\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n \\n success\\n 3 months\\n example.com\\n yourSSLPub\\n Let\'s Encrypt\\n example.com\\n cas\\n 2018-06-03T22:03:39Z\\n Cert-****\\n on\\n \\n\\n5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\n","errorExample":""}]', - 'title' => '查询指定直播域名证书信息', - 'description' => '先获取直播域名,再调用本接口获取指定直播域名证书信息。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\",\\n \\"SubtitleId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64-af62-20e91b96****\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + 'title' => '添加直播字幕模板', + 'description' => '## 使用说明'."\n" + ."\n" + .'- 本接口支持添加直播字幕模板配置,模板配置支持描述字幕内容、布局等信息。'."\n" + .'- 添加字幕模板后,您还需要调用[AddLiveAIProduceRules](~~2799676~~)接口添加字幕规则,重新推流后,播流中才能带字幕。'."\n" + .'- 实时字幕仅支持北京、上海、新加坡、印尼、沙特区域。'."\n" + ."\n" + .'>当前实时字幕功能处于公测阶段,单个用户最多可添加300个字幕模板。暂时免费使用,公测结束后将正常收费,具体时间另行通知。'."\n" + .'>'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特殊错误码'."\n" - .'|ErrorCode 错误码 |Message 错误信息 |HTTP 状态 |语义 |'."\n" - .'| ------------- |------------ | ----- | ----- |'."\n" - .'|InvalidDomain.NotFound |The domain provided does not belong to you. |404 |域名不存在或不属于当前用户。|', - ], - 'DescribeLiveCertificateList' => [ - 'summary' => '查询指定域名或请求账号下的所有证书列表信息。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2024-12-04T05:54:29.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAISubtitle'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveAISubtitle', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'AddLiveAppRecordConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '播流所属应用名称。AppName名称与推流地址中的AppName名称对应,模板才能生效。若不限制AppName可填*,即可匹配所有AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'OssEndpoint', + 'in' => 'query', + 'schema' => ['description' => 'OSS存储的Endpoint名称。'."\n" + ."\n" + .'直播录制文件存储至OSS,需提前创建OSS Bucket,创建方法请参见[配置OSS](~~84932~~) 。', 'type' => 'string', 'required' => true, 'example' => 'oss-cn-beijing.aliyuncs.com'], + ], + [ + 'name' => 'OssBucket', + 'in' => 'query', + 'schema' => ['description' => 'OSS存储的Bucket名称。'."\n" + ."\n" + .'直播录制文件存储至OSS,需提前创建OSS Bucket,创建方法请参见[配置OSS](~~84932~~) 。', 'type' => 'string', 'required' => true, 'example' => 'liveBucket****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '播流名称。StreamName名称与推流地址中的StreamName名称对应,模板才能生效。若不限制StreamName可填*,即可匹配AppName下所有StreamName。', 'type' => 'string', 'required' => false, 'example' => 'teststream'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '录制开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> 设置的时间必须是实际推流时间开始7天之内,只在流级别录制(StreamName不为空)有效。', 'type' => 'string', 'required' => false, 'example' => '2018-04-10T09:57:21Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '录制结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> EndTime与StartTime相差不应超过7天,超过7天将按照7天计算。只在流级别录制(StreamName不为空)有效。', 'type' => 'string', 'required' => false, 'example' => '2018-04-16T09:57:21Z'], + ], + [ + 'name' => 'OnDemand', + 'in' => 'query', + 'schema' => ['description' => '按需/手动录制。取值:'."\n" + ."\n" + .'- **0**(默认值):关闭,即自动录制。'."\n" + .'- **1**:按需录制,通过HTTP回调方式。需要先通过[AddLiveRecordNotifyConfig](~~2847891~~)接口配置OnDemandUrl,否则默认不录制。'."\n" + .'- **2**:按需录制,通过解析推流参数。'."\n" + .'- **7**:手动录制,默认不录制,可以通过[RealTimeRecordCommand](~~2847882~~)接口手动控制录制开启或停止。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'DelayTime', + 'in' => 'query', + 'schema' => ['description' => '断流拼接时长。'."\n" + .'直播断流时长超过设定的拼接时长后,将会生成新文件,断流拼接时长支持15~21600秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '180'], + ], + [ + 'name' => 'RecordFormat', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '您的推流域名和播流域名。多个域名用英文逗号(,)分隔。', - 'type' => 'string', + 'description' => '记录详情。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'SliceDuration' => ['description' => '单个切片时长。单位:秒。'."\n" + ."\n" + .'>当RecordFormat.N.Format(格式)设为m3u8或cmaf时,本参数才有效。'."\n" + .'>'."\n" + ."\n" + .'不填则默认为30秒。取值范围:5s~30s。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], + 'SliceOssObjectPrefix' => ['description' => '切片名称。'."\n" + ."\n" + .'>当RecordFormat.N.Format(格式)设为m3u8或cmaf时,本参数才需要配置。'."\n" + .'>'."\n" + ."\n" + .'- 默认30秒一片,小于256字节,支持变量匹配,包含{AppName}、{StreamName}、{UnixTimestamp}、{Sequence}。'."\n" + .'- 参数值必须包含{UnixTimestamp}和{Sequence}变量。', 'type' => 'string', 'required' => false, 'example' => 'record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}'], + 'CycleDuration' => ['description' => '周期录制时长。单位:秒。'."\n" + ."\n" + .'> - 若不填则取默认值,不同录制格式的默认值不同:m3u8、cmaf 格式默认6小时,flv、mp4格式默认1小时。'."\n" + .'> - 如果在一个录制周期内,直播流发生了断流,但是在断流拼接时长内,该直播流又正常推流,那么仍会在同一个录制文件中继续录制。'."\n" + .'>- 一条直播流必须断流超过断流拼接时长,才会生成录制文件。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'OssObjectPrefix' => ['description' => 'OSS存储的录制文件名。'."\n" + ."\n" + .'- 文件名小于256字节,支持变量匹配,包含 {AppName}、{StreamName}、{Sequence}、{StartTime}、{EndTime}、{EscapedStartTime}、{EscapedEndTime}。'."\n" + .'- 参数值必须要有{StartTime}或{EscapedStartTime}和{EndTime}或{EscapedEndTime}。'."\n" + ."\n\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}'], + 'Format' => ['description' => '格式。目前支持M3U8、FLV、MP4、CMAF。取值:'."\n" + ."\n" + .'>RecordFormat和TranscodeRecordFormat两者至少需要设置一个。如果选择m3u8或cmaf格式,必须同时设置请求参数RecordFormat.N.SliceOssObjectPrefix和RecordFormat.N.SliceDuration。'."\n" + .'>'."\n" + ."\n" + .'- m3u8。'."\n" + .'- flv。'."\n" + .'- mp4。'."\n" + .'- cmaf。', 'type' => 'string', 'required' => false, 'example' => 'm3u8'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'maxItems' => 3, + ], + ], + [ + 'name' => 'TranscodeRecordFormat', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '转码记录详情。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'SliceDuration' => ['description' => '转码流录制单个切片时长,单位:秒。'."\n" + ."\n" + .'>当TranscodeRecordFormat.N.Format(转码流录制格式)设为m3u8或cmaf时,本参数才生效。'."\n" + .'>'."\n" + ."\n" + .'不填则默认为30秒。取值范围:5s~30s。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], + 'SliceOssObjectPrefix' => ['description' => '转码流录制切片名称。'."\n" + ."\n" + .'>当TranscodeRecordFormat.N.Format(转码流录制格式)设为m3u8或cmaf时,本参数才需要配置。'."\n" + .'>'."\n" + ."\n" + .'- 默认30秒一片,小于256字节,支持变量匹配,包含{AppName}、{StreamName}、{UnixTimestamp}、{Sequence}。'."\n" + .'- 参数值必须包含{UnixTimestamp}和{Sequence}变量。', 'type' => 'string', 'required' => false, 'example' => 'record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}'], + 'CycleDuration' => ['description' => '转码流录制周期录制时长。单位:秒。'."\n" + .'> 若不填则取默认值,不同录制格式的默认值不同:m3u8、cmaf 格式默认6小时,flv、mp4格式默认1小时。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '21600'], + 'OssObjectPrefix' => ['description' => '转码流录制OSS存储的录制文件名。'."\n" + .'- 文件名小于256字节,支持变量匹配,包含 {AppName}、{StreamName}、{Sequence}、{StartTime}、{EndTime}、{EscapedStartTime}、{EscapedEndTime}。'."\n" + .'- 参数值必须要有{StartTime}或{EscapedStartTime}和{EndTime}或{EscapedEndTime}。'."\n", 'type' => 'string', 'required' => false, 'example' => 'record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}'], + 'Format' => ['description' => '转码流录制格式。目前支持M3U8、FLV、MP4、CMAF。取值:'."\n" + .'>如果选择m3u8或cmaf格式,必须同时设置请求参数TranscodeRecordFormat.N.SliceOssObjectPrefix和TranscodeRecordFormat.N.SliceDuration。'."\n" + .'>'."\n" + ."\n" + .'- m3u8。'."\n" + .'- flv。'."\n" + .'- mp4。'."\n" + .'- cmaf。', 'type' => 'string', 'required' => false, 'example' => 'm3u8'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'maxItems' => 3, + ], + ], + [ + 'name' => 'TranscodeTemplates', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '转码流录制的转码模板组。', + 'type' => 'array', + 'items' => ['description' => '- 转码流录制的[转码模板](~~45039~~),可进行多个设置,最多为10个。'."\n" + .'- 当设置TranscodeRecordFormat.N.xxx配置时,至少需要设置一个TranscodeTemplates。'."\n" + .'- 如需录制多个或全部的转码流,可设置TranscodeTemplates.1为*****即可。'."\n" + .'>TranscodeTemplates不允许传入`raw`,属于保留标识。
RepeatList表示为TranscodeTemplates.N中的N,可理解为递增进行多个设置,如:TranscodeTemplates.1=sd,TranscodeTemplates.2=hd。', 'type' => 'string', 'required' => false, 'example' => 'sd'], 'required' => false, - 'example' => 'demo.aliyundoc.com,example.com', + 'example' => 'sd', + 'maxItems' => 10, ], ], ], @@ -2770,196 +2400,149 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'CertificateListModel' => [ - 'description' => '数据类型。', - 'type' => 'object', - 'properties' => [ - 'Count' => [ - 'description' => '证书个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'CertList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Cert' => [ - 'description' => '证书列表信息。', - 'type' => 'array', - 'items' => [ - 'description' => '证书列表信息。', - 'type' => 'object', - 'properties' => [ - 'LastTime' => [ - 'description' => '证书签发时间。单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1512388659', - ], - 'Fingerprint' => [ - 'description' => '证书指纹。', - 'type' => 'string', - 'example' => '****', - ], - 'CertName' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'example' => 'Cert-****', - ], - 'Issuer' => [ - 'description' => '证书发行商。', - 'type' => 'string', - 'example' => '*****', - ], - 'CertId' => [ - 'description' => '证书ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '123456', - ], - 'Common' => [ - 'description' => '证书的CN属性。', - 'type' => 'string', - 'example' => 'example.net', - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"CertificateListModel\\": {\\n \\"Count\\": 2,\\n \\"CertList\\": {\\n \\"Cert\\": [\\n {\\n \\"LastTime\\": 1512388659,\\n \\"Fingerprint\\": \\"****\\",\\n \\"CertName\\": \\"Cert-****\\",\\n \\"Issuer\\": \\"*****\\",\\n \\"CertId\\": 123456,\\n \\"Common\\": \\"example.net\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\n 2\\n \\n \\n ****\\n *****\\n 123456\\n Cert-****\\n 1512388659\\n example.net\\n \\n \\n\\n","errorExample":""}]', - 'title' => '获取证书列表信息', - 'description' => '如果请求中指定域名,则返回域名下的证书。如果请求中未指定域名,则返回请求账号下的所有证书。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidOssEndpoint.Malformed', 'errorMessage' => '%s', 'description' => ''], + ['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified parameter OssBucket is not valid.', 'description' => 'OSSBucket参数错误,请您确认该OSS BUCKET参数是否正确。'], + ['errorCode' => 'InvalidOssBucket.NotFound', 'errorMessage' => 'The parameter OssBucket does not exist.', 'description' => ''], + ['errorCode' => 'InvalidFormat.Malformed', 'errorMessage' => 'Specified parameter Format is not valid.', 'description' => 'Format参数错误,请您确认该Format参数是否正确。'], + ['errorCode' => 'InvalidCycleDuration.Malformed', 'errorMessage' => 'Specified CycleDuration Format is not valid.', 'description' => 'CycleDuration参数格式错误,请您确认该CycleDuration参数格式是否正确。'], + ['errorCode' => 'InvalidSliceDuration.Malformed', 'errorMessage' => 'Specified SliceDuration Format is not valid.', 'description' => ''], + ['errorCode' => 'InvalidTemplateLength.Malformed', 'errorMessage' => 'Specified record template length is not valid.', 'description' => ''], + ['errorCode' => 'InvalidTemplate.ForbidRaw', 'errorMessage' => 'Template named raw is Forbidden.', 'description' => ''], + ['errorCode' => 'MissingTemplate', 'errorMessage' => 'Template is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingOssObjectPrefix', 'errorMessage' => 'OssObjectPrefix is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingSliceOssObjectPrefix', 'errorMessage' => 'SliceOssObjectPrefix is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidOssObjectPrefix.Malformed', 'errorMessage' => 'Specified parameter OssObjectPrefix is not valid.', 'description' => ''], + ['errorCode' => 'InvalidSliceOssObjectPrefix.Malformed', 'errorMessage' => 'Specified parameter SliceOssObjectPrefix is not valid.', 'description' => 'SliceOssObjectPrefix参数错误,请您确认该SliceOssObjectPrefix参数是否正确。'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ['errorCode' => 'InvalidFormat.IllegalOperation', 'errorMessage' => 'Specified parameter Format can not be multiple.', 'description' => ''], + ['errorCode' => 'InvalidDelayTime', 'errorMessage' => 'Specified Delaytime is invalid.', 'description' => ''], + ['errorCode' => 'Live2Vod.ConfigAlreadyExists', 'errorMessage' => 'Had live2vod record config already.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified EndTime does not math the specified StartTime or current time.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.Mismatch', 'errorMessage' => 'Specified StartTime does not math the current time.', 'description' => ''], + ], + ], + 'title' => '添加录制配置', + 'summary' => '配置APP录制,输出内容保存到OSS中。', + 'description' => '- 请确保在使用该接口前,已充分了解直播录制的收费方式和价格。计费详情,请参见[直播录制费用](~~195287~~)。'."\n" + ."\n" + .'- 若采用录制存储至OSS方式进行直播录制功能配置,需要开通OSS服务以及创建Bucket,具体操作请参见[配置OSS](~~84932~~)。'."\n" + ."\n" + .'- 录制文件存储在OSS中,会产生存储费用,在OSS中计费详情请参见[存储费用](~~173534~~)。'."\n" + ."\n" + .'- 直播录制功能,可以将直播内容进行录制,保存至您指定的位置,在您需要回看直播内容时可以进行回看。存储至OSS的录制内容,支持多种保存格式(TS、MP4、FLV、CMAF),支持自定义录制策略(自动录制、按需录制、手动录制),调用此接口可进行录制模版设置。更多直播录制功能使用可参见[直播录制](~~199357~~)说明文档。'."\n" + .'- (DomainName,'."\n" + .' AppName, StreamName)三元组只能对应一个配置,如果该三元组已经存在一个配置了,再调用本接口添加配置会返回配置已存在错误。'."\n" + .'- 通过该接口设置的各项配置,需要在直播重新推流之后才能生效,并且长期有效。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'SetLiveDomainCertificate' => [ - 'summary' => '设置某域名下证书功能是否启用及修改证书信息。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 注意事项:'."\n" + ."\n" + .'视频直播支持触发拉流,当使用触发拉流域名对应的播放地址进行播放时,会自动触发阿里云视频直播服务进行拉流直播,无人播放时则不会回源站进行拉流。自动录制、按需录制、手动录制功能应用在触发拉流场景时,如果触发拉流无人播放,则不会回源站拉流,自动录制、按需录制、手动录制同样也不会进行录制。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAppRecordConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveAppRecordConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + ], + 'AddLiveAppSnapshotConfig' => [ + 'summary' => '配置截图信息。输出内容保存到OSS中,重新推流即生效。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '指定证书所属加速域名。属于`https`加速类型。', - 'type' => 'string', - 'required' => true, - 'example' => 'developer.aliyundoc.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'CertName', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'Cert-****', - ], + 'schema' => ['description' => '播流所属应用名称。'."\n" + .'AppName名称与推流地址中的AppName名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'CertType', + 'name' => 'TimeInterval', 'in' => 'query', - 'schema' => [ - 'description' => '证书类型。取值:'."\n" - ."\n" - .'- **upload**:上传证书。'."\n" - .'- **cas**:证书中心证书。'."\n" - .'- **free**:个人测试证书(免费版)。', - 'type' => 'string', - 'required' => false, - 'example' => 'free', - 'enum' => [ - 'free', - 'cas', - 'upload', - ], - ], + 'schema' => ['description' => '截图周期,每个间隔周期截一次图片。单位:秒。取值范围:**5~3600**。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '3600', 'minimum' => '5', 'example' => '5'], ], [ - 'name' => 'SSLProtocol', + 'name' => 'OssEndpoint', 'in' => 'query', - 'schema' => [ - 'description' => 'HTTPS证书是否启用。取值: '."\n" - .'- **on**:启用。如果取值为**on**,则必须同时设置请求参数SSLPub和SSLPri。'."\n" - .'- **off**(默认值):不启用。', - 'type' => 'string', - 'required' => true, - 'example' => 'off', - ], + 'schema' => ['description' => 'OSS存储的Endpoint名称。'."\n" + ."\n" + .'配置完成后,您可以根据配置回调信息,在OSS控制台查找指定的配置内容。OSS Endpoint需要提前创建,创建方法请参考[配置OSS](~~84932~~) 。', 'type' => 'string', 'required' => true, 'example' => 'cn-oss-****.aliyuncs.com'], ], [ - 'name' => 'SSLPub', + 'name' => 'OssBucket', 'in' => 'query', - 'schema' => [ - 'description' => '公钥内容。'."\n" - ."\n" - .'> 当SSLProtocol取值为on时,本参数才必填。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '****', - ], + 'schema' => ['description' => 'OSS存储的Bucket名称。'."\n" + ."\n" + .'配置完成后,您可以根据配置回调信息,在OSS控制台查找指定的配置内容。OSS Bucket需要提前创建,创建方法请参考[配置OSS](~~84932~~) 。', 'type' => 'string', 'required' => true, 'example' => 'liveBucket****'], ], [ - 'name' => 'SSLPri', + 'name' => 'OverwriteOssObject', 'in' => 'query', - 'schema' => [ - 'description' => '私钥内容。'."\n" - ."\n" - .'> 当SSLProtocol取值为on时,本参数才必填。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '****', - ], + 'schema' => ['description' => '覆盖截图存储文件名。每次截图都覆盖此文件。'."\n" + ."\n" + .'- 小于256 Byte。'."\n" + .'- 目前仅支持生成JPG图片。'."\n" + .'- 支持变量匹配,包含{AppName}、{StreamName}。', 'type' => 'string', 'required' => false, 'example' => '{AppName}/{StreamName}.jpg'], ], [ - 'name' => 'ForceSet', + 'name' => 'SequenceOssObject', 'in' => 'query', - 'schema' => [ - 'description' => '忽略证书名称重复的校验,覆盖原有同名证书信息。固定取值:**1**。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '实时截图存储文件名。'."\n" + ."\n" + .'每次截图都递增存储,调用[DescribeLiveStreamSnapshotInfo](~~2847902~~)接口可以查询某一段时间的截图文件。'."\n" + ."\n" + .'- 小于256 Byte。'."\n" + .'- 目前仅支持生成JPG图片。'."\n" + .'- 支持变量匹配,包含{AppName}、{StreamName}、{UnixTimestamp}、{Sequence},其中 {UnixTimestamp}、{Sequence} 必填一个。', 'type' => 'string', 'required' => false, 'example' => 'snapshot/{AppName}/{StreamName}/{UnixTimestamp}.jpg'], + ], + [ + 'name' => 'Callback', + 'in' => 'query', + 'schema' => ['description' => '截图回调地址。', 'type' => 'string', 'required' => false, 'example' => 'https://learn.aliyundoc.com'], ], ], 'responses' => [ @@ -2967,217 +2550,110 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidSSLProtocol.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter SSLProtocol is not supported.', - ], - [ - 'errorCode' => 'SSLPub.MissingParameter', - 'errorMessage' => 'An input parameter "SSLPub" that is mandatory for processing the request is not supplied.', - ], - [ - 'errorCode' => 'SSLPri.MissingParameter', - 'errorMessage' => 'An input parameter "SSLPri" that is mandatory for processing the request is not supplied.', - ], - [ - 'errorCode' => 'InvalidSSLPub', - 'errorMessage' => 'The SSLPub you provided is malformed!', - ], - [ - 'errorCode' => 'InvalidSSLPri', - 'errorMessage' => 'The SSLPri you provided is malformed!', - ], - [ - 'errorCode' => 'Certificate.MissMatch', - 'errorMessage' => 'The SSLPri does not math the specified Certificate!', - ], - [ - 'errorCode' => 'InvalidCertificate.TooLong', - 'errorMessage' => 'The Certificate you provided is over the max length!', - ], - [ - 'errorCode' => 'InvalidCertName.TooLong', - 'errorMessage' => 'The Certificate name you provided is over the max length 128!', - ], - [ - 'errorCode' => 'IllegalOperationDomain', - 'errorMessage' => 'You are not authorized to operate the domain.', - ], - [ - 'errorCode' => 'Certificate.NotPermittedOff', - 'errorMessage' => 'Turn off certificate will change domain scheduling, please contact customer service', - ], - [ - 'errorCode' => 'Certificate.SettedNotEffect', - 'errorMessage' => 'Certificate was successfully setted but does\'t take effect for protecting current service, please contact customer service', - ], - [ - 'errorCode' => 'Certificate.NotFind', - 'errorMessage' => 'Not find the certificate info.', - ], - [ - 'errorCode' => 'AuthenticationFailed', - 'errorMessage' => 'Authentication failed.', - ], - [ - 'errorCode' => 'SetDomainCertificate.ParameterError', - 'errorMessage' => 'Parameters have error.', - ], - [ - 'errorCode' => 'InvalidSSLPubOrInvalidSSLPri', - 'errorMessage' => 'The SSLPri or SSLPub you provided is malformed!', - ], - [ - 'errorCode' => 'Certificate.StatusError', - 'errorMessage' => 'Certificate is not exist or its status is error.', - ], - [ - 'errorCode' => 'DeleteFailed', - 'errorMessage' => 'Delete certificate is failed.', - ], - [ - 'errorCode' => 'Certificate.Duplicated', - 'errorMessage' => 'The certificate name is duplicated.', - ], - [ - 'errorCode' => 'Certificate.FormatError', - 'errorMessage' => 'The certificate format is error.', - ], - [ - 'errorCode' => 'Certificate.KeyNull', - 'errorMessage' => 'The private key is not null.', - ], - [ - 'errorCode' => 'Key.Malformed', - 'errorMessage' => 'The private key format is error.', - ], - [ - 'errorCode' => 'CertStorage.failed', - 'errorMessage' => 'The certificate storage failed.', - ], - [ - 'errorCode' => 'CertificateContent.Duplicated', - 'errorMessage' => 'The certificate is already uploaded, please don\'t upload again.', - ], - [ - 'errorCode' => 'Certificate.Expired', - 'errorMessage' => 'The certificate is expired.', - ], - [ - 'errorCode' => 'InvalidDomain.notOnline', - 'errorMessage' => 'The domain is not online, please check the domain status and try again later.', - ], - [ - 'errorCode' => 'Decode.Error', - 'errorMessage' => 'The certificate sslpub or sslpri decode error.', - ], - [ - 'errorCode' => 'sslPub.Error', - 'errorMessage' => 'The SSLPub encoded failed.', - ], - [ - 'errorCode' => 'sslPri.Error', - 'errorMessage' => 'The SSLPri encoded failed.', - ], - [ - 'errorCode' => 'DomainInSafeMode', - 'errorMessage' => 'This domain is in the safe mode. if you want to do this operation, please contact us!', - ], - [ - 'errorCode' => 'DomainInProtectedMode', - 'errorMessage' => 'This domain is in the protected mode. if you want to do this operation, please contact us!', - ], - [ - 'errorCode' => 'FunctionMutex', - 'errorMessage' => 'Function is mutex with other function.', - ], - [ - 'errorCode' => 'DomainOffline', - 'errorMessage' => 'The domain is not online, please check the domain status and try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => 'Illegal domain operate is not permitted.', - ], - ], - [ - [ - 'errorCode' => 'CertName.MissingParameter', - 'errorMessage' => 'The CertName parameter is required.', - ], + ['errorCode' => 'InvalidOverwriteOssObjectOrSequenceOssObject.Malformed', 'errorMessage' => 'Specified paramters OverwriteOssObject or SequenceOssObject should have one.', 'description' => 'OverwriteOssObject与SequenceOssObject参数任选其一。'], + ['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified parameter OssBucket is not valid.', 'description' => 'OSSBucket参数错误,请您确认该OSS BUCKET参数是否正确。'], + ['errorCode' => 'InvalidOssEndpoint.Malformed', 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', 'description' => ''], + ['errorCode' => 'InvalidOverwriteOssObject.Malformed', 'errorMessage' => 'Specified parameter OverwriteOssObject is not valid.', 'description' => 'OverwriteOSSObject参数错误,请您确认该OverwriteOSSObject参数是否正确。'], + ['errorCode' => 'InvalidSequenceOssObject.Malformed', 'errorMessage' => 'Specified parameter SequenceOssObject is not valid.', 'description' => 'SequenceOssObject参数错误,请您确认该SequenceOssObject参数是否正确。'], + ['errorCode' => 'InvalidOssBucket.NotFound', 'errorMessage' => 'The parameter OssBucket does not exist.', 'description' => ''], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}"}]', - 'title' => '设置域名证书', - 'description' => '先获取直播域名,再调用本接口设置域名下证书是否启用和修改证书信息。'."\n" + 'title' => '添加直播截图配置', + 'description' => '- 请确保在使用该接口前,已充分了解直播截图的收费方式和价格。计费详情,请参见[直播截图费用](~~195286~~)。'."\n" + ."\n" + .'- 视频直播截图功能需要将截图文件存放在Bucket中,因此需要开通OSS服务并且拥有至少一个Bucket用于存储这些截图文件。具体操作请参见[配置OSS](~~84932~~)。'."\n" + ."\n\n" + .'- 直播截图存储在OSS中,会产生存储费用,在OSS中计费详情请参见[存储费用](~~173534~~)。'."\n" + .'- OSS Bucket必须与播流域名的直播中心同地域,不支持跨地域截图。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchDeleteLiveDomainConfigs' => [ - 'summary' => '批量删除域名配置。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveAppSnapshotConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + ], + 'AddLiveAudioAuditConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'create', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], ], 'parameters' => [ [ - 'name' => 'DomainNames', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '您的推流域名或播流域名。多个域名使用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com,example.aliyundoc.com,example.com', - ], + 'schema' => ['description' => '地域id。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'FunctionNames', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '功能列表名称。多个功能使用英文逗号(,)分隔。更多详情,请参考下表**Functions功能说明**。', - 'type' => 'string', - 'required' => true, - 'example' => 'referer_white_list_set,ip_black_list_set', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '直播流所属应用名称。AppName名称与推流地址中的AppName名称对应,模板才能生效。区分大小写。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流名称。StreamName名称与推流地址中的StreamName名称对应,模板才能生效。区分大小写。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + [ + 'name' => 'OssBucket', + 'in' => 'query', + 'schema' => ['description' => 'OSS存储的Bucket名称。', 'type' => 'string', 'required' => false, 'example' => 'liveBucket****'], + ], + [ + 'name' => 'OssEndpoint', + 'in' => 'query', + 'schema' => ['description' => 'OSS存储的Endpoint名称。', 'type' => 'string', 'required' => false, 'example' => 'cn-oss-****.aliyuncs.com'], + ], + [ + 'name' => 'OssObject', + 'in' => 'query', + 'schema' => ['description' => 'OSS存储的录制文件名。', 'type' => 'string', 'required' => false, 'example' => 'liveObject****'], + ], + [ + 'name' => 'BizType', + 'in' => 'query', + 'schema' => ['description' => '业务类型。可用于选择模型,默认值为域名。', 'type' => 'string', 'required' => false, 'example' => 'example.edu'], ], ], 'responses' => [ @@ -3185,128 +2661,99 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', - ], + ['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '存在无效参数,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', - 'title' => '批量删除域名配置', - 'description' => '先获取需要删除配置的直播域名,再调用本接口批量删除域名配置。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '## Functions格式说明'."\n" - ."\n" - .'- 示例如下所示:'."\n" - .'`[{"functionArgs":[{"argName":"domain_name","argValue":"developer.aliyundoc.com"}],"functionName":"set_req_host_header"}]`'."\n" + 'title' => '添加直播语音审核配置', + 'summary' => '添加直播语音审核配置信息。', + 'description' => '- 直播语音审核通过拾取语音流对于其中违规敏感内容进行识别审查,并通过回调的方式实时将违规内容通知到用户,用户可以对内容进行复审并进行相应处置。'."\n" ."\n" - .'- 某些功能,如filetype_based_ttl_set,可以设置多条记录,当需要更新其中某条记录时,可通过该条记录的configId来指定,示例如下所示:'."\n" - .'`[{"functionArgs":[{"argName":"file_type","argValue":"jpg"},{"argName":"ttl","argValue":"18"},{"argName":"weight","argValue":"30"}],"functionName":"filetype_based_ttl_set","configId":506***}]`'."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" ."\n" - .'## Functions功能说明'."\n" + .' 请确保在使用该接口前,已充分了解直播语音审核产品的收费方式和价格。详情请参见[智能审核费用](~~195288~~)。'."\n" ."\n" - .'| 名称 | 参数 |'."\n" - .'|---------------|--------|'."\n" - .'| **referer_white_list_set**:refer白名单。| **refer_domain_allow_list**:白名单列表,多个使用英文逗号(,)分隔。
**allow_empty**:是否允许空refer进入。取值:**on**或**off**。|'."\n" - .'| **referer_black_list_set**:refer黑名单。| **refer_domain_deny_list**:黑名单列表,多个使用英文逗号(,)分隔。
**allow_empty**:是否允许空refer进入。取值:**on**或**off**。|'."\n" - .'| **filetype_based_ttl_set**:文件过期时间设置。| **ttl**:cache时间。单位:秒,取值范围是1~99999999(3年多一些)。
**file_type**:文件类型。多个使用英文逗号(,)隔开。
**weight**:权重。取值范围:**1~99**。|'."\n" - .'| **path_based_ttl_set**:目录过期时间设置。| **ttl**:cache时间。单位:秒,取值范围是1~99999999(3年多一些)。
**path**:目录。必须以正斜线(/)开头。
**weight**:权重。取值范围:**1~99**。|'."\n" - .'| **oss_auth**:OSS鉴权Bucket。| **oss_bucket_id**:用户bucket地址。|'."\n" - .'| **ip_black_list_set**:IP黑名单。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" - .'| **ip_allow_list_set**:IP白名单。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" - .'| **ip_white_list_set**:访问频次控制免拦截。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" - .'| **error_page**:错误页面重定向。| **error_code**:错误码。
**rewrite_page**:重定向页面。|'."\n" - .'| **set_req_host_header**:修改回源Host头。| **domain_name**:回源Host头内容。|'."\n" - .'| **set_hashkey_args**:忽略URL参数。| **hashkey_args**:保留参数的列表。多个使用英文逗号(,)分隔。
**disable**:是否忽略所有参数。取值:仅支持on(忽略所有参数)或off(不忽略)。|'."\n" - .'| **aliauth**:阿里鉴权。| **auth_type**:鉴权类型。取值:**type_a**(鉴权A)、**no_auth**(关闭鉴权)。
**auth_key1**:鉴权key1,鉴权key支持大写字母、小写字母、数字,建议设置长度为8~32个字符。
**auth_key2**:鉴权key2。
**ali_auth_delta**:自定义鉴权缓冲时间,单位:分钟。建议最小设置为1分钟,无上限限制。
**auth_m3u8**:是否开启m3u8内容改写,对m3u8里面的ts补齐对应的鉴权,可以避免ts的访问鉴权失败。取值:**on**(默认值)或**off**。|'."\n" - .'| **remote_auth**:直播远程鉴权 。|**enable**:是否开启远程鉴权,必填项。取值:on或off。
**remote_auth_path** : 鉴权服务器地址,必填项。
**remote_auth_pattern** :鉴权模式串。有以下功能可设置:
- **param**:是否向鉴权服务器透传推流URL中的参数,取值pass(默认)或fail。
- **args_white**:透传指定参数设置,多个参数用英文逗号(,)分隔。
- **args_black**:不透传指定参数设置,多个参数用英文逗号(,)分隔。
- **code**:鉴权状态码,code=XXX,鉴权服务器在鉴权成功时返回给直播的HTTP状态码。例如:code=200。code=~XXX,鉴权服务器在鉴权失败时返回给直播的HTTP状态码。例如:code=~403。
- **delta** :鉴权超时时长。
- **retry**:鉴权超时重试次数。
- **timeout**:鉴权超时行为,取值:**pass**或**fail**。**pass**:视频直播将直接通过用户请求。**fail**:视频直播将响应鉴权失败状态码(403)给用户。
- **async**:异步鉴权,取值**on**(开启异步鉴权)或**off**(默认,关闭异步鉴权)。|'."\n" - .'| **set_resp_header**:设置响应头(浏览器端可见)。| **key**:响应头。取值:
**Content-Type。**
**Cache-Control。**
**Content-Disposition。**
**Content-Language。**
**Expires。**
**Access-Control-Allow-Origin。**
**Access-Control-Allow-Methods。**
**Access-Control-Allow-Headers。**
**Access-Control-Max-Age。**
**Access-Control-Expose-Headers。**
**value**:响应头内容。删除填写null。
|'."\n" - .'| **https_force**:强制HTTPS跳转。| **enable**:功能开关。取值:**on**或**off**。https_force和http_force只能存在其中一个,两者为互斥关系,配置另外一个需要先删除原来的配置。|'."\n" - .'| **http_force**:强制HTTP跳转。| **enable**:功能开关。取值:**on**或**off**。https_force和http_force只能存在其中一个,两者为互斥关系,配置另外一个需要先删除原来的配置。|'."\n" - .'| **forward_scheme**:自适应回源。| **enable**:功能开关,取值:**on**或**off**。
**scheme_origin**:回源站协议 (http、https、follow)。
**scheme_origin_port**:回源站协议端口(80、443、80:443)。|'."\n" - .'| **green_manager**:鉴黄功能。| **enable**:是否开启鉴黄功能。取值:**on**或**off**。|'."\n" - .'| **tmd_signature**:自定义的访问频次控制规则。| **name**:规则名称。域名内不可重复。
**path**:可重复,需校验URI路径合法性。
**pathType**:匹配规则。**0**前缀匹配,**1**完全匹配。
**interval**:监测时长。单位:秒。参数限制必须≥10。
**count**:单IP访问次数。
**action**:阻断类型。**0**封禁,**1**人机识别。
**ttl**:阻断时长。单位:秒。|'."\n" - .'|**l2_oss_key**:L2 OSS 回源私钥。| **private_oss_auth**:是否开启私有OSS鉴权功能。取值:**on**或**off**。|'."\n" - .'|**video_seek**:视频切片拖拽开关。 |**enable**:功能开关。取值:**on**或**off**。|'."\n" - .'|**gzip**:页面Gzip优化 。|**enable**:功能开关。取值:**on**或**off**。|'."\n" - .'|**tesla**:页面优化加速。 |**enable**:功能开关。取值:**on**或**off**。|'."\n" - .'|**ali_ua**:User-Agent限制访问。 |**ua**:User-Agent。
**type**:名单类型。取值**black**和**white**。|'."\n" - .'|**host_redirect:rewrite**功能。 |**regex**:需要重写的URL。例如 ^/$。
**replacement**:目标URL。例如 /go/act/sale/tbzlsy.php。
**flag**:仅支持:redirect、break。|'."\n" - .'|**ipv6**:ipv6配置。 |**switch**:开关(必填)。取值:**on**或**off**,开启功能,一旦开启后,如需关闭请取消勾选,不要删除配置,否则不生效。
**region**:开启IPv6功能的地域,取值:cn-beijing(北京)、cn-shanghai(上海)、cn-shenzhen(深圳)、cn-qingdao(青岛)、apsoutheast-1(新加坡)、eu-central-1(德国)、ap-northeast-1(东京)、ap-southeast-5(雅加达)。|'."\n" - .'|**ali_location**:区域限制访问。 |**location**:地域列表。
**type**:名单类型。取值**black**或**white**。|'."\n" - .'|**cc_defense**:防CC攻击。 |**enable**:开启或关闭防CC攻击。取值:**on**或**off**。|'."\n" - .'|**alilive**:视频直播配置。 | **notify_url**:直播通知URL。
**enable**:功能开关。取值:**on**或**off**。
**live_forbid_flv**:禁止播放flv。取值:**on**或**off**。
**live_forbid_rtmp**:禁止播放rtmp。取值:**on**或**off**。
l**ive_forbid_hls**:禁止播放hls。取值:**on**或**off**。|'."\n" - .'|**ali_grtn**:grtn业务接入开关。 |**grtn_rts_pub**:RTS推流开关,推流域名使用。取值:**on**或**off**。
**grtn_rts_play**:RTS播流开关,播流域名使用。取值:**on**或**off**。
**grtn_rts_transcode**:RTS H5播放自动转码开关。取值:**on**或**off**。|'."\n" - .'|**edge_function**:边缘函数。 |必填参数:
**rule**:DSL规则。
**pri**:优先级。
**enable**:本条规则是否生效。取值:**on**或**off**。
可选参数:
**name**:规则名称。
**pos**:规则执行位置。
**brk**:命中本条规则后,当前执行位置剩余规则均跳过。
**option**:option管控。
**grammar**:grammar管控。可选值:空、es2、js。
**jsmode**:js域名白单管控,可选值:**redirect**或**bypass**。|'."\n" - .'|**https_tls_version**:TLS协议版本。 |**tls10**:开启TLSv1.0,默认为**on**。取值:**on**或**off**。
**tls11**:开启TLSv1.1,默认为**on**。取值:**on**或**off**。
**tls12**:开启TLSv1.2,默认为**on**。取值:**on**或**off**。
**tls13**:开启TLSv1.3,默认为**on**。取值:**on**或**off**。|'."\n" - .'|**https_option**:http协议设置。 |**http2**:是否开启http2,默认为**off**。取值:**on**或**off**。
**live_http2**:是否开启live\\_http2,默认为**off**。取值:**on**或**off**。|', + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchSetLiveDomainConfigs' => [ - 'summary' => '批量配置域名。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAudioAuditConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveAudioAuditConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', + ], + 'AddLiveAudioAuditNotifyConfig' => [ + 'summary' => '添加音频审核回调信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '106875', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], ], 'parameters' => [ [ - 'name' => 'DomainNames', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '需要进行批量配置的域名。取值可以是推流域名、主播流域名或子播流域名。多个域名用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com,example.aliyundoc.com,example.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Functions', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '功能列表。'."\n" - ."\n" - .'某些功能,如`filetype_based_ttl_set`,可以设置多条记录,当需要更新其中某条记录时,可通过该条记录的`configId`来指定。更多信息,请参见下表**Function格式说明**和**Functions功能说明**。', - 'type' => 'string', - 'required' => true, - 'example' => ' [{"functionArgs":[{"argName":"file_type","argValue":"jpg"},{"argName":"ttl","argValue":"18"},{"argName":"weight","argValue":"30"}],"functionName":"filetype_based_ttl_set","configId":506***}]', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'Callback', + 'in' => 'query', + 'schema' => ['description' => '回调地址。用于接收问题语音内容的回调。', 'type' => 'string', 'required' => false, 'example' => 'https://demo.aliyundoc.com/callback'], + ], + [ + 'name' => 'CallbackTemplate', + 'in' => 'query', + 'schema' => ['description' => '审核回调模板。取值:'."\n" + ."\n" + .'- **{DomainName}**:播流域名。'."\n" + .'- **{AppName}**:播流所属的应用名称。'."\n" + .'- **{StreamName}**:播流名称。'."\n" + .'- **{Timestamp}**:Unix时间戳,返回的回调时间。单位:秒。'."\n" + .'- **{Result}**:检测结果。'."\n", 'type' => 'string', 'required' => false, 'example' => '{"domain":{DomainName},"app":{AppName},"stream":{StreamName},"timestamp":{Timestamp},"result":{Result}}'], ], ], 'responses' => [ @@ -3314,702 +2761,551 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidFunctions.Malformed', - 'errorMessage' => 'Specified Functions is malformed.', - ], - [ - 'errorCode' => 'InvalidFunctionArgs.Malformed', - 'errorMessage' => 'The specified FunctionArgs is invalid.', - ], - [ - 'errorCode' => 'InvalidArgValue.Malformed', - 'errorMessage' => 'Specified ArgValue is malformed.', - ], - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', - ], - [ - 'errorCode' => 'Invalid%s.Malformed', - 'errorMessage' => 'ArgValue [%s] is malformed.', - ], - [ - 'errorCode' => 'MissingParameter%s', - 'errorMessage' => 'The specified value of ArgName[%s] is missing.', - ], - [ - 'errorCode' => 'FunctionMutex', - 'errorMessage' => 'Function is mutex with other function.', - ], - [ - 'errorCode' => 'RewriteHostRely', - 'errorMessage' => 'Domain name is configured as rewrite host by others.', - ], - [ - 'errorCode' => 'ConfigurationConflicts', - 'errorMessage' => 'The staging environment has a configuration in effect and cannot modify the production environment configuration.', - ], + ['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '存在无效参数,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ['errorCode' => 'UnsafeCallback', 'errorMessage' => '%s, please check and try again later.', 'description' => '回调地址不安全,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t04F0F334-1335-436C-A1D7-6C044FE73368\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}"}]', - 'title' => '批量配置域名', - 'description' => '先获取需要进行配置的直播域名,再调用本接口批量配置域名。'."\n" + 'title' => '添加音频审核回调信息', + 'description' => '- 直播语音审核服务会根据回调模板的配置来返回检测结果。'."\n" + ."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '## Functions格式说明'."\n" ."\n" - .'- 示例如下所示:'."\n" - .'`[{"functionArgs":[{"argName":"domain_name","argValue":"developer.aliyundoc.com"}],"functionName":"set_req_host_header"}]`'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '## 检测结果格式'."\n" ."\n" - .'- 某些功能,如filetype_based_ttl_set,可以设置多条记录,当需要更新其中某条记录时,可通过该条记录的configId来指定,示例如下所示:'."\n" - .'`[{"functionArgs":[{"argName":"file_type","argValue":"jpg"},{"argName":"ttl","argValue":"18"},{"argName":"weight","argValue":"30"}],"functionName":"filetype_based_ttl_set","configId":506***}]`'."\n" + .'Result示例:'."\n" ."\n" - .'## Functions功能说明'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "scene": "antispam",'."\n" + .' "label": "ad",'."\n" + .' "suggestion": "block",'."\n" + .' "rate": 99.91,'."\n" + .' "details": ['."\n" + .' {'."\n" + .' "startTime": 1571989513,'."\n" + .' "endTime": 1571989515,'."\n" + .' "text": "三楼香巴拉队主携手5楼了。",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989515,'."\n" + .' "endTime": 1571989518,'."\n" + .' "text": "上,烤鱼火锅节日期两个腾庆大款。",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989520,'."\n" + .' "endTime": 1571989522,'."\n" + .' "text": "多少香巴拉会员均享39",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989523,'."\n" + .' "endTime": 1571989526,'."\n" + .' "text": "皇上现金单次消费立减66元。",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989530,'."\n" + .' "endTime": 1571989533,'."\n" + .' "text": "元大奖详询3398787",'."\n" + .' "label": "ad"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989533,'."\n" + .' "endTime": 1571989534,'."\n" + .' "text": "好消息,好像。",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989538,'."\n" + .' "endTime": 1571989539,'."\n" + .' "text": "携带行车证4人。",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989542,'."\n" + .' "endTime": 1571989543,'."\n" + .' "text": "代理现在还有10分钟。",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989545,'."\n" + .' "endTime": 1571989547,'."\n" + .' "text": "建行etc见证没",'."\n" + .' "label": "normal"'."\n" + .' },'."\n" + .' {'."\n" + .' "startTime": 1571989550,'."\n" + .' "endTime": 1571989552,'."\n" + .' "text": "赵信元、吕梁市国投集团旗下。",'."\n" + .' "label": "normal"'."\n" + .' }'."\n" + .' ]'."\n" + .' }'."\n" + .']'."\n" ."\n" - .'| 名称 | 参数 |'."\n" - .'|---------------|--------|'."\n" - .'| **referer_white_list_set**:refer白名单。| **refer_domain_allow_list**:白名单列表,多个使用英文逗号(,)分隔。
**allow_empty**:是否允许空refer进入。取值:**on**或**off**。|'."\n" - .'| **referer_black_list_set**:refer黑名单。| **refer_domain_deny_list**:黑名单列表,多个使用英文逗号(,)分隔。
**allow_empty**:是否允许空refer进入。取值:**on**或**off**。|'."\n" - .'| **filetype_based_ttl_set**:文件过期时间设置。| **ttl**:cache时间。单位:秒,取值范围是1~99999999(3年多一些)。
**file_type**:文件类型。多个使用英文逗号(,)隔开。
**weight**:权重。取值范围:**1~99**。|'."\n" - .'| **path_based_ttl_set**:目录过期时间设置。| **ttl**:cache时间。单位:秒,取值范围是1~99999999(3年多一些)。
**path**:目录。必须以正斜线(/)开头。
**weight**:权重。取值范围:**1~99**。|'."\n" - .'| **oss_auth**:OSS鉴权Bucket。| **oss_bucket_id**:用户bucket地址。|'."\n" - .'| **ip_black_list_set**:IP黑名单。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" - .'| **ip_allow_list_set**:IP白名单。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" - .'| **ip_white_list_set**:访问频次控制免拦截。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" - .'| **error_page**:错误页面重定向。| **error_code**:错误码。
**rewrite_page**:重定向页面。|'."\n" - .'| **set_req_host_header**:修改回源Host头。| **domain_name**:回源Host头内容。|'."\n" - .'| **set_hashkey_args**:忽略URL参数。| **hashkey_args**:保留参数的列表。多个使用英文逗号(,)分隔。
**disable**:是否忽略所有参数。取值:仅支持on(忽略所有参数)或off(不忽略)。|'."\n" - .'| **aliauth**:阿里鉴权。| **auth_type**:鉴权类型。取值:**type_a**(鉴权A)、**no_auth**(关闭鉴权)。
**auth_key1**:鉴权key1,鉴权key支持大写字母、小写字母、数字,建议设置长度为8~32个字符。
**auth_key2**:鉴权key2。
**ali_auth_delta**:自定义鉴权缓冲时间,单位:秒。建议最小设置为60秒,无上限限制。
**auth_m3u8**:是否开启m3u8内容改写,对m3u8里面的ts补齐对应的鉴权,可以避免ts的访问鉴权失败。取值:**on**(默认值)或**off**。|'."\n" - .'| **remote_auth**:直播远程鉴权 。|**enable**:是否开启远程鉴权,必填项。取值:on或off。
**remote_auth_path** : 鉴权服务器地址,必填项。
**remote_auth_pattern** :鉴权模式串。有以下功能可设置:
- **param**:是否向鉴权服务器透传推流URL中的参数,取值pass(默认)或fail。
- **args_white**:透传指定参数设置,多个参数用英文逗号(,)分隔。
- **args_black**:不透传指定参数设置,多个参数用英文逗号(,)分隔。
- **code**:鉴权状态码,code=XXX,鉴权服务器在鉴权成功时返回给直播的HTTP状态码。例如:code=200。code=~XXX,鉴权服务器在鉴权失败时返回给直播的HTTP状态码。例如:code=~403。
- **delta** :鉴权超时时长。
- **retry**:鉴权超时重试次数。
- **timeout**:鉴权超时行为,取值:**pass**或**fail**。**pass**:视频直播将直接通过用户请求。**fail**:视频直播将响应鉴权失败状态码(403)给用户。
- **async**:异步鉴权,取值**on**(开启异步鉴权)或**off**(默认,关闭异步鉴权)。|'."\n" - .'| **set_resp_header**:设置响应头(浏览器端可见)。| **key**:响应头。取值:
**Content-Type。**
**Cache-Control。**
**Content-Disposition。**
**Content-Language。**
**Expires。**
**Access-Control-Allow-Origin。**
**Access-Control-Allow-Methods。**
**Access-Control-Allow-Headers。**
**Access-Control-Max-Age。**
**Access-Control-Expose-Headers。**
**value**:响应头内容。删除填写null。
|'."\n" - .'| **https_force**:强制HTTPS跳转。| **enable**:功能开关。取值:**on**或**off**。https_force和http_force只能存在其中一个,两者为互斥关系,配置另外一个需要先删除原来的配置。|'."\n" - .'| **http_force**:强制HTTP跳转。| **enable**:功能开关。取值:**on**或**off**。https_force和http_force只能存在其中一个,两者为互斥关系,配置另外一个需要先删除原来的配置。|'."\n" - .'| **forward_scheme**:自适应回源。| **enable**:功能开关,取值:**on**或**off**。
**scheme_origin**:回源站协议 (http、https、follow)。
**scheme_origin_port**:回源站协议端口(80、443、80:443)。|'."\n" - .'| **green_manager**:鉴黄功能。| **enable**:是否开启鉴黄功能。取值:**on**或**off**。|'."\n" - .'| **tmd_signature**:自定义的访问频次控制规则。| **name**:规则名称。域名内不可重复。
**path**:可重复,需校验URI路径合法性。
**pathType**:匹配规则。**0**前缀匹配,**1**完全匹配。
**interval**:监测时长。单位:秒。参数限制必须≥10。
**count**:单IP访问次数。
**action**:阻断类型。**0**封禁,**1**人机识别。
**ttl**:阻断时长。单位:秒。|'."\n" - .'|**l2_oss_key**:L2 OSS 回源私钥。| **private_oss_auth**:是否开启私有OSS鉴权功能。取值:**on**或**off**。|'."\n" - .'|**video_seek**:视频切片拖拽开关。 |**enable**:功能开关。取值:**on**或**off**。|'."\n" - .'|**gzip**:页面Gzip优化 。|**enable**:功能开关。取值:**on**或**off**。|'."\n" - .'|**tesla**:页面优化加速。 |**enable**:功能开关。取值:**on**或**off**。|'."\n" - .'|**ali_ua**:User-Agent限制访问。 |**ua**:User-Agent。
**type**:名单类型。取值**black**和**white**。|'."\n" - .'|**host_redirect:rewrite**功能。 |**regex**:需要重写的URL。例如 ^/$。
**replacement**:目标URL。例如 /go/act/sale/tbzlsy.php。
**flag**:仅支持:redirect、break。|'."\n" - .'|**ipv6**:ipv6配置。 |**switch**:开关(必填)。取值:**on**或**off**,开启功能,一旦开启后,如需关闭请取消勾选,不要删除配置,否则不生效。
**region**:开启IPv6功能的地域,取值:cn-beijing(北京)、cn-shanghai(上海)、cn-shenzhen(深圳)、cn-qingdao(青岛)、apsoutheast-1(新加坡)、eu-central-1(德国)、ap-northeast-1(东京)、ap-southeast-5(雅加达)。|'."\n" - .'|**ali_location**:区域限制访问。 |**location**:地域列表。
**type**:名单类型。取值**black**或**white**。|'."\n" - .'|**cc_defense**:防CC攻击。 |**enable**:开启或关闭防CC攻击。取值:**on**或**off**。|'."\n" - .'|**alilive**:视频直播配置。 | **notify_url**:直播通知URL。
**enable**:功能开关。取值:**on**或**off**。
**live_forbid_flv**:禁止播放flv。取值:**on**或**off**。
**live_forbid_rtmp**:禁止播放rtmp。取值:**on**或**off**。
l**ive_forbid_hls**:禁止播放hls。取值:**on**或**off**。|'."\n" - .'|**ali_grtn**:grtn业务接入开关。 |**grtn_rts_pub**:RTS推流开关,推流域名使用。取值:**on**或**off**。
**grtn_rts_play**:RTS播流开关,播流域名使用。取值:**on**或**off**。
**grtn_rts_transcode**:RTS H5播放自动转码开关。取值:**on**或**off**。|'."\n" - .'|**edge_function**:边缘函数。 |必填参数:
**rule**:DSL规则。
**pri**:优先级。
**enable**:本条规则是否生效。取值:**on**或**off**。
可选参数:
**name**:规则名称。
**pos**:规则执行位置。
**brk**:命中本条规则后,当前执行位置剩余规则均跳过。
**option**:option管控。
**grammar**:grammar管控。可选值:空、es2、js。
**jsmode**:js域名白单管控,可选值:**redirect**或**bypass**。|'."\n" - .'|**https_tls_version**:TLS协议版本。 |**tls10**:开启TLSv1.0,默认为**on**。取值:**on**或**off**。
**tls11**:开启TLSv1.1,默认为**on**。取值:**on**或**off**。
**tls12**:开启TLSv1.2,默认为**on**。取值:**on**或**off**。
**tls13**:开启TLSv1.3,默认为**on**。取值:**on**或**off**。|'."\n" - .'|**https_option**:http协议设置。 |**http2**:是否开启http2,默认为**off**。取值:**on**或**off**。
**live_http2**:是否开启live\\_http2,默认为**off**。取值:**on**或**off**。|', - 'extraInfo' => '| 错误代码 | 描述 | HTTP状态码 | 语义 |'."\n" - .'|---------------|---------------|---------|---------------|'."\n" - .'|InvalidFunctions.Malformed | Specified Functions is malformed. | 400 | 指定的Functions不合法。 |'."\n" - .'| InvalidFunctionName.ValueNotSupported | unctionName %s is not supported. | 400 | 不支持的FunctionName %s(%s为具体功能名)。|'."\n" - .'| InvalidArgName.ValueNotSupported | ArgName %s is not supported. | 400 | 不支持的ArgName %s(%s为具体参数名)。 |'."\n" - .'| InvalidArgValue.Malformed | Specified ArgValue is malformed. | 400 | 指定的ArgValue不合法。 |', - ], - 'DescribeLiveDomainConfigs' => [ - 'summary' => '查询直播域名配置,一次可查询多个功能配置。', - 'methods' => [ - 'post', - 'get', + .'```'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAudioAuditNotifyConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveAudioAuditNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', + ], + 'AddLiveCenterTransfer' => [ + 'summary' => '添加直播中心转推配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '您的推流域名或播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'FunctionNames', + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '直播流应用名称。输入的AppName必须与需要转推的直播流AppName保持一致,方可生效。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'testapp'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => true, 'example' => 'teststream'], + ], + [ + 'name' => 'DstUrl', + 'in' => 'query', + 'schema' => ['description' => '转推的第三方直播地址,最多支持添加1个地址。'."\n" + ."\n" + .'>目标地址协议必须和转推的直播流协议一致,目前仅支持RTMP和SRT协议的转推地址。', 'type' => 'string', 'required' => true, 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2'], + ], + [ + 'name' => 'TransferArgs', 'in' => 'query', 'schema' => [ - 'description' => '功能列表名称。多个功能使用英文逗号(,)分隔。更多详情,请参见下表**Functions功能说明**。', + 'description' => '转推有效时间。取值:'."\n" + ."\n" + .'- **always**:永久生效。'."\n" + ."\n" + .'- **time**:指定时间内有效。'."\n" + ."\n" + .'>取值为**time**时,**StartTime**和**EndTime**必填。', 'type' => 'string', 'required' => true, - 'example' => 'set_req_host_header,set_hashkey_args', + 'enumValueTitles' => ['always' => '永久生效', 'time' => '指定时间内有效'], + 'example' => 'always', + 'enum' => ['always', 'time'], ], ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => "\n" + .'转推开始时间。'."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-12-21T10:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '转推结束时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'>结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2017-12-22T08:00:00Z'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED', - ], - 'DomainConfigs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DomainConfig' => [ - 'description' => '直播域名配置。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '配置状态,取值:'."\n" - ."\n" - .'- **success**:配置成功。'."\n" - .'- **testing**:测试中。'."\n" - .'- **failed**:配置失败。'."\n" - .'- **configuring**:配置中。', - 'type' => 'string', - 'example' => 'success', - ], - 'ConfigId' => [ - 'description' => '配置ID。', - 'type' => 'string', - 'example' => '5003576', - ], - 'FunctionName' => [ - 'description' => '域名配置功能名称。', - 'type' => 'string', - 'example' => 'set_req_host_header', - ], - 'FunctionArgs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'FunctionArg' => [ - 'description' => '域名功能配置参数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ArgName' => [ - 'description' => '参数名称。', - 'type' => 'string', - 'example' => 'domain_name', - ], - 'ArgValue' => [ - 'description' => '参数值。', - 'type' => 'string', - 'example' => 'developer.aliyundoc.com', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7908F2FF-44F8-120F-9FD6-85AE4B6C19EC'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'CenterTransfersStreamOverLimit', 'errorMessage' => 'CenterTransfers stream is over limit for this domainName.', 'description' => ''], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ['errorCode' => 'CodeIllegalDuration', 'errorMessage' => 'param end_time is before start_time', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidUser', - 'errorMessage' => 'The user\'s account is invalid.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\",\\n \\"DomainConfigs\\": {\\n \\"DomainConfig\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"ConfigId\\": \\"5003576\\",\\n \\"FunctionName\\": \\"set_req_host_header\\",\\n \\"FunctionArgs\\": {\\n \\"FunctionArg\\": [\\n {\\n \\"ArgName\\": \\"domain_name\\",\\n \\"ArgValue\\": \\"developer.aliyundoc.com\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\nF8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\n\\n \\n success\\n set_req_host_header\\n 5003576\\n \\n \\n developer.aliyundoc.com\\n domain_name\\n \\n \\n \\n\\n","errorExample":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\",\\n \\"DomainConfigs\\": {\\n \\"DomainConfig\\": [\\n { \\n \\"Status\\": \\"success\\",\\n \\"FunctionArgs\\": {\\n \\"FunctionArg\\": [\\n {\\n \\"ArgName\\": \\"domain_name\\",\\n \\"ArgValue\\": \\"testscdn3.cdnpe.com\\"\\n }\\n ]\\n },\\n \\"ConfigId\\": 5003576,\\n \\"FunctionName\\": \\"set_req_host_header\\"\\n },\\n {\\n \\"FunctionArgs\\": {\\n \\"Status\\": \\"success\\",\\n \\"FunctionArg\\": [\\n {\\n \\"ArgName\\": \\"file_type\\",\\n \\"ArgValue\\": \\"txt\\"\\n },\\n {\\n \\"ArgName\\": \\"ttl\\",\\n \\"ArgValue\\": \\"13\\"\\n },\\n {\\n \\"ArgName\\": \\"weight\\",\\n \\"ArgValue\\": \\"8\\"\\n }\\n ]\\n },\\n \\"ConfigId\\": 5068995,\\n \\"FunctionName\\": \\"filetype_based_ttl_set\\"\\n }\\n ]\\n }\\n}"}]', - 'title' => '查询直播域名配置', - 'description' => '此接口一次可查询多个功能配置。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '## Functions功能说明'."\n" - ."\n\n" - .'>所有参数值均按照字符串类型处理。 某些功能,例如:**filetype_based_ttl_set**,可以设置多条纪录。当需要更新其中某条纪录时,可通过该条纪录的**configId**来指定。 '."\n" - ."\n\n" - .'| 名称 | 参数 |'."\n" - .'|---------------|--------|'."\n" - .'| **referer_white_list_set**:refer白名单。| **refer_domain_allow_list**:白名单列表,多个使用英文逗号(,)分隔。
**allow_empty**:是否允许空refer进入。取值:**on**或**off**。|'."\n" - .'| **referer_black_list_set**:refer黑名单。| **refer_domain_deny_list**:黑名单列表,多个使用英文逗号(,)分隔。
**allow_empty**:是否允许空refer进入。取值:**on**或**off**。|'."\n" - .'| **filetype_based_ttl_set**:文件过期时间设置。| **ttl**:cache时间。单位:秒。
**file_type**:文件类型。多个使用英文逗号(,)隔开。
**weight**:权重。取值范围:**1~99**。|'."\n" - .'| **path_based_ttl_set**:目录过期时间设置。| **ttl**:cache时间。单位:秒。
**path**:目录。必须以正斜线(/)开头。
**weight**:权重。取值范围:**1~99**。|'."\n" - .'| **oss_auth**:OSS鉴权Bucket。| **oss_bucket_id**:用户bucket名称。|'."\n" - .'| **ip_black_list_set**:IP黑名单。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" - .'| **ip_allow_list_set**:IP白名单。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" - .'| **ip_white_list_set**:访问频次控制免拦截。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" - .'| **error_page**:错误页面重定向。| **error_code**:错误码。
**rewrite_page**:重定向页面。|'."\n" - .'| **set_req_host_header**:修改回源Host头。| **domain_name**:回源Host头内容。|'."\n" - .'| **set_hashkey_args**:忽略url参数。| **hashkey_args**:保留参数的列表。多个使用英文逗号(,)分隔。
**disable**:是否忽略所有参数。取值:仅支持on(忽略所有参数)或off(不忽略)。|'."\n" - .'| **aliauth**:阿里鉴权。| **auth_type**:鉴权类型。取值:**type_a**(鉴权A)、**no_auth**(关闭鉴权)。
**auth_key1**:鉴权key1,鉴权key需为16~32个字符,支持大写字母、小写字母、数字。
**auth_key2**:鉴权key2。
**ali_auth_delta**:自定义鉴权缓冲时间,单位:秒。建议最小设置为60秒,无上限限制。|'."\n" - .'| **remote_auth**:直播远程鉴权 。|**enable**:是否开启远程鉴权,必填项。取值:on或off。
**remote_auth_path** : 鉴权服务器地址,必填项。
**remote_auth_pattern** :鉴权模式串。有以下功能可设置:
- **param**:是否向鉴权服务器透传推流URL中的参数,取值pass(默认)或fail。
- **args_white**:透传指定参数设置,多个参数用英文逗号(,)分隔。
- **args_black**:不透传指定参数设置,多个参数用英文逗号(,)分隔。
- **code**:鉴权状态码,code=XXX,鉴权服务器在鉴权成功时返回给直播的HTTP状态码。例如:code=200。code=~XXX,鉴权服务器在鉴权失败时返回给直播的HTTP状态码。例如:code=~403。
- **delta** :鉴权超时时长。
- **retry**:鉴权超时重试次数。
- **timeout**:鉴权超时行为,取值:**pass**或**fail**。**pass**:视频直播将直接通过用户请求。**fail**:视频直播将响应鉴权失败状态码(403)给用户。
- **async**:异步鉴权,取值**on**(开启异步鉴权)或**off**(默认,关闭异步鉴权)。|'."\n" - .'| **set_resp_header**:设置响应头(浏览器端可见)。| **key**:响应头。
**value**:响应头内容。删除填写null。|'."\n" - .'| **https_force**:强制HTTPS跳转。| **enable**:功能开关。取值:**on**或**off**。https_force和http_force只能存在其中一个,两者为互斥关系,配置另外一个需要先删除原来的配置。|'."\n" - .'| **http_force**:强制HTTP跳转。| **enable**:功能开关。取值:**on**或**off**。https_force和http_force只能存在其中一个,两者为互斥关系,配置另外一个需要先删除原来的配置。|'."\n" - .'| **l2_oss_key**:L2 OSS 回源私钥。| **private_oss_auth**:是否开启私有OSS鉴权功能。取值:**on**或**off**。|'."\n" - .'| **green_manager**:鉴黄功能。| **enable**:是否开启鉴黄功能。取值:**on**或**off**。|'."\n" - .'| **tmd_signature**:自定义的访问频次控制规则。| **name**:规则名称。域名内不可重复。
**path**:可重复,需校验uri路径合法性。
**pathType**:匹配规则。**0**前缀匹配,**1**完全匹配。
**interval**:监测时长。单位:秒。参数限制必须≥10。
**count**:单IP访问次数。
**action**:阻断类型。**0**封禁,**1**人机识别。
**ttl**:阻断时长。单位:秒。|'."\n" - .'| **forward_scheme**:自适应回源。| **enable**:功能开关,取值:on或off。
**scheme_origin**:回源站协议(http、https、follow)。
**scheme_origin_port**:回源站协议端口(80、443、80:443)。|'."\n" - .'| **video_seek**:视频切片拖拽开关。| **enable**:功能开关,取值:on或off。|'."\n" - .'| **gzip**:页面Gzip优化。| **enable**:功能开关,取值:on或off。|'."\n" - .'| **tesla**:页面优化加速。| **enable**:功能开关,取值:on或off。|'."\n" - .'| **ali_ua**:User-Agent限制访问。| **ua**:User-Agent
**type**:取值类型(black、white)。|'."\n" - .'| **host_redirect**:rewrite功能。| **regex**:需要重写的URL,例如 ^/$。
**replacement**:目标URL,例如 /go/act/sale/tbzlsy.php。
**flag**:仅支持:redirect、break。|'."\n" - .'| **ipv6**:ipv6配置。| **switch**:必填,开关,支持on或off,开启功能,一旦开启后,如需关闭请取消勾选,不要删除配置,否则不生效。
**region**:开启IPv6功能的地区,取值:cn-beijing(北京)、cn-shanghai(上海)、cn-shenzhen(深圳)、cn-qingdao(青岛)、apsoutheast-1(新加坡)、eu-central-1(德国)、ap-northeast-1(东京)、ap-southeast-5(雅加达)。|'."\n" - .'| **ali_location**:区域限制访问。| **location**:地域列表。|'."\n" - .'| **type**:取值类型。| black、white。|'."\n" - .'| **enable**:功能开关。| 取值:on或off。|'."\n" - .'| **live_forbid_flv**:禁止播放flv。| 取值:on或off。|'."\n" - .'| **live_forbid_rtmp**:禁止播放rtmp。| 取值:on或off。|'."\n" - .'| **live_forbid_hls**:禁止播放hls。| 取值:on或off。|'."\n" - .'|**https_option**:http协议设置。 |**http2**:是否开启http2,默认为**off**。取值:**on**或**off**。
**live\\_http2**:是否开启live_http2,默认为**off**。取值:**on**或**off**。|', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveDomainByCertificate' => [ - 'summary' => '根据证书信息获取加速域名。', - 'methods' => [ - 'post', - 'get', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', + 'title' => '添加直播中心转推配置', + 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveCenterTransfer'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveCenterTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'AddLiveDetectNotifyConfig' => [ + 'summary' => '添加直播审核回调通知地址。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '191820', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'SSLPub', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '证书公钥,需要base64编码后再进行encodeURIComponent。支持pem格式。', - 'type' => 'string', - 'required' => true, - 'example' => '******', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'SSLStatus', + 'name' => 'NotifyUrl', 'in' => 'query', - 'schema' => [ - 'description' => '表示返回的域名列表只包含开启或关闭HTTPS的域名。'."\n" - .'- **true**:开启。'."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '发现涉黄、涉政等违规内容的回调地址。', 'type' => 'string', 'required' => true, 'example' => 'http://demo.aliyundoc.com/examplecallback.action'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'CertInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'CertInfo' => [ - 'description' => '证书信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '列表详情。', - 'type' => 'object', - 'properties' => [ - 'CertCaIsLegacy' => [ - 'description' => '证书CA废弃状态。取值:'."\n" - .'- **yes**:已废弃。'."\n" - .'- **no**:正常,未废弃。', - 'type' => 'string', - 'example' => 'yes', - ], - 'CertExpireTime' => [ - 'description' => '证书过期时间。', - 'type' => 'string', - 'example' => 'Nov 29 00:00:00 2016 GMT', - ], - 'CertExpired' => [ - 'description' => '证书过期状态。 取值:'."\n" - .'- **yes**:已过期。'."\n" - .'- **no**:未过期。', - 'type' => 'string', - 'example' => 'yes', - ], - 'CertStartTime' => [ - 'description' => '证书开始时间。', - 'type' => 'string', - 'example' => 'Nov 29 23:59:59 2017 GMT', - ], - 'CertSubjectCommonName' => [ - 'description' => '证书所有者名称。', - 'type' => 'string', - 'example' => 'owner', - ], - 'CertType' => [ - 'description' => '证书类型,取值:**RSA**、**DSA**、**ECDSA**。', - 'type' => 'string', - 'example' => 'RSA', - ], - 'DomainList' => [ - 'description' => '如果该返回值不为空,则将该列表与证书做匹配,多个用半角逗号(,)分隔。', - 'type' => 'string', - 'example' => 'example.com,aliyundoc.com', - ], - 'DomainNames' => [ - 'description' => '证书匹配的域名(DNS字段),多个用半角逗号(,)分隔。', - 'type' => 'string', - 'example' => '*.example.com,aliyundoc.com', - ], - 'Issuer' => [ - 'description' => '证书颁发机构。', - 'type' => 'string', - 'example' => 'C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1', - ], - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Certificate.FormatError', - 'errorMessage' => 'The format of the certificate is invalid.', - ], - [ - 'errorCode' => 'SSLPub.MissingParameter', - 'errorMessage' => 'The Cert parameter is required.', - ], - [ - 'errorCode' => 'Decode.Error', - 'errorMessage' => 'Error decoding the SSLPub certificate.', - ], - [ - 'errorCode' => 'Certificate.DecodeError', - 'errorMessage' => 'An error occurred while decoding the certificate.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InvalidNotifyUrl.Malformed', 'errorMessage' => 'Specified NotifyUrl is invalid.', 'description' => '指定的notifyurl错误,请您确认该notifyurl参数是否正确。'], + ['errorCode' => 'InvalidNotifyUrl.Unsafe', 'errorMessage' => 'Specified NotifyUrl is not safe.', 'description' => '指定的notifyurl错误,请您确认该notifyurl参数是否正确。'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'Invalid Params.', 'description' => ''], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"CertCaIsLegacy\\": \\"yes\\",\\n \\"CertExpireTime\\": \\"Nov 29 00:00:00 2016 GMT\\",\\n \\"CertExpired\\": \\"yes\\",\\n \\"CertStartTime\\": \\"Nov 29 23:59:59 2017 GMT\\",\\n \\"CertSubjectCommonName\\": \\"owner\\",\\n \\"CertType\\": \\"RSA\\",\\n \\"DomainList\\": \\"example.com,aliyundoc.com\\",\\n \\"DomainNames\\": \\"*.example.com,aliyundoc.com\\",\\n \\"Issuer\\": \\"C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D\\n \\n Nov 29 00:00:00 2016 GMT\\n Nov 29 23:59:59 2017 GMT\\n RSA\\n owner\\n yes\\n *.example.com,aliyundoc.com\\n yes\\n C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1\\n example.com,aliyundoc.com\\n \\n","errorExample":""}]', - 'title' => '查询证书匹配的域名列表', - 'description' => '调用本接口可根据证书信息查询匹配的加速域名。'."\n" + 'title' => '添加回调通知URL', + 'description' => '- 直播审核服务会根据回调地址实时将违规内容通知到用户,用户可以对内容进行复审并进行相应处置。'."\n" + ."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveHttpsDomainList' => [ - 'summary' => '查询用户证书服务所有已配置证书信息。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveDetectNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + ], + 'AddLiveDomain' => [ + 'summary' => '调用该接口添加直播域名,一次只能提交一个域名。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '191821', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '106844', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'LiveDomainType', 'in' => 'query', 'schema' => [ - 'description' => '地域ID。', + 'description' => '域名业务类型。取值:'."\n" + ."\n" + .'- **liveVideo**:播流域名。如果选择DomainName(需要接入直播的域名)为播流域名时,则域名业务类型必须选择为liveVideo。'."\n" + .'- **liveEdge**:边缘推流域名。如果选择DomainName(需要接入直播的域名)为推流域名时,则域名业务类型必须选择为liveEdge。', 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'required' => true, + 'docRequired' => true, + 'example' => 'liveVideo', + 'enum' => ['liveVideo', 'liveEdge', 'liveGrtnPub', 'liveGrtnSub'], ], ], [ - 'name' => 'PageNumber', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '取得第几页,取值范围为:**[1,10000]**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - 'default' => '1', - ], + 'schema' => ['description' => '需要接入直播的推流域名或播流域名。支持泛域名,以英文句号(.)开头。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'example.aliyundoc.com'], ], [ - 'name' => 'PageSize', + 'name' => 'Region', 'in' => 'query', - 'schema' => [ - 'description' => '分页大小,默认为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => '直播域名单元化信息。取值:'."\n" + ."\n" + .'- **cn-beijing**:北京。'."\n" + .'- **cn-shanghai**:上海。'."\n" + .'- **cn-shenzhen**:深圳。'."\n" + .'- **cn-qingdao**:青岛。'."\n" + .'- **ap-southeast-1**:新加坡。'."\n" + .'- **eu-central-1**:德国。'."\n" + .'- **ap-northeast-1**:东京。'."\n" + .'- **ap-southeast-5**:雅加达。'."\n" + ."\n" + .'>Region(直播域名单元化信息)与Scope(加速区域)之间不存在相互限制。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-beijing'], ], [ - 'name' => 'Keyword', + 'name' => 'CheckUrl', + 'in' => 'query', + 'schema' => ['description' => '健康检测URL。', 'type' => 'string', 'required' => false, 'example' => 'http://demo.aliyundoc.com/status.html'], + ], + [ + 'name' => 'Scope', + 'in' => 'query', + 'schema' => ['description' => '加速区域。国际用户、中国站L3及以上用户设置有效。取值:'."\n" + ."\n" + .'- **domestic**(默认值):中国内地。'."\n" + .'- **overseas**:海外及港澳台加速。'."\n" + .'- **global**:全球加速。', 'type' => 'string', 'required' => false, 'example' => 'domestic'], + ], + [ + 'name' => 'TopLevelDomain', + 'in' => 'query', + 'schema' => ['description' => '顶级接入域。', 'type' => 'string', 'required' => false, 'example' => 'learn.aliyundoc.com'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['title' => '', 'description' => '资源组ID。关于资源组的更多信息,请参见[什么是资源组](~~2381067~~)。', 'type' => 'string', 'required' => false, 'example' => 'rg-aekzw******'], + ], + [ + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '加速域名。', - 'type' => 'string', + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签列表。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签健。', 'type' => 'string', 'required' => false, 'example' => 'TestKey'], + 'Value' => ['description' => '标签值。', 'type' => 'string', 'required' => false, 'example' => 'TestValue'."\n"], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'demo.aliyun.com', + 'maxItems' => 21, ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'CertInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'CertInfo' => [ - 'description' => '证书信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '列表详情。', - 'type' => 'object', - 'properties' => [ - 'CertCommonName' => [ - 'description' => '证书主域名。', - 'type' => 'string', - 'example' => 'example.org', - ], - 'CertExpireTime' => [ - 'description' => '证书过期时间。', - 'type' => 'string', - 'example' => '2018-12-26 14:45:09', - ], - 'CertName' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'CertStartTime' => [ - 'description' => '证书开始时间。', - 'type' => 'string', - 'example' => '2018-11-26 14:45:09', - ], - 'CertStatus' => [ - 'description' => '证书状态。'."\n" - .'- **ok**:正常。'."\n" - .'- **mismatch**:域名与证书不匹配。'."\n" - .'- **expired**:已过期。'."\n" - .'- **expire_soon**:即将过期。', - 'type' => 'string', - 'example' => 'mismatch', - ], - 'CertType' => [ - 'description' => '证书类型。'."\n" - .'- **cas**:云盾证书。'."\n" - .'- **upload**:自定义上传。', - 'type' => 'string', - 'example' => 'cas', - ], - 'CertUpdateTime' => [ - 'description' => '证书更新时间。', - 'type' => 'string', - 'example' => '2019-01-08 18:33:16', - ], - 'DomainName' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F5E8DF64-7175-4186-9B06-F002C0BBD0C5', - ], - 'TotalCount' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '16', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'NoHttpsDomain', - 'errorMessage' => 'Your account doesn\'t have https domain.', - ], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'Specified DomainName is malformed.', 'description' => ''], + ['errorCode' => 'InvalidRegion.Malformed', 'errorMessage' => 'Specified Region is malformed.', 'description' => '指定的区域无效。'], + ['errorCode' => 'InvalidSource.Content.Malformed', 'errorMessage' => 'Specified source content is malformed.', 'description' => ''], + ['errorCode' => 'InvalidTypeContent.Mismatch', 'errorMessage' => 'Specified source type does not math the specified source content.', 'description' => ''], + ['errorCode' => 'MissingSource.Content', 'errorMessage' => 'Specified source content is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingSource.Type', 'errorMessage' => 'Specified source type is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidSource.Type.Malformed', 'errorMessage' => 'Specified source type is malformed.', 'description' => ''], + ['errorCode' => 'InvalidSource.Priority.Malformed', 'errorMessage' => 'Specified source priority is malformed.', 'description' => ''], + ['errorCode' => 'InvalidScope.Malformed', 'errorMessage' => 'Specified Scope is malformed.', 'description' => ''], + ['errorCode' => 'SourceIp.Exceed', 'errorMessage' => 'The Certificate you provided is malformed!', 'description' => ''], + ['errorCode' => 'InvalidCertificate', 'errorMessage' => 'The Certificate you provided is malformed!', 'description' => ''], + ['errorCode' => 'InvalidCertificate.TooLong', 'errorMessage' => 'The Certificate you provided is over the max length!', 'description' => ''], + ['errorCode' => 'InnerAddDomainDenied', 'errorMessage' => 'Your account haven\'t bind aoneId, can not add domain.', 'description' => ''], + ['errorCode' => 'CheckSourceHealthFailed', 'errorMessage' => 'sources ip or source domain check health failed,please input right source.', 'description' => ''], + ['errorCode' => 'ExtensiveAndAllBothExist', 'errorMessage' => 'Extensive domain and the domain begins with \'all.\' can not exist at the same time.', 'description' => ''], + ['errorCode' => 'CdnTypeNotSupportExtensiveDomain', 'errorMessage' => 'Extensive domain not supported for this cdn type.', 'description' => ''], + ['errorCode' => 'ExtensiveAndSpecificDomainConflict', 'errorMessage' => 'Extensive domain and corresponding specific domain are mutually exclusive.', 'description' => '泛域名与对应的精确域名冲突'], + ['errorCode' => 'InvalidDomainNameLevel', 'errorMessage' => 'Domain name suffixed with alicdn.com only support third level.', 'description' => ''], + ['errorCode' => 'TopLevelDomain.NotFound', 'errorMessage' => 'TopLevelDomain is not exist.', 'description' => ''], + ['errorCode' => 'EntityNotExists.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => ''], + ['errorCode' => 'InvalidStatus.ResourceGroup', 'errorMessage' => 'It\'s now allowed to do this operation because of the current status of resource-group.', 'description' => ''], + ['errorCode' => 'NotInternationRealIdentity', 'errorMessage' => 'You need to do real name authentication when you use Chinese mainland resources.', 'description' => '你需要使用真正的授权身份来访问中国大陆的资源'], + ['errorCode' => 'RecordCheckNotAvailable', 'errorMessage' => 'Please try again later.', 'description' => ''], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => ''], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => ''], + ['errorCode' => 'DomainNotRecordedAliyun', 'errorMessage' => 'The domain not access Ali Cloud for the record please access.', 'description' => ''], + ['errorCode' => 'Abs.CheckUrl.Malformed', 'errorMessage' => 'The CheckUrl you provided is malformed!', 'description' => ''], + ['errorCode' => 'DomainOwnerVerifyFail', 'errorMessage' => 'Owner verification of the root domain failed.', 'description' => ''], + ['errorCode' => 'TopLevelDomain.Mismatch', 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', 'description' => ''], + ['errorCode' => 'InvalidResourceGroupId.Malformed', 'errorMessage' => 'Specified ResourceGroupId is malformed.', 'description' => ''], + ['errorCode' => 'DomainReserved', 'errorMessage' => 'The root domain of your domain is reserved by another account.', 'description' => '此域名的根域名已添加到其他账号。'], + ['errorCode' => 'ExceedLimit', 'errorMessage' => 'The number of domains has exceeded the limit.', 'description' => '拥有的域名数量已经超过上限。'], + ['errorCode' => 'LockFail', 'errorMessage' => 'Domain has been occupied.', 'description' => '域名当前在占用中,请稍后再试。'], + ], + 403 => [ + ['errorCode' => 'AccountException', 'errorMessage' => 'Account exception. Please open ticket to make an appeal.', 'description' => ''], + ['errorCode' => 'EntityNotExist.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => '资源组不存在。'], + ], + [ + ['errorCode' => 'InvalidUser', 'errorMessage' => 'The user\'s account is invalid.', 'description' => ''], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"CertCommonName\\": \\"example.org\\",\\n \\"CertExpireTime\\": \\"2018-12-26 14:45:09\\",\\n \\"CertName\\": \\"test\\",\\n \\"CertStartTime\\": \\"2018-11-26 14:45:09\\",\\n \\"CertStatus\\": \\"mismatch\\",\\n \\"CertType\\": \\"cas\\",\\n \\"CertUpdateTime\\": \\"2019-01-08 18:33:16\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"F5E8DF64-7175-4186-9B06-F002C0BBD0C5\\",\\n \\"TotalCount\\": 16\\n}","errorExample":""},{"type":"xml","example":"\\n 16\\n F5E8DF64-7175-4186-9B06-F002C0BBD0C5\\n \\n 2018-11-26 14:45:09\\n 2018-12-26 14:45:09\\n 2019-01-08 18:33:16\\n cas\\n test\\n mismatch\\n example.com\\n example.org\\n \\n","errorExample":""}]', - 'title' => '查询证书服务列表接口', - 'description' => '调用本接口可查询证书服务中该用户所有已配置的证书和域名信息。'."\n" + 'title' => '添加直播域名', + 'description' => '- 添加直播域名之前,必须先开通视频直播服务。具体操作请参见[开通服务](~~195292~~)。'."\n" + .'- 添加新的域名时,必须先进行验证,再调用本接口添加域名。您可以选择DNS解析验证或文件验证。请参见[验证域名归属权](~~184466~~)。'."\n" + .'- 使用视频直播需要进行推流和播流,您需要分别添加推流域名和播流域名,一次只能提交一个域名。'."\n" + .'- 完成添加域名操作后,还需要对添加的域名进行CNAME解析,请参见[配置CNAME域名解析](~~84929~~)。'."\n" + ."\n" + .'- 在添加推流域名和播流域名后,您需要关联域名,才能使用视频直播服务,具体操作请参见[关联域名](~~199338~~)。'."\n" + ."\n" + .'>从2019年2月19日起,通过AddLiveDomain添加的域名不支持中心推流的方式,通过CDN API添加的新域名同样不支持中心推流。请使用边缘推流添加一个推流域名(调用AddLiveDomain,业务类型为liveEdge),一个播流域名(调用AddLiveDomain,业务类型为liveVideo),并做关联(调用[AddLiveDomainMapping](~~2847792~~)),2019年2月19日之前添加的域名不受影响。'."\n" + .'>'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'ModifyLiveDomainSchdmByProperty' => [ - 'summary' => '修改直播域名加速区域。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-10-24T06:13:17.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-09-25T07:00:46.000Z', 'description' => '错误码发生变更、请求参数发生变更'], + ['createdAt' => '2023-05-09T08:02:40.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2022-12-22T09:03:34.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n\\t\\"Code\\":\\"InternalError\\",\\n\\t\\"HostId\\":\\"live.aliyuncs.com\\",\\n\\t\\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n\\t\\"RequestId\\":\\"6EBD1AC4-C34D-4BE1-963E-B688A228BE31\\"\\n}\\n"},{"type":"xml","example":"\\r\\n\\r\\n\\t15C66C7B-671A-4297-9187-2C4477247A74\\r\\n","errorExample":"{\\n\\t\\"RequestId\\":\\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}\\n"}]', + ], + 'AddLiveDomainMapping' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '107191', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'operationType' => 'create', + 'abilityTreeCode' => '106845', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', + 'name' => 'PushDomain', 'in' => 'query', - 'schema' => [ - 'description' => '需修改加速区域的直播域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '您的推流域名。域名类型为:**liveEdge**。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'Property', + 'name' => 'PullDomain', 'in' => 'query', - 'schema' => [ - 'description' => '修改加速区域。'."\n" - .'{“coverage”:“overseas”} 指的是该配置面向的是海外区域。下面是对三个支持的coverage值的说明:'."\n" - .'- domestic:中国内地。'."\n" - .'- overseas:海外及港澳台加速。'."\n" - .'- global:全球加速。', - 'type' => 'string', - 'required' => true, - 'example' => '{"coverage":"global"}', - ], + 'schema' => ['description' => '您的播流域名。域名类型为:**liveVideo**。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -4017,79 +3313,83 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Schedule.NotFound', - 'errorMessage' => 'there is no schedule domain found by the targeted coverage value', - ], - [ - 'errorCode' => 'DomainTraffic.ExceedThreshold', - 'errorMessage' => 'not allowed to do this operation because the last day traffic exceeds the threshold', - ], - [ - 'errorCode' => 'Domain.BeianInvalid', - 'errorMessage' => 'not allowed to do this operation because the domain registration record invalid in China main land', - ], - [ - 'errorCode' => 'Schedule.ChangeFail', - 'errorMessage' => 'change domain failed', - ], - [ - 'errorCode' => 'LockFail', - 'errorMessage' => 'The domain name is being used by another operation, please try again later.', - ], + ['errorCode' => 'InvalidPushDomain', 'errorMessage' => 'The PushDomain should be liveEdge type.', 'description' => ''], + ['errorCode' => 'InvalidPullDomain', 'errorMessage' => 'The PullDomain should be liveVideo type.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 15C66C7B-671A-4297-9187-2C4477247A74\\n","errorExample":""}]', - 'title' => '修改直播域名加速区域', - 'description' => '### QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveUserTags' => [ - 'summary' => '调用DescribeLiveUserTags查询用户标签。', - 'methods' => [ - 'post', - 'get', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '添加播流域名和推流域名的映射关系', + 'summary' => '添加直播域名播流域名和推流域名的映射关系配置。', + 'description' => '先调用[AddLiveDomain接口](~~2847789~~)添加播流域名和推流域名,才能调用本接口添加直播域名中播流域名和推流域名的映射关系配置。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveDomainMapping'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveDomainMapping', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\", \\n}"}]', + ], + 'AddLiveDomainPlayMapping' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '106846', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'PlayDomain', + 'in' => 'query', + 'schema' => ['description' => '子播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com'], + ], + [ + 'name' => 'PullDomain', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -4097,183 +3397,242 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '6B0256B6-2442-5BEF-B8D6-A0C28A801DFC', - ], - 'Tags' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签key。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签key。', - 'type' => 'string', - 'example' => 'key1', - ], - 'Value' => [ - 'description' => '标签Value。', - 'type' => 'array', - 'items' => [ - 'description' => '标签Value。', - 'type' => 'string', - 'example' => 'value1', - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6B0256B6-2442-5BEF-B8D6-A0C28A801DFC\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": [\\n \\"value1\\"\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 6B0256B6-2442-5BEF-B8D6-A0C28A801DFC\\n \\n key1\\n value1\\n \\n","errorExample":""}]', - 'title' => '获取直播用户标签', - 'description' => '### QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'VerifyLiveDomainOwner' => [ - 'summary' => '调用VerifyLiveDomainOwner验证域名归属权。', - 'methods' => [ - 'post', - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '添加主播放和子播放域名映射', + 'summary' => '添加主播流域名和子播流域名映射。', + 'description' => '先调用[AddLiveDomain接口](~~88327~~)添加主播流域名和子播流域名,才能调用本接口添加主播流域名和子播流域名映射。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveDomainPlayMapping'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveDomainPlayMapping', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]', + ], + 'AddLiveMessageGroupBand' => [ + 'summary' => '调用AddLiveMessageGroupBand新增禁言用户。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107290', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '235183', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'DomainName', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '校验的域名。仅支持单域名校验。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '群组ID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], [ - 'name' => 'VerifyType', + 'name' => 'BannedUsers', 'in' => 'query', + 'style' => 'simple', 'schema' => [ - 'description' => '域名归属权验证方式,取值:'."\n" - ."\n" - .'- dnsCheck:DNS解析验证。'."\n" - .'- fileCheck:文件验证。', - 'type' => 'string', + 'description' => '被禁言的用户列表。多个用半角逗号(,)隔开,最多不超过30个。', + 'type' => 'array', + 'items' => ['description' => '被禁言的用户。', 'type' => 'string', 'required' => false, 'example' => 'uid1'], 'required' => true, - 'example' => 'dnsCheck', ], ], + [ + 'name' => 'DataCenter', + 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致。'."\n" + .'> 当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], + ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '校验内容。', - 'type' => 'string', - 'example' => 'verify_dffeb6610035dcb77b413******', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '1BA6D7CE-55F1-5926-8764-F8663473AD0D', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DomainOwnerVerifyFail', - 'errorMessage' => 'Owner verification of the root domain failed.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"verify_dffeb6610035dcb77b413******\\",\\n \\"RequestId\\": \\"1BA6D7CE-55F1-5926-8764-F8663473AD0D\\"\\n}","errorExample":""},{"type":"xml","example":"\\n verify_dffeb6610035dcb77b413******\\n 1BA6D7CE-55F1-5926-8764-F8663473AD0D\\n","errorExample":""}]', - 'title' => '验证直播域名拥有者', - 'description' => '### QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DescribeLiveVerifyContent' => [ - 'summary' => '用于获取指定域名的归属校验内容。', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '新增禁言用户', + 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:AddLiveMessageGroupBand', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', + ], + 'AddLivePackageConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '191929', + 'abilityTreeNodes' => ['FEATUREliveJAENGU'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '只支持单个域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '直播域名(主播放域名)。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => 'AppName 名称与推流地址中的 AppName 名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有AppName。', 'type' => 'string', 'required' => true, 'example' => 'AppName'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => 'StreamName 名称与推流地址中的 StreamName 名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有StreamName。', 'type' => 'string', 'required' => true, 'example' => 'StreamName'], + ], + [ + 'name' => 'Protocol', + 'in' => 'query', + 'schema' => ['description' => '直播协议与封装格式。取值:'."\n" + ."\n" + .'- **HLS_CMAF**'."\n" + ."\n" + .'- **LLHLS_TS**'."\n" + .'(低延迟)'."\n" + ."\n" + .'- **LLHLS_CMAF**(低延迟)'."\n" + .'- **DASH_CMAF**'."\n" + .'- **HLSDASH_CMAF**', 'type' => 'string', 'required' => true, 'example' => 'HLS_CMAF'], + ], + [ + 'name' => 'SegmentNum', + 'in' => 'query', + 'schema' => ['description' => '直播M3U8切片个数。'."\n" + ."\n" + .'- 取值范围:3~10。'."\n" + ."\n" + .'- 默认值:3。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3'], + ], + [ + 'name' => 'SegmentDuration', + 'in' => 'query', + 'schema' => ['description' => '切片时长,单位:秒。'."\n" + ."\n" + .'- 如Protocol为HLS_CMAF,取值范围1~10,默认5秒;'."\n" + ."\n" + .'- 如Protocol为LLHLS_*,取值范围1~2,默认1秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5'], + ], + [ + 'name' => 'PartDuration', + 'in' => 'query', + 'schema' => ['description' => 'Part切片时长,单位:毫秒。'."\n" + ."\n" + .'- SegmentDuration为1s时,取值范围100~500ms,默认350ms。'."\n" + ."\n" + .'- SegmentDuration为2s时,取值范围100~1000ms,默认700ms。'."\n" + ."\n" + .'- 仅当Protocol为LLHLS_*时有效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '350'], + ], + [ + 'name' => 'IgnoreTranscode', + 'in' => 'query', + 'schema' => ['description' => '是否忽略转码流,取值:'."\n" + ."\n" + .'- **true**(默认值):忽略。'."\n" + ."\n" + .'- **false**:不忽略。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ @@ -4281,85 +3640,114 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '校验内容。', - 'type' => 'string', - 'example' => 'verify_dffeb6610035dcb77b413******', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '05D00B48-DF50-5DC0-A07D-A250DFAE****'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": \\"verify_dffeb6610035dcb77b413******\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","type":"json"}]', - 'title' => '查询校验归属权内容', - 'description' => '- 该API支持单个域名的验证内容查询。'."\n" - .'- 单用户调用频率限制为30次/秒。'."\n" - .'- 调用此API需要提供待验证的域名作为参数。'."\n" - .'- 成功调用后返回校验内容及请求ID,可用于后续操作或记录。', - ], - 'ChangeLiveDomainResourceGroup' => [ - 'summary' => '更改直播域名所属的资源组,即从原有资源组移入指定的资源组。', - 'methods' => [ - 'post', - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'InvalidParams', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数无效,请检查后重试。'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'InvalidProtocol', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数Protocol无效,请检查后重试。'], + ['errorCode' => 'InvalidSegmentNum', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SegmentNum无效,请检查后重试。'], + ['errorCode' => 'InvalidSegmentDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SegmentDuration无效,请检查后重试。'], + ['errorCode' => 'InvalidPartDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PartDuration无效,请检查后重试。'], + ], + 409 => [ + ['errorCode' => 'ConfigConflicts', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置冲突,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalErr', 'errorMessage' => '%s, please try again.', 'description' => '内部错误,请稍后重试。'], + ['errorCode' => 'DomainConfigFailed', 'errorMessage' => '%s, please try again later.', 'description' => '域名配置失败,请稍后重试。'], + ], + ], + 'title' => '添加直播封装配置', + 'summary' => '调用AddLivePackageConfig添加直播封装配置。', + 'description' => '- 域名第一次添加封装配置时,会同步下发播放域名加速相关配置,3~5分钟后可生效。'."\n" + ."\n" + .'- 若播放域名对应的区域为海外区域时(新加坡、德国、日本、印尼),可能会存在延迟较大的问题,建议配置完成后请先测试验证是否符合预期。'."\n" + ."\n" + .'- 调用本接口增加直播封装配置,需要重新推流后才生效。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为300次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLivePackageConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"05D00B48-DF50-5DC0-A07D-A250DFAE****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 05D00B48-DF50-5DC0-A07D-A250DFAE4258\\n","errorExample":""}]', + ], + 'AddLivePullStreamInfoConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '235330', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '您的推流域名或播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '您的拉流域名为用户的主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'NewResourceGroupId', + 'name' => 'AppName', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => '待转入的资源组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rg-****ke6uuxw****', - ], + 'schema' => ['description' => '直播流所属应用名称,用户自定义。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流名,用户自定义。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + [ + 'name' => 'SourceUrl', + 'in' => 'query', + 'schema' => ['description' => '用户的直播流所在的源站完整url。多个源站可以填多个地址,用英文分号(;)分隔。'."\n" + .'> 仅支持拉取直播流,支持RTMP、FLV、HLS、SRT格式。'."\n", 'type' => 'string', 'required' => true, 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****;rtmp://developer.aliyundoc.com/liveApp****/liveStream****'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '拉流开始时间。'."\n" + ."\n" + .'StartTime和EndTime时间间隔在7天内。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '拉流结束时间。'."\n" + ."\n" + .'StartTime和EndTime时间间隔在7天内,且EndTime超过当前时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z'], ], ], 'responses' => [ @@ -4367,50 +3755,64 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******8F-F82F-10E2-BAE1-A036FD******', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'LiveServiceNotFound', - 'errorMessage' => 'Your account does not open Live service yet', - ], - [ - 'errorCode' => 'LockFail', - 'errorMessage' => 'Domain has been occupied.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time or current time.', 'description' => ''], + ['errorCode' => 'Duration.Exceed', 'errorMessage' => 'Duration between StartTime and EndTime is too long.', 'description' => ''], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ['errorCode' => 'PullStreamOverLimit', 'errorMessage' => 'Pull stream is over limit for this domainName.', 'description' => ''], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], ], - 403 => [ - [ - 'errorCode' => 'EntityNotExist.ResourceGroup', - 'errorMessage' => 'The resource group does not exist.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******8F-F82F-10E2-BAE1-A036FD******\\"\\n}","type":"json"}]', - 'title' => '直播域名资源转组', - 'description' => '本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'SetLiveStreamPreloadTasks' => [ - 'summary' => '设置直播预热任务,支持批量设置直播流预热。', - 'methods' => [ - 'post', - 'get', + 'title' => '添加直播拉流配置信息', + 'summary' => '添加拉流配置信息,包括源站地址、开始时间和结束时间。', + 'description' => '- 请确保在使用该接口前,已充分了解直播拉流的收费方式和价格。计费详情,请参见[标准直播](~~195284~~)。'."\n" + ."\n" + .'- 拉流是将第三方直播流地址拉取到阿里直播中心进行加速分发的过程。'."\n" + .'- 本接口仅支持固定拉流方式,即指定拉流的起始时间和结束时间,在指定时间进行拉流直播。'."\n" + .'- 控制台支持固定拉流和触发拉流两种方式,详细内容请参见[拉流配置](~~199452~~)。'."\n" + .'- AppName与StreamName可自定义修改,不同的值生成不同的直播流地址。可用[地址生成器](~~197400~~)生成。'."\n" + .'- (DomainName, AppName, StreamName)三元组只能对应一个配置,如果该三元组已经存在一个配置了,再调用本接口添加配置会返回配置已存在错误。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLivePullStreamInfoConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', + ], + 'AddLiveRecordNotifyConfig' => [ + 'summary' => '添加域名级别录制回调配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4418,84 +3820,55 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'DomainName', + 'name' => 'NotifyUrl', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '录制回调(包括录制事件和状态回调) URL地址。'."\n" + ."\n" + .'> 必须以`http://`或者`https://`开头。更多详情,请参见 [录制事件回调](~~55016~~)。', 'type' => 'string', 'required' => true, 'example' => 'http://demo.aliyundoc.com/examplecallback.action'], ], [ - 'name' => 'PlayUrl', + 'name' => 'NeedStatusNotify', 'in' => 'query', - 'schema' => [ - 'description' => '直播URL,支持批量设置多个直播URL,多个URL之间用逗号(,)分隔,不超过100个。', - 'type' => 'string', - 'required' => true, - 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****', - ], + 'schema' => ['description' => '是否需要录制任务状态回调。取值:'."\n" + ."\n" + .'- true:是。如果NeedStatusNotify(是否需要录制任务状态回调)选择为**true**,则返回结果为录制状态回调示例。'."\n" + .'- false(默认值):否。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], ], [ - 'name' => 'Area', + 'name' => 'OnDemandUrl', 'in' => 'query', - 'schema' => [ - 'description' => '预热区域。取值:'."\n" - .'- domestic:中国内地。'."\n" - .'- overseas:海外及港澳台加速。'."\n" - .'- global:全球加速。'."\n" - .' '."\n" - .'如果不传该参数,默认的预热区域为您的域名所配置的加速区域。', - 'type' => 'string', - 'required' => false, - 'example' => 'domestic', - 'enum' => [ - 'domestic', - 'overseas', - 'global', - ], - ], + 'schema' => ['description' => '按需录制回调URL地址。'."\n" + ."\n" + .'> 必须以`http://`或者`https://`开头。更多详情,请参见[按需录制回调文档](~~85910~~)。', 'type' => 'string', 'required' => false, 'example' => 'http://learn.aliyundoc.com/ondemandcallback.action'], ], [ - 'name' => 'PreloadedStartTime', + 'name' => 'NotifyReqAuth', 'in' => 'query', - 'schema' => [ - 'description' => '预热开始时间,UTC格式,例如:2016-06-29T19:00:00Z,不填默认预热1小时。', - 'type' => 'string', - 'required' => false, - 'example' => '2016-06-29T19:00:00Z', - ], + 'schema' => ['description' => '回调鉴权开关。取值:'."\n" + ."\n" + .'- true:开启。'."\n" + ."\n" + .'- false(默认):关闭。'."\n" + ."\n" + .'>当填true时NotifyAuthKey必填。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], ], [ - 'name' => 'PreloadedEndTime', + 'name' => 'NotifyAuthKey', 'in' => 'query', - 'schema' => [ - 'description' => '预热结束时间,UTC格式,例如:2016-06-30T19:00:00Z,EndTime和StartTime之间的间隔不能超过6小时。', - 'type' => 'string', - 'required' => false, - 'example' => '2016-06-30T19:00:00Z', - ], + 'schema' => ['description' => '回调鉴权密钥,长度为16~32个字符,只允许填大小写字母和数字。'."\n" + .'>当NotifyReqAuth参数值为true时该参数必填。', 'type' => 'string', 'required' => false, 'example' => 'chenhuanxin249088', 'maxLength' => 64, 'minLength' => 16], ], ], 'responses' => [ @@ -4503,396 +3876,286 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'FailedURL' => [ - 'description' => '预热任务设置失败的URL条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'PreloadTasksMessages' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PreloadTasksMessage' => [ - 'description' => '直播预热详细信息。', - 'type' => 'array', - 'items' => [ - 'description' => '直播预热详细信息。', - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'description' => '预热任务是否成功。取值:'."\n" - .'- Successfully:成功。'."\n" - .'- InternalError:失败。', - 'type' => 'string', - 'example' => 'Successfully', - ], - 'PlayUrl' => [ - 'description' => '直播URL。', - 'type' => 'string', - 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****', - ], - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'yourTaskId', - ], - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。'."\n", - 'type' => 'string', - 'example' => '36E0E523-E0C6-5D95-A465-A8EA2DCBA2A5', - ], - 'Status' => [ - 'description' => '任务状态。取值:'."\n" - .'- Success:成功。'."\n" - .'- Failed:失败。'."\n" - ."\n" - .'> 只要有一条任务创建失败即为失败。', - 'type' => 'string', - 'example' => 'Success', - ], - 'SuccessURL' => [ - 'description' => '预热任务设置成功的URL条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalURL' => [ - 'description' => '预热任务里URL总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not match the specified start time.', - ], - [ - 'errorCode' => 'Duration.Exceed', - 'errorMessage' => 'Duration between StartTime and EndTime is too long.', - ], - [ - 'errorCode' => 'QuotaExceeded.PreloadTaskslimit', - 'errorMessage' => 'Exceed max task count limit', - ], - [ - 'errorCode' => 'NoSpecialConfiguration', - 'errorMessage' => 'no special configuration for domain name.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InvalidNotifyUrl.Malformed', 'errorMessage' => 'Specified NotifyUrl is invalid.', 'description' => '指定的notifyurl错误,请您确认该notifyurl参数是否正确。'], + ['errorCode' => 'InvalidNotifyUrl.Unsafe', 'errorMessage' => 'Specified NotifyUrl is not safe.', 'description' => '指定的notifyurl错误,请您确认该notifyurl参数是否正确。'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ['errorCode' => 'InvalidOnDemandUrl.Malformed', 'errorMessage' => 'Specified OnDemandUrl is invalid.', 'description' => ''], + ['errorCode' => 'InvalidOnDemandUrl.Unsafe', 'errorMessage' => 'Specified OnDemandUrl is not safe.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"FailedURL\\": 0,\\n \\"PreloadTasksMessages\\": {\\n \\"PreloadTasksMessage\\": [\\n {\\n \\"Description\\": \\"Successfully\\",\\n \\"PlayUrl\\": \\"rtmp://guide.aliyundoc.com/liveApp****/liveStream****\\",\\n \\"TaskId\\": \\"yourTaskId\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"36E0E523-E0C6-5D95-A465-A8EA2DCBA2A5\\",\\n \\"Status\\": \\"Success\\",\\n \\"SuccessURL\\": 1,\\n \\"TotalURL\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n 0\\n \\n Successfully\\n rtmp://guide.aliyundoc.com/liveApp****/liveStream****\\n yourTaskId\\n \\n 36E0E523-E0C6-5D95-A465-A8EA2DCBA2A5\\n Success\\n 1\\n 1\\n","errorExample":""}]', - 'title' => '设置直播预热任务', - 'description' => '- 调用本接口可支持批量设置直播流预热,最多可一次性设置100个直播URL。'."\n" - .'- 直播预热仅不支持HLS格式的地址。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t394966CA-5940-44D7-A1C5-24211C7B07A9\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => '添加域名级别录制回调配置', + 'description' => '先查询直播录制回调配置,才能调用本接口添加域名级别录制回调配置。使用API查询直播录制回调配置,请参见[查询直播录制回调配置](~~2847893~~)。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveStreamPreloadTasks' => [ - 'summary' => '仅支持查询最近3天内的数据。', - 'methods' => [ - 'post', - 'get', + ."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveRecordNotifyConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveRecordNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'AddLiveRecordVodConfig' => [ + 'summary' => '增加直播录制转点播配置,将录制内容保存到点播媒资库。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '106854', + 'abilityTreeNodes' => ['FEATUREliveL04ZVK'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。'."\n" + .'> 请先确认与此播放域名直播中心相同区域的点播已开通服务。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'TaskId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。您可以通过调用[SetLiveStreamPreloadTasks](~~2519938~~)接口获取预热任务ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourTaskId', - ], + 'schema' => ['description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'testName'], ], [ - 'name' => 'PlayUrl', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '直播URL,支持批量设置多个直播URL,多个URL之间用逗号(,)分隔,不超过100个。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****', - ], + 'schema' => ['description' => '播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => false, 'example' => 'stream'], ], [ - 'name' => 'PageSize', + 'name' => 'VodTranscodeGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '每页大小,最大100,取值:1~100之间的任意整数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '20', - ], + 'schema' => ['description' => '>当使用按格式配置功能,即传入RecordFormat参数时,此参数无效,可不传。>'."\n" + .'对录制后的视频在点播服务中进行一次转码,所使用的点播转码模板组ID。', 'type' => 'string', 'required' => false, 'example' => 'e2d796d3bb5fd8049d32bff62f94****'], ], [ - 'name' => 'PageNum', + 'name' => 'CycleDuration', 'in' => 'query', - 'schema' => [ - 'description' => '取得第几页,默认1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '周期录制时长。单位:秒。默认值为**3600**,取值范围:**300~21600**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '21600', 'minimum' => '300', 'example' => '300'], ], [ - 'name' => 'Status', + 'name' => 'AutoCompose', 'in' => 'query', - 'schema' => [ - 'description' => '任务状态。取值:'."\n" - .'- complete:已完成。'."\n" - .'- pending:等待预热。'."\n" - .'- preloading:预热中。'."\n" - .'- failed:预热失败。', - 'type' => 'string', - 'required' => false, - 'example' => 'complete', - 'enum' => [ - 'complete', - 'pending', - 'preloading', - 'failed', - ], - ], + 'schema' => ['description' => '>当使用按格式配置功能,即传入RecordFormat参数时,此参数无效,可不传。>'."\n" + .'在直播录制结束后自动将多个录制周期文件合并成一个录制文件。'."\n" + ."\n" + .'设置为**ON**表示开启自动合并,且必须同时设置请求参数ComposeVodTranscodeGroupId。不传入参数值表示关闭自动合并。', 'type' => 'string', 'required' => false, 'example' => 'ON'], ], [ - 'name' => 'StartTime', + 'name' => 'SpaceId', + 'in' => 'query', + 'schema' => ['title' => '应用空间', 'description' => '点播应用空间ID,通过**点播控制台**或[应用信息查询接口](~~454873~~)获取。未开启应用空间时无需填写。', 'type' => 'string', 'required' => false, 'example' => 'app-1000000'], + ], + [ + 'name' => 'StorageLocation', + 'in' => 'query', + 'schema' => ['description' => '存储地址。', 'type' => 'string', 'required' => false, 'example' => '****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com'], + ], + [ + 'name' => 'ComposeVodTranscodeGroupId', + 'in' => 'query', + 'schema' => ['description' => '>当使用按格式配置功能,即传入RecordFormat参数时,此参数无效,可不传>'."\n" + .'对自动合成出来的新视频在点播服务中进行一次转码,所使用的点播转码模板组ID。当AutoCompose为ON时,本参数必填。', 'type' => 'string', 'required' => false, 'example' => '*****'], + ], + [ + 'name' => 'OnDemand', + 'in' => 'query', + 'schema' => ['description' => '录制触发方式,取值:'."\n" + .' '."\n" + .'- **0**(默认值):自动录制。'."\n" + ."\n" + .'- **1**:按需录制,通过 HTTP 回调方式。'."\n" + ."\n" + .'- **2**:按需录制,通过解析推流参数。'."\n" + ."\n" + .'- **7**:手动录制,默认不录制,可以通过 RealTimeRecordCommand 接口手动控制录制开启或停止。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'RecordContent', + 'in' => 'query', + 'schema' => ['title' => '录制内容', 'description' => '录制内容。取值:'."\n" + ."\n" + .'- raw(默认值):录制源流'."\n" + ."\n" + .'- transcode:录制转码流'."\n" + ."\n" + .'如需同时录制源流和转码流,请将两个取值同时传入,以","分隔,如raw,transcode'."\n" + .'> 录制内容包含transcode时,TranscodeTemplates至少传入一个转码模版。', 'type' => 'string', 'required' => false, 'example' => 'raw'], + ], + [ + 'name' => 'DelayTime', + 'in' => 'query', + 'schema' => ['title' => '录制内容', 'description' => '断流拼接时长。 直播断流时长超过设定的拼接时长后,将会生成新文件,断流拼接时长支持 15~21600 秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '21600', 'minimum' => '15', 'example' => '180', 'default' => '180'], + ], + [ + 'name' => 'RecordFormat', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '起始时间,UTC格式,例如:2016-06-29T19:00:00Z,开始时间必须在近3天内。', - 'type' => 'string', + 'title' => '录制格式配置列表', + 'description' => '按格式配置录制参数列表。', + 'type' => 'array', + 'items' => [ + 'title' => '录制格式配置', + 'description' => '录制格式配置。', + 'type' => 'object', + 'properties' => [ + 'Format' => ['title' => '录制储存格式', 'description' => '录制格式。取值:'."\n" + .'- m3u8'."\n" + .'- flv'."\n" + .'- mp4', 'type' => 'string', 'required' => false, 'example' => 'm3u8'], + 'SliceDuration' => ['title' => '单个切片时长', 'description' => '单个切片时长。单位:秒。'."\n" + ."\n" + .'仅当RecordFormat.N.Format(格式)设为m3u8时,本参数有效。'."\n" + ."\n" + .'不填则默认为30秒。取值范围:5s~30s。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30', 'default' => '30'], + 'AutoCompose' => ['title' => '自动合并', 'description' => '在直播录制结束后自动将多个录制周期文件合并成一个录制文件。取值:'."\n" + ."\n" + .'- ON:开启自动合并'."\n" + ."\n" + .'- OFF:关闭自动合并', 'type' => 'string', 'required' => false, 'example' => 'ON'], + 'VideoProcess' => ['title' => '视频处理源', 'description' => '视频处理源。取值:'."\n" + ."\n" + .'- origin(默认值):处理源视频'."\n" + ."\n" + .'- compose:处理合并后视频'."\n" + ."\n" + .'如需同时处理源视频和合并后视频,请将两个取值同时传入,以","分隔,如origin,compose', 'type' => 'string', 'required' => false, 'example' => 'origin'], + 'ProcessMethod' => ['title' => '视频处理方式', 'description' => '视频处理方式。取值:'."\n" + ."\n" + .'- transcode:使用转码模版组处理视频'."\n" + ."\n" + .'- workflow:使用工作流处理视频', 'type' => 'string', 'required' => false, 'example' => 'transcode'], + 'ProcessTemplateId' => ['title' => '视频处理转码模版或工作流模版', 'description' => '视频处理转码模版组ID或工作流模版ID。取值:'."\n" + ."\n" + .'> 此处传入的ID必须与ProcessMethod传入的视频处理方式对应,即ProcessMethod传入transcode,此处应使用转码模版组ID。', 'type' => 'string', 'required' => false, 'example' => 'e2d796d3bb5fd8049d32bff62f94****'], + 'Tags' => ['title' => '标签', 'description' => '视频分类标签。', 'type' => 'string', 'required' => false, 'example' => 'sports'], + ], + 'required' => false, + ], 'required' => false, - 'example' => '2016-06-29T19:00:00Z', + 'maxItems' => 3, ], ], [ - 'name' => 'EndTime', + 'name' => 'TranscodeTemplates', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '结束时间,UTC格式,例如:2016-06-30T19:00:00Z,EndTime和StartTime之间的间隔不能超过3天。', - 'type' => 'string', + 'title' => '转码模版组列表', + 'description' => '转码流录制的转码模板组。', + 'type' => 'array', + 'items' => ['title' => '转码模版', 'description' => '- 转码流录制的[转码模板](~~45039~~),可进行多个设置,最多为10个。'."\n" + .'- 当设置RecordContent传入值包含transcode时,至少需要设置一个TranscodeTemplates。'."\n" + .'- 如需录制多个或全部的转码流,可设置TranscodeTemplates.1为通配符*即可。'."\n" + .'>TranscodeTemplates不允许传入`raw`,属于保留标识。
RepeatList表示为TranscodeTemplates.N中的N,可理解为递增进行多个设置,如:TranscodeTemplates.1=sd,TranscodeTemplates.2=hd。', 'type' => 'string', 'required' => false, 'example' => 'sd'], 'required' => false, - 'example' => '2016-06-30T19:00:00Z', + 'maxItems' => 10, ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'PageNum' => [ - 'description' => '分页的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'PreloadTasks' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PreloadTask' => [ - 'description' => '直播预热详情。', - 'type' => 'array', - 'items' => [ - 'description' => '直播预热详情。', - 'type' => 'object', - 'properties' => [ - 'Area' => [ - 'description' => '预热区域。取值:'."\n" - .'- domestic:中国内地。'."\n" - .'- overseas:海外及港澳台加速。'."\n" - .'- global:全球加速。'."\n" - ."\n" - .'> 如果不传该参数,默认的预热区域为您的域名所配置的加速区域。', - 'type' => 'string', - 'example' => 'domestic', - ], - 'CreateTime' => [ - 'description' => '预热任务创建时间。', - 'type' => 'string', - 'example' => '2016-06-29T19:00:00Z', - ], - 'Description' => [ - 'description' => '预热任务是否成功。取值:'."\n" - .'- Successfully:成功。'."\n" - .'- InternalError:失败。', - 'type' => 'string', - 'example' => 'Successfully', - ], - 'DomainName' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'PlayUrl' => [ - 'description' => '直播URL。', - 'type' => 'string', - 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****', - ], - 'PreloadedEndTime' => [ - 'description' => '预热结束时间。', - 'type' => 'string', - 'example' => '2016-06-30T19:00:00Z', - ], - 'PreloadedStartTime' => [ - 'description' => '预热开始时间。', - 'type' => 'string', - 'example' => '2016-06-29T19:00:00Z', - ], - 'Process' => [ - 'description' => '进度百分比。', - 'type' => 'string', - 'example' => '100%', - ], - 'Status' => [ - 'description' => '任务状态。取值:'."\n" - .'- Success:成功。'."\n" - .'- Failed:失败。'."\n" - ."\n" - .'> 只要有一条任务创建失败即为失败', - 'type' => 'string', - 'example' => 'Success', - ], - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'yourTaskId', - ], - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'E1564CBC-DCFE-5E1B-8B78-8DED9A39F334', - ], - 'TotalNum' => [ - 'description' => '符合条件的总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalPage' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not match the specified start time.', - ], - [ - 'errorCode' => 'Duration.Exceed', - 'errorMessage' => 'Duration between StartTime and EndTime is too long.', - ], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ['errorCode' => 'CommomLiveRcordConfigExisted', 'errorMessage' => 'Commom liverecord config has already exist.', 'description' => ''], + ['errorCode' => 'InvalidAutoCompose.Malformed', 'errorMessage' => 'Specified parameter AutoCompose is not valid.', 'description' => ''], + ['errorCode' => 'InvalidAutoComposeAndComposeVodTranscodeGroupId.Malformed', 'errorMessage' => 'Specified parameter AutoCompose and ComposeVodTranscodeGroupId is not valid, must both empty or input', 'description' => ''], + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], + ], + 403 => [ + ['errorCode' => 'InvalidRegion.Conflict', 'errorMessage' => 'Specified parameter StorageLocation and Region is not match', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidStorage.NotFound', 'errorMessage' => 'Specified parameter StorageLocation is not exist', 'description' => ''], + ['errorCode' => 'InvalidTemplateGroupId.NotFound', 'errorMessage' => 'Specified parameter vodTranscodeGroupId or composeVodTranscodeGroupId is not exist', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 2,\\n \\"PreloadTasks\\": {\\n \\"PreloadTask\\": [\\n {\\n \\"Area\\": \\"domestic\\",\\n \\"CreateTime\\": \\"2016-06-29T19:00:00Z\\",\\n \\"Description\\": \\"Successfully\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"PlayUrl\\": \\"rtmp://guide.aliyundoc.com/liveApp****/liveStream****\\",\\n \\"PreloadedEndTime\\": \\"2016-06-30T19:00:00Z\\",\\n \\"PreloadedStartTime\\": \\"2016-06-29T19:00:00Z\\",\\n \\"Process\\": \\"100%\\",\\n \\"Status\\": \\"Success\\",\\n \\"TaskId\\": \\"yourTaskId\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"E1564CBC-DCFE-5E1B-8B78-8DED9A39F334\\",\\n \\"TotalNum\\": 1,\\n \\"TotalPage\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 2\\n \\n domestic\\n 2016-06-29T19:00:00Z\\n Successfully\\n example.com\\n rtmp://guide.aliyundoc.com/liveApp****/liveStream****\\n 2016-06-30T19:00:00Z\\n 2016-06-29T19:00:00Z\\n 100%\\n Success\\n yourTaskId\\n \\n E1564CBC-DCFE-5E1B-8B78-8DED9A39F334\\n 1\\n 1\\n","errorExample":""}]', - 'title' => '查询直播预热任务', - 'description' => '本接口仅支持查询最近3天内的数据。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n} "}]', + 'title' => '添加直播录制转点播配置', + 'description' => '- 存储至VOD时,对录制后的视频进行自动合并、转码处理等,将产生视频处理费用,在视频点播服务收取。详情请参见[剪辑合成计费](~~188310~~)和[媒资转码计费](~~188308~~)。自动合成和转码常见问题,请参见[直播转点播常见问题FAQ](~~99726~~)。'."\n" + .'- 使用金融云账号不支持视频直播录制到点播。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'HotLiveRtcStream' => [ - 'summary' => '设置RTC流预热。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddLiveRecordVodConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveRecordVodConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'AddLiveSnapshotDetectPornConfig' => [ + 'summary' => '可按照域名和App级别配置播流审核服务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4900,463 +4163,336 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '142376', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], ], 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '预热直播流App名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'app', - ], + 'schema' => ['description' => '播流所属应用名称。'."\n" + .' '."\n" + .'AppName名称与推流地址中的AppName名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有AppName。', 'type' => 'string', 'required' => true, 'example' => 'testApp'], ], [ - 'name' => 'StreamName', + 'name' => 'OssEndpoint', 'in' => 'query', - 'schema' => [ - 'description' => '预热直播流名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'stream', - ], + 'schema' => ['description' => 'OSS存储Endpoint名称。'."\n" + ."\n" + .'审核完成后,您可以根据审核回调信息,在OSS控制台查找指定的审核内容。OSS Endpoint需要提前创建,创建方法请参考[配置审核](~~199449~~) 。', 'type' => 'string', 'required' => true, 'example' => 'cn-oss-****.aliyuncs.com'], ], [ - 'name' => 'RegionCode', + 'name' => 'OssBucket', 'in' => 'query', - 'schema' => [ - 'description' => '预热区域,详细内容请查看RegionCode对应简码表格。'."\n" - ."\n" - .'> 预热区域粒度海外是国家简码,中国或中国内地是各省简码。'."\n" - .'> - 如果传入某个RegionCode后返回CodeRegionHasNoNode,说明对应区域没有L1节点覆盖,无法预热,可以更换RegionCode', - 'type' => 'string', - 'required' => true, - 'example' => 'ZHJ', - ], + 'schema' => ['description' => 'OSS存储Bucket名称。'."\n" + ."\n" + .'审核完成后,您可以根据审核回调信息,在OSS控制台查找指定的审核内容。OSS Bucket需要提前创建,创建方法请参考[配置审核](~~199449~~) 。', 'type' => 'string', 'required' => true, 'example' => 'livebucket'], ], [ - 'name' => 'AudioMsid', + 'name' => 'OssObject', 'in' => 'query', - 'schema' => [ - 'description' => '音频Msid。', - 'type' => 'string', - 'required' => true, - 'example' => 'rts audio', - ], + 'schema' => ['description' => '保存涉黄涉政等违规图片名称。', 'type' => 'string', 'required' => false, 'example' => 'record/{AppName}/{StreamName}/{Sequence}.jpg'], ], [ - 'name' => 'VideoMsid', + 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '视频Msid。', - 'type' => 'string', - 'required' => true, - 'example' => 'rts video', - ], + 'schema' => ['description' => '采样间隔。取值范围:**5~3600**。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3600', 'minimum' => '5', 'example' => '10'], ], [ - 'name' => 'ConnectionTimeout', + 'name' => 'Scene', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '预热链接保持的时间,单位毫秒。默认0是一直保持。', - 'type' => 'string', + 'description' => '检测场景列表。', + 'type' => 'array', + 'items' => ['description' => '检测场景。取值:'."\n" + .'- **porn**(默认值):鉴黄。'."\n" + .'- **terrorism**:暴恐涉政。'."\n" + .'- **ad**:图文违规。'."\n" + .'- **live**:不良直播场景。'."\n" + .'- **logo**:logo检测。', 'type' => 'string', 'required' => false, 'example' => 'live'], 'required' => false, - 'example' => '0', + 'example' => 'live', + 'maxItems' => 5, ], ], - [ - 'name' => 'MediaTimeout', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '自定义超时事件的触发时间。单位毫秒。', - 'type' => 'string', - 'required' => false, - 'example' => '100000', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidOssEndpoint.Malformed', 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', 'description' => ''], + ['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified parameter OssBucket is not valid.', 'description' => 'OSSBucket参数错误,请您确认该OSS BUCKET参数是否正确。'], + ['errorCode' => 'InvalidOssObject.Malformed', 'errorMessage' => 'Specified parameter OssObject is not valid.', 'description' => ''], + ['errorCode' => 'InvalidOssBucket.NotFound', 'errorMessage' => 'The parameter OssBucket does not exist.', 'description' => ''], + ['errorCode' => 'InvalidScenes', 'errorMessage' => 'Specified parameter Scene is not valid.', 'description' => ''], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ], + ], + 'title' => '按照域名和App级别配置直播流审核服务', + 'description' => '- 直播审核按照域名和App级别对于其中违规敏感内容进行识别审查,并通过回调的方式实时将违规内容通知到用户,用户可以对内容进行复审并进行相应处置。'."\n" + ."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveSnapshotDetectPornConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + ], + 'AddLiveSnapshotNotifyConfig' => [ + 'summary' => '添加截图回调配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '160085', + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'www.yourdomain***.com'], + ], + [ + 'name' => 'NotifyUrl', + 'in' => 'query', + 'schema' => ['description' => '回调URL,必须是合法URL,长度不超过500。', 'type' => 'string', 'required' => true, 'example' => 'http://callback.yourdomain***.com'], + ], + [ + 'name' => 'NotifyReqAuth', + 'in' => 'query', + 'schema' => ['description' => '回调鉴权开关。取值:'."\n" + ."\n" + .'- **yes**:开启。'."\n" + ."\n" + .'- **no**(默认):关闭。'."\n" + ."\n" + .'>当填yes时NotifyAuthKey必填。', 'type' => 'string', 'required' => false, 'example' => 'yes'], + ], + [ + 'name' => 'NotifyAuthKey', + 'in' => 'query', + 'schema' => ['description' => '回调鉴权密钥,长度为16~32个字符,只允许填大小写字母和数字。'."\n" + .'>当NotifyReqAuth参数值为**yes**时该参数必填。', 'type' => 'string', 'required' => false, 'example' => 'yourkey'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16BFE188-B193-4C3C-ADC5-79A7E31486EA', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - [ - 'errorCode' => 'NoSpecialConfiguration', - 'errorMessage' => 'no special configuration for domain name.', - ], - [ - 'errorCode' => 'CodeRegionHasNoNode', - 'errorMessage' => 'this region has no corresponding node.', - ], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '存在无效参数,请检查后重试。'], + ], + 409 => [ + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置已存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'title' => '添加截图回调配置', + 'description' => '本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveSnapshotNotifyConfig'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveSnapshotNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16BFE188-B193-4C3C-ADC5-79A7E31486EA\\n","errorExample":""}]', - 'title' => '设置RTC流预热', - 'description' => '### QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '### RegionCode对应简码'."\n" - .'**中国或中国内地代码**'."\n" - .'| 中文名 | 简码 |'."\n" - .'|---------------|--------|'."\n" - .'|北京市 | BEJ|'."\n" - .'|天津市 |TAJ |'."\n" - .'| 河北省|HEB |'."\n" - .'|山西省 |SHX |'."\n" - .'|内蒙古自治区 |NMG |'."\n" - .'|辽宁省 |LIA |'."\n" - .'|吉林省 |JIL |'."\n" - .'| 黑龙江省|HLJ |'."\n" - .'|上海市 | SHH|'."\n" - .'| 江苏省| JSU|'."\n" - .'|浙江省 | ZHJ|'."\n" - .'|安徽省 | ANH|'."\n" - .'| 福建省|FUJ |'."\n" - .'|江西省 | JXI|'."\n" - .'|山东省 |SHD |'."\n" - .'| 河南省|HEN |'."\n" - .'| 湖北省| HUB|'."\n" - .'| 湖南省| HUN|'."\n" - .'|广东省 |GUD |'."\n" - .'|广西壮族自治区 | GXI|'."\n" - .'|海南省 |HAI |'."\n" - .'|重庆市 |CHQ |'."\n" - .'| 四川省| SCH|'."\n" - .'|贵州省 | GUI|'."\n" - .'|云南省 | YUN|'."\n" - .'| 西藏自治区|TIB|'."\n" - .'|陕西省 |SHA |'."\n" - .'|甘肃省 |GAN |'."\n" - .'| 青海省|QIH |'."\n" - .'|宁夏回族自治区 |NXA |'."\n" - .'| 新疆维吾尔自治区| XIN|'."\n" - .'| 台湾省| TAI|'."\n" - .'|香港特别行政区 | HKG|'."\n" - .'|澳门特别行政区 |MAC |'."\n" - ."\n" - .'**国家代码**'."\n" - .'| 中文名 | 简码 |'."\n" - .'|---------------|--------|'."\n" - .'|巴布亚新几内亚|PG|'."\n" - .'|斯洛伐克|SK|'."\n" - .'|秘鲁|PE|'."\n" - .'|拉脱维亚|LV|'."\n" - .'|阿拉伯联合酋长国|AE|'."\n" - .'|加拿大|CA|'."\n" - .'|古巴|CU|'."\n" - .'|毛里塔尼亚|MR|'."\n" - .'|日本|JP|'."\n" - .'|亚美尼亚 |AM|'."\n" - .'|土库曼斯坦|TM|'."\n" - .'|俄罗斯|RU|'."\n" - .'|白俄罗斯|BY|'."\n" - .'|几内亚|GN|'."\n" - .'|伊拉克|IQ|'."\n" - .'|阿根廷|AR|'."\n" - .'|智利|CL|'."\n" - .'|斯威士兰|SZ|'."\n" - .'|刚果|CD|'."\n" - .'|比利时|BE|'."\n" - .'|哈萨克斯坦|KZ|'."\n" - .'|塞尔维亚 |RS|'."\n" - .'|土耳其|TR|'."\n" - .'|纳米比亚 |NA|'."\n" - .'|立陶宛|LT|'."\n" - .'|波多黎各 |PR|'."\n" - .'|刚果共和国|CG|'."\n" - .'|新喀里多尼亚 |NC|'."\n" - .'|摩洛哥|MA|'."\n" - .'|格陵兰岛 |GL|'."\n" - .'|科威特|KW|'."\n" - .'|利比里亚|LR|'."\n" - .'|乌克兰|UA|'."\n" - .'|印度尼西亚|ID|'."\n" - .'|缅甸|MM|'."\n" - .'|玻利维亚|BO|'."\n" - .'|摩尔多瓦 |MD|'."\n" - .'|希腊|GR|'."\n" - .'|新西兰|NZ|'."\n" - .'|索罗门群岛|SB|'."\n" - .'|埃塞俄比亚|ET|'."\n" - .'|斐济|FJ|'."\n" - .'|也门|YE|'."\n" - .'|塞浦路斯|CY|'."\n" - .'|波斯尼亚和黑塞哥维那|BA|'."\n" - .'|厄立特里亚|ER|'."\n" - .'|德国|DE|'."\n" - .'|巴基斯坦|PK|'."\n" - .'|中非共和国|CF|'."\n" - .'|克罗地亚|HR|'."\n" - .'|埃及|EG|'."\n" - .'|泰国|TH|'."\n" - .'|哥斯达黎加|CR|'."\n" - .'|坦桑尼亚 |TZ|'."\n" - .'|老挝|LA|'."\n" - .'|利比亚|LY|'."\n" - .'|突尼斯|TN|'."\n" - .'|波兰|PL|'."\n" - .'|英国|GB|'."\n" - .'|赤道几内亚|GQ|'."\n" - .'|中国|CN|'."\n" - .'|冰岛|IS|'."\n" - .'|阿曼|OM|'."\n" - .'|蒙古|MN|'."\n" - .'|乍得|TD|'."\n" - .'|美国|US|'."\n" - .'|墨西哥|MX|'."\n" - .'|吉尔吉斯斯坦 |KG|'."\n" - .'|苏里南|SR|'."\n" - .'|印度|IN|'."\n" - .'|几内亚比绍|GW|'."\n" - .'|委内瑞拉 |VE|'."\n" - .'|意大利|IT|'."\n" - .'|阿尔及利亚|DZ|'."\n" - .'|卡塔尔|QA|'."\n" - .'|法国|FR|'."\n" - .'|南非|ZA|'."\n" - .'|挪威|NO|'."\n" - .'|葡萄牙|PT|'."\n" - .'|匈牙利|HU|'."\n" - .'|韩国|KR|'."\n" - .'|乌兹别克斯坦|UZ|'."\n" - .'|布隆迪|BI|'."\n" - .'|爱沙尼亚|EE|'."\n" - .'|孟加拉国|BD|'."\n" - .'|不丹|BT|'."\n" - .'|阿富汗|AF'."\n" - .'|瑞士|CH|'."\n" - .'|伯利兹|BZ|'."\n" - .'|东帝汶|TL|'."\n" - .'|海地|HT|'."\n" - .'|多哥|TG|'."\n" - .'|阿尔巴尼亚|AL|'."\n" - .'|喀麦隆|CM|'."\n" - .'|尼加拉瓜|NI|'."\n" - .'|尼日利亚|NG|'."\n" - .'|洪都拉斯|HN|'."\n" - .'|布基纳法索|BF|'."\n" - .'|莫桑比克|MZ|'."\n" - .'|格鲁吉亚|GE|'."\n" - .'|瓦努阿图 |VU|'."\n" - .'|巴拉圭|PY|'."\n" - .'|卢森堡|LU|'."\n" - .'|黎巴嫩|LB|'."\n" - .'|乌干达|UG|'."\n" - .'|马里|ML|'."\n" - .'|沙特阿拉伯|SA|'."\n" - .'|巴勒斯坦|PS|'."\n" - .'|黑山|ME|'."\n" - .'|哥伦比亚 |CO|'."\n" - .'|菲律宾|PH|'."\n" - .'|瑞典|SE|'."\n" - .'|芬兰|FI|'."\n" - .'|肯尼亚|KE|'."\n" - .'|罗马尼亚|RO|'."\n" - .'|巴拿马|PA|'."\n" - .'|约旦|JO|'."\n" - .'|卢旺达|RW|'."\n" - .'|莱索托|LS|'."\n" - .'|马其顿|MK|'."\n" - .'|赞比亚|ZM|'."\n" - .'|叙利亚|SY|'."\n" - .'|西班牙|ES|'."\n" - .'|厄瓜多尔|EC|'."\n" - .'|加蓬|GA|'."\n" - .'|爱尔兰|IE|'."\n" - .'|多米尼加共和国|DO|'."\n" - .'|加纳|GH|'."\n" - .'|马达加斯加|MG|'."\n" - .'|马来西亚 |MY|'."\n" - .'|奥地利|AT|'."\n" - .'|塔吉克斯坦|TJ|'."\n" - .'|丹麦|DK|'."\n" - .'|乌拉圭|UY|'."\n" - .'|柬埔寨|KH|'."\n" - .'|塞内加尔|SN|'."\n" - .'|萨尔瓦多|SV|'."\n" - .'|塞拉利昂 |SL|'."\n" - .'|文莱达鲁萨兰国|BN|'."\n" - .'|西撒哈拉 |EH|'."\n" - .'|尼日尔|NE|'."\n" - .'|伊朗|IR|'."\n" - .'|圭亚那|GY|'."\n" - .'|安哥拉|AO|'."\n" - .'|博茨瓦纳|BW|'."\n" - .'|巴西|BR|'."\n" - .'|澳大利亚 |AU|'."\n" - .'|科特迪瓦 |CI|'."\n" - .'|捷克共和国|CZ|'."\n" - .'|冈比亚|GM|'."\n" - .'|贝宁|BJ|'."\n" - .'|越南|VN|'."\n" - .'|苏丹|SD|'."\n" - .'|荷兰|NL|'."\n" - .'|吉布提|DJ|'."\n" - .'|斯洛文尼亚|SI|'."\n" - .'|尼泊尔|NP|'."\n" - .'|津巴布韦|ZW|'."\n" - .'|牙买加|JM|'."\n" - .'|马拉维|MW|'."\n" - .'|阿塞拜疆 |AZ|'."\n" - .'|索马里|SO|'."\n" - .'|以色列|IL|'."\n" - .'|福克兰群岛(马尔维纳斯群岛)|FK'."\n" - .'|朝鲜|KP|'."\n" - .'|危地马拉 |GT|'."\n" - .'|巴哈马|BS|'."\n" - .'|斯里兰卡|LK|'."\n" - .'|新加坡|SG|'."\n" - .'|巴林|BH|', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F3EC5\\n","errorExample":""}]', ], - 'AddLivePullStreamInfoConfig' => [ - 'summary' => '添加拉流配置信息,包括源站地址、开始时间和结束时间。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddLiveStreamMerge' => [ + 'summary' => '调用AddLiveStreamMerge添加主备合流配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '106856', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '您的拉流域名为用户的主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称,用户自定义。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '合流输出App名称。AppName名称与推流地址中的AppName名称相对应,模板才能生效。不可以填*。', 'type' => 'string', 'required' => true, 'example' => 'app'], ], [ 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名,用户自定义。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '合流输出Stream名称。StreamName名称与推流地址中的StreamName名称相对应,模板才能生效。不可以填*。', 'type' => 'string', 'required' => true, 'example' => 'StreamName'], ], [ - 'name' => 'SourceUrl', + 'name' => 'InAppName1', 'in' => 'query', - 'schema' => [ - 'description' => '用户的直播流所在的源站完整url。多个源站可以填多个地址,用英文分号(;)分隔。'."\n" - .'> 仅支持拉取直播流,支持RTMP、FLV、HLS、SRT格式。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****;rtmp://developer.aliyundoc.com/liveApp****/liveStream****', - ], + 'schema' => ['description' => '合流输入主流应用名称,输入的AppName必须与主流推流地址中的AppName保持一致,方可生效。', 'type' => 'string', 'required' => true, 'example' => 'app1'], + ], + [ + 'name' => 'InStreamName1', + 'in' => 'query', + 'schema' => ['description' => '合流输入主流直播流名称,输入的AppName必须与主流推流地址中的AppName保持一致,方可生效。', 'type' => 'string', 'required' => true, 'example' => 'InStream1'], + ], + [ + 'name' => 'InAppName2', + 'in' => 'query', + 'schema' => ['description' => '合流输入备流应用名称,输入的AppName必须与备流推流地址中的AppName保持一致,方可生效。', 'type' => 'string', 'required' => true, 'example' => 'app2'], + ], + [ + 'name' => 'InStreamName2', + 'in' => 'query', + 'schema' => ['description' => '合流输入备流直播流名称,输入的AppName必须与备流推流地址中的AppName保持一致,方可生效。', 'type' => 'string', 'required' => true, 'example' => 'stream2'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '拉流开始时间。'."\n" - ."\n" - .'StartTime和EndTime时间间隔在7天内。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-21T08:00:00Z', - ], + 'schema' => ['description' => '合流开始时间。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2020-05-29T00:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', + 'schema' => ['description' => '合流结束时间。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + .'>开始时间与结束时间最大相差7天。'."\n", 'type' => 'string', 'required' => true, 'example' => '2020-05-29T01:00:00Z'], + ], + [ + 'name' => 'Protocol', + 'in' => 'query', + 'schema' => ['description' => '直播流协议,取值:'."\n" + ."\n" + .'- **rtmp**(默认值)'."\n" + ."\n" + .'- **rtc**', 'type' => 'string', 'required' => false, 'example' => 'rtmp'], + ], + [ + 'name' => 'LiveMerger', + 'in' => 'query', + 'schema' => ['description' => '是否使用liveswitch引擎'."\n" + ."\n" + .'- on 使用liveswitch新引擎'."\n" + .'- off 默认值,使用旧引擎(rtmpr等)', 'type' => 'string', 'required' => false, 'example' => 'off', 'default' => 'off'], + ], + [ + 'name' => 'MergeParameters', + 'in' => 'query', + 'schema' => ['description' => '切流相关的配置参数'."\n" + ."\n" + .'1. 明确发生断流时(eof 或 net err),立刻触发主备切换;'."\n" + .'2. 最近5秒内卡顿率超过60%,立刻触发主备切换;'."\n" + .'3. 拉流超时,持续2秒收不到帧数据,触发主备切换;'."\n" + .'4. 未断流、未发生卡顿,但是最近ali_max_no_frame_timeout时间内的平均帧率 小于 ali_low_frame_rate_threshold,立刻触发主备切换。如果用户设置了 ali_max_no_frame_timeout 参数,则3的超时时间会同步更新成 ali_max_no_frame_timeout。'."\n" + .'5. 开启 block_all_jitter 则2、3、4不生效。'."\n" + ."\n" + .'- 取值范围:'."\n" + .'10 > timeout > 2'."\n" + .'200 > threshold > 1'."\n" + .'block的值为0或1', 'type' => 'string', 'required' => false, 'example' => 'ali_low_frame_rate_threshold=10&ali_max_no_frame_timeout=5&block_all_jitter=0'], + ], + [ + 'name' => 'SelectAppName', + 'in' => 'query', + 'schema' => ['type' => 'string'], + ], + [ + 'name' => 'SelectStreamName', + 'in' => 'query', + 'schema' => ['type' => 'string'], + ], + [ + 'name' => 'SwitchMode', + 'in' => 'query', 'schema' => [ - 'description' => '拉流结束时间。'."\n" - ."\n" - .'StartTime和EndTime时间间隔在7天内,且EndTime超过当前时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', - 'required' => true, - 'example' => '2017-12-22T08:00:00Z', + 'enum' => ['manually', 'automatically'], ], ], ], @@ -5365,214 +4501,193 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], + 'Message' => ['description' => '- 附加信息,典型应用场景是对失败调用进行简述,方便调用方定位问题'."\n" + ."\n" + .'- 取值:OK、config invalid, degrade to no livemerger。', 'type' => 'string', 'example' => 'OK'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time or current time.', - ], - [ - 'errorCode' => 'Duration.Exceed', - 'errorMessage' => 'Duration between StartTime and EndTime is too long.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], - [ - 'errorCode' => 'PullStreamOverLimit', - 'errorMessage' => 'Pull stream is over limit for this domainName.', - ], - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified parameter StartTime is not valid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified parameter EndTime is not valid.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'QuotaExceeded.Merge', 'errorMessage' => 'Exceed max merge count limit', 'description' => ''], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ['errorCode' => 'Duration.Exceed', 'errorMessage' => 'Duration between StartTime and EndTime is too long.', 'description' => ''], + ['errorCode' => 'InvalidParam.CodeIllegalDuration', 'errorMessage' => '%s.', 'description' => '开始时间应该小于结束时间。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', - 'title' => '添加直播拉流配置信息', - 'description' => '- 请确保在使用该接口前,已充分了解直播拉流的收费方式和价格。计费详情,请参见[标准直播](~~195284~~)。'."\n" - ."\n" - .'- 拉流是将第三方直播流地址拉取到阿里直播中心进行加速分发的过程。'."\n" - .'- 本接口仅支持固定拉流方式,即指定拉流的起始时间和结束时间,在指定时间进行拉流直播。'."\n" - .'- 控制台支持固定拉流和触发拉流两种方式,详细内容请参见[拉流配置](~~199452~~)。'."\n" - .'- AppName与StreamName可自定义修改,不同的值生成不同的直播流地址。可用[地址生成器](~~197400~~)生成。'."\n" - .'- (DomainName, AppName, StreamName)三元组只能对应一个配置,如果该三元组已经存在一个配置了,再调用本接口添加配置会返回配置已存在错误。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLivePullStreamConfig' => [ - 'summary' => '调用DescribeLivePullStreamConfig查询域名下拉流配置信息。', - 'methods' => [ - 'post', - 'get', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '添加主备合流', + 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '>AppName、InAppName1、InAppName2三个配置项中不可与其它两个中任意一个重复;StreamName、InStreamName1、InStreamName2三个配置项中不可与其它两个中任意一个重复。', + 'responseParamsDescription' => 'config invalid, degrade to no livemerger表示liveswitch新引擎的配置不完整,自动降级为旧引擎', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveStreamMerge'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveStreamMerge', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"Message\\": \\"OK\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'AddLiveStreamTranscode' => [ + 'summary' => '调用AddLiveStreamTranscode添加转码配置信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。用于使用SDK2.0时,指定服务接入点对应的地域ID,使用SDK1.0时,忽略该参数。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '您的主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => ['description' => '播流所属应用名称。'."\n" + ."\n" + .'- App取值必须与推流地址中的AppName名称一样,转码模板才能生效。取值不超过256字符,支持数字、大小写字母、短划线(-)、下划线(_)。'."\n" + ."\n" + .'- App也支持取值为单个星号(*)字符,表示匹配任意字符串(包括空字符串)。'."\n" + ."\n" + .'> 如果配置了App为单个星号(\\*)的转码模板:当用户拉流转码时,优先匹配和推流地址中AppName名称一样的转码模板;若不存在和推流地址中AppName名称一样的转码模板,则会匹配App为单个星号(*)的转码模板。 ', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => ['description' => '转码模版。取值:'."\n" + ."\n" + .'- 标准质量模板:'."\n" + ."\n" + .' - **lld**:流畅。'."\n" + ."\n" + .' - **lsd**:标清。'."\n" + ."\n" + .' - **lhd**:高清。'."\n" + ."\n" + .' - **lud** :超清。'."\n" + .' '."\n" + .'- 窄带高清™转码模板:'."\n" + ."\n" + .' - **ld**:流畅。'."\n" + .' '."\n" + .' - **sd**:标清。'."\n" + .' '."\n" + .' - **hd**:高清。'."\n" + .' '."\n" + .' - **ud**:超清。', 'type' => 'string', 'required' => true, 'example' => 'lsd'], + ], + [ + 'name' => 'EncryptParameters', + 'in' => 'query', + 'schema' => ['description' => '加密配置。JSON格式,各字段说明如下:'."\n" + ."\n" + .'- EncryptType:加密类型。固定取值**aliyun**。'."\n" + .'- KmsKeyID:用户KMS主密钥ID。'."\n" + .'- KmsKeyExpireInterval:换Key周期。取值范围:**60~3600**,单位:秒。', 'type' => 'string', 'required' => false, 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}'], + ], + [ + 'name' => 'Lazy', + 'in' => 'query', + 'schema' => ['description' => '是否开启触发转码。取值:'."\n" + .'- **yes**:开启触发转码。'."\n" + .'- **no**:不开启触发转码。', 'type' => 'string', 'required' => false, 'example' => 'yes', 'default' => 'yes'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', - ], - 'LiveAppRecordList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LiveAppRecord' => [ - 'description' => '拉流配置。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2016-05-20T01:33:00Z', - ], - 'AppName' => [ - 'description' => '直播流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'SourceUrl' => [ - 'description' => '拉流源站。', - 'type' => 'string', - 'example' => 'guide.aliyundoc.com', - ], - 'StartTime' => [ - 'description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2016-05-15T01:30:00Z', - ], - 'StreamName' => [ - 'description' => '拉流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'SourceUsing' => [ - 'description' => '当前正在使用的拉流源站。', - 'type' => 'string', - 'example' => 'guide.aliyundoc.com', - ], - 'DomainName' => [ - 'description' => '直播流所属的主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => '配置已存在,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"LiveAppRecordList\\": {\\n \\"LiveAppRecord\\": [\\n {\\n \\"EndTime\\": \\"2016-05-20T01:33:00Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"SourceUrl\\": \\"guide.aliyundoc.com\\",\\n \\"StartTime\\": \\"2016-05-15T01:30:00Z\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"SourceUsing\\": \\"guide.aliyundoc.com\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\nA3136B58-5876-4168-83CA-B562781981A0\\n\\n \\n guide.aliyundoc.com\\n liveStream****\\n 2016-05-20T01:33:00Z\\n example.com\\n 2016-05-15T01:30:00Z\\n guide.aliyundoc.com\\n liveApp****\\n \\n\\n","errorExample":"{\\n \\"LiveAppRecordList\\":{\\n \\"LiveAppRecord\\":[{\\n \\"AppName\\":\\"xxxx\\",\\n \\"DomainName\\":\\"live.aliyunlive.com\\",\\n \\"EndTime\\":\\"2016-05-20T01:33:00Z\\",\\n \\"SourceUrl\\":\\"http://test\\",\\n \\"StartTime\\":\\"2016-05-15T01:30:00Z\\",\\n \\"StreamName\\":\\"xxxxxx\\"\\n }]\\n },\\n \\"RequestId\\":\\"A3136B58-5876-4168-83CA-B562781981A0\\"\\n}"}]', - 'title' => '查询域名下拉流配置信息', - 'description' => '本接口目前适用于固定拉流。调用本接口查询域名下固定拉流的配置信息。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n\\t 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n","errorExample":""}]', + 'title' => '添加转码配置信息', + 'description' => '- 使用直播转码功能会产生转码费用,按转码标准、分辨率规格及对应总转码时长计费。计费规则详见[直播转码费用](~~90424~~)。'."\n" + ."\n" + .'- 先通过密钥管理服务KMS获取用户KMS主密钥ID,再调用本接口添加通用转码配置信息,目前本接口只支持标准质量模板和窄带高清™转码模板两种转码模板。'."\n" + ."\n" + .'- 阿里云KMS免费提供默认密钥用于云产品服务端加密,无需购买实例。但若您需要构建自建应用密码方案、使用凭据功能或需要管理密钥生命周期等,则需付费购买软件或硬件密钥管理实例。计费详情,请参见[产品计费](~~600418~~)。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteLivePullStreamInfoConfig' => [ - 'summary' => '删除拉流配置信息。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveStreamTranscode'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'AddLiveStreamWatermark' => [ + 'summary' => '调用AddLiveStreamWatermark添加水印模板。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5580,54 +4695,90 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveCT0GRQ'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '水印类型。取值:'."\n" + ."\n" + .'- **0**:图片。'."\n" + ."\n" + .'- **1**:文字(目前只支持图片)。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0'], ], [ - 'name' => 'AppName', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。您可调用[DescribeLivePullStreamConfig](~~2847818~~)查询。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '水印名称。', 'type' => 'string', 'required' => true, 'example' => 'livewatermark****'], ], [ - 'name' => 'StreamName', + 'name' => 'RefWidth', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。您可调用[DescribeLivePullStreamConfig](~~2847818~~)查询。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '参考背景视频宽,单位:px。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1920'], + ], + [ + 'name' => 'RefHeight', + 'in' => 'query', + 'schema' => ['description' => '参考背景视频高,单位:px。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1080'], + ], + [ + 'name' => 'XOffset', + 'in' => 'query', + 'schema' => ['description' => '⽔印X轴偏移,单位:px。'."\n" + .'>相对于参考背景宽RefWidth, 如果选择的是TopLeft,那么XOffset是指⽔印图⽚的左上⻆和背景视频的左上⻆的相对位置X。其中坐标指向背景视频中⼼的⽅向为正⽅向,即X轴的正⽅向是向右。', 'type' => 'number', 'format' => 'float', 'required' => true, 'example' => '50.0'], + ], + [ + 'name' => 'YOffset', + 'in' => 'query', + 'schema' => ['description' => '⽔印Y轴偏移,单位:px。'."\n" + .'>相对于参考背景⾼RefHeight,如果选择的是TopLeft,那么YOffset是指⽔印图⽚的左上⻆和背景视频的左上⻆的相对位置Y。其中坐标指向背景视频中⼼的⽅向为正⽅向,即Y轴的正⽅向是向下。', 'type' => 'number', 'format' => 'float', 'required' => true, 'example' => '100.0'], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => ['description' => '水印图片高度,单位:px。对比参考背景RefHeight,最终按照⽐例进⾏⾃适应缩放为准。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '200'], + ], + [ + 'name' => 'Transparency', + 'in' => 'query', + 'schema' => ['description' => '水印透明度,数值越小越透明。取值:0~255。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '255'], + ], + [ + 'name' => 'OffsetCorner', + 'in' => 'query', + 'schema' => ['description' => '位置。取值:'."\n" + ."\n" + .'- TopLeft:左上。'."\n" + ."\n" + .'- TopRight:右上。'."\n" + ."\n" + .'- BottomLeft:左下。'."\n" + ."\n" + .'- BottomRight:右下。', 'type' => 'string', 'required' => true, 'example' => 'TopRight'], + ], + [ + 'name' => 'PictureUrl', + 'in' => 'query', + 'schema' => ['description' => '水印图片链接。', 'type' => 'string', 'required' => true, 'example' => 'http://example.com'], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => '自定义水印描述信息。', 'type' => 'string', 'required' => false, 'example' => 'my watermark'], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => false, 'example' => 'example.aliyundoc.com'], ], ], 'responses' => [ @@ -5635,145 +4786,110 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'TemplateId' => ['description' => '水印模板ID。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b96****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '删除直播拉流配置', - 'description' => '本接口目前适用于固定拉流。调用本接口可以删除固定拉流的配置信息。'."\n" + 'title' => '添加⽔印模板', + 'description' => '- 本接口支持添加直播⽔印模板配置,模板配置支持描述⽔印内容、布局等信息。'."\n" + ."\n" + .'- 添加水印模板后,您还需要调用[AddLiveStreamWatermarkRule](~~2848100~~)接口添加水印规则,重新推流后,播流中才能带水印。'."\n" ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SetLiveLazyPullStreamInfoConfig' => [ - 'summary' => '添加拉流信息。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveStreamWatermark'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveStreamWatermark', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TemplateId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n5c6a2a0df228-4a64- af62-20e91b9676b3\\n445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + ], + 'AddLiveStreamWatermarkRule' => [ + 'summary' => '调用AddLiveStreamWatermarkRule添加水印规则。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveCT0GRQ'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '自定义规则名称。', 'type' => 'string', 'required' => true, 'example' => 'WatermarkRule****'], ], [ - 'name' => 'AppName', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。'."\n" - ."\n" - .'> 如果需要全部App都触发回源,则取值**ali_all_app**。', - 'type' => 'string', - 'required' => true, - 'example' => 'ali_all_app', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com'], ], [ - 'name' => 'PullDomainName', + 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所在的源站。多个源站使用英文分号(;)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'guide.aliyundoc.com', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'PullAppName', + 'name' => 'Stream', 'in' => 'query', - 'schema' => [ - 'description' => '回源拉流App。'."\n" - ."\n" - .'> 如果使用播放URL中的App,则此参数为空。', - 'type' => 'string', - 'required' => false, - 'example' => 'livePullApp****', - ], + 'schema' => ['description' => '流名称。规则如下:'."\n" + ."\n" + .'- 直接写流名称则仅匹配该流名称。示例:liveStreamA。'."\n" + ."\n" + .'- 可进行模糊匹配,`*`匹配所有流。'."\n" + ."\n" + .'- 可进行前匹配和后匹配。'."\n" + ."\n" + .'>- 模糊匹配格式说明:模糊匹配下的`*`要求有且仅有一个,只能在最前或最后,且匹配项需要`()`包围,多个匹配项用竖线`|`分隔。'."\n" + .'>- 示例:`*(t1|t2) `匹配所有后缀为`t1`或`t2`的流` (abc|123)*`匹配所有前缀为`abc`或者`123`的流。', 'type' => 'string', 'required' => true, 'example' => 'liveStreamA'], ], [ - 'name' => 'TranscodeLazy', + 'name' => 'TemplateId', 'in' => 'query', - 'schema' => [ - 'description' => '转码播放触发拉流。默认为**no**。可选值:'."\n" - ."\n" - .'- **yes**'."\n" - ."\n" - .'- **no**', - 'type' => 'string', - 'required' => false, - 'example' => 'no', - ], + 'schema' => ['description' => '水印模板ID。'."\n" + .'>可查看[AddLiveStreamWatermark](~~2848096~~)接口返回参数值获取TemplateId。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], [ - 'name' => 'PullProtocol', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => '回源拉流协议。取值:'."\n" - .'- **rtmp**'."\n" - .'- **httpflv**'."\n" - .'- **hls**', - 'type' => 'string', - 'required' => true, - 'example' => 'rtmp', - ], + 'schema' => ['description' => '自定义规则描述信息。', 'type' => 'string', 'required' => false, 'example' => 'my rule'], ], ], 'responses' => [ @@ -5781,188 +4897,205 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', - ], + 'RuleId' => ['description' => '水印规则ID。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', - 'title' => '配置触发拉流', - 'description' => '本接口的拉流方式属于触发拉流,即当需要拉取的源站开始播放直播流时,自动触发阿里云视频直播服务进行拉流直播。'."\n" - ."\n" - .'> 本接口暂时不支持IPv6协议。'."\n" - ."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], + ], + ], + 'title' => '添加水印规则', + 'description' => '调用[AddLiveStreamWatermark](~~2848096~~)接口添加水印模板后,可使用本接口添加水印规则。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => '| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" - .'| ------------- |------------ | ----- | ----- |'."\n" - .'| InvalidDomain.NotFound | The domain provided does not exist in our records.| 404 |当前账户下未查到域名|'."\n" - .'| IllegalOperation |Illegal domain operate is not permitted. |403 |不支持当前操作,如:非直播类域名|'."\n" - .'|Missing DomainName | DomainName is mandatory for this action. | 400 |缺少参数|'."\n" - .'| InternalError |The request processing has failed due to some unknown error. |500| 后台发生未知错误 |', - ], - 'DescribeLiveLazyPullStreamConfig' => [ - 'summary' => '查询播流域名下触发拉流配置信息。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveStreamWatermarkRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RuleId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n5c6a2a0df228-4a64-af62-20e91b9676b3\\n445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + ], + 'AddPlaylistItems' => [ + 'summary' => '添加节目单项。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。'."\n" + ."\n\n" + .'导播台需满足如下配置:'."\n" + .'- **NormType**:**3**。您需要提前创建好轻量级轮播型的导播台,可以调用**CreateCaster**接口创建导播台。'."\n" + .'- **CasterTemplate**:lp_noTranscode。'."\n" + .'- **channelEnable**:0。'."\n" + .'- **programEffect**:1。', 'type' => 'string', 'required' => true, 'example' => '0e94d1f4-1a65-445c-9dcf-de8b3b8d****'], ], [ - 'name' => 'AppName', + 'name' => 'ProgramItems', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '节目单项输入列表。为JSON字符串,更多信息,请参见**InputProgramItem**。', 'type' => 'string', 'required' => true, 'example' => '[{"ItemName":"item1","ResourceType":"vod","ResourceValue":"5f8809f2-3352-4d1f-a8f7-86f9429f****"}, {"ItemName": "item2","ResourceType": "vod","ResourceValue": "e7411c0b-dd98-4c61-a545-f8bfba6c****"}]'], + ], + [ + 'name' => 'ProgramId', + 'in' => 'query', + 'schema' => ['description' => '节目单ID。不填则默认创建一个新的节目单。', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + ], + [ + 'name' => 'ProgramConfig', + 'in' => 'query', + 'schema' => ['description' => '节目单项配置。若首次添加,传该参数进行初始化配置。更多信息,请参见**ProgramConfig**。', 'type' => 'string', 'required' => false, 'example' => '[{"RepeatNumber":"0","ProgramName":"my program"}]'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '拉流配置。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', - ], - 'LiveLazyPullConfigList' => [ + 'Items' => [ + 'description' => '添加节目单项信息列表。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'LiveLazyPullConfig' => [ - 'description' => '拉流配置。', + 'FailedItems' => [ + 'description' => '添加失败的节目单项列表。', 'type' => 'array', 'items' => [ - 'description' => '拉流配置。', 'type' => 'object', 'properties' => [ - 'AppName' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'PullArgs' => [ - 'description' => '回源拉流参数。', - 'type' => 'string', - 'example' => 'k=v', - ], - 'PullAppName' => [ - 'description' => '回源播流所属应用名称。 使用播放URL中的App则该项为空。', - 'type' => 'string', - 'example' => 'livePullApp****', - ], - 'PullProtocol' => [ - 'description' => '回源播流协议。取值:'."\n" - .'- **rtmp**'."\n" - .'- **httpflv**'."\n" - .'- **hls**', - 'type' => 'string', - 'example' => 'RTMP', - ], - 'PullDomainName' => [ - 'description' => '回源播域名。', - 'type' => 'string', - 'example' => 'guide.aliyundoc.com', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'TranscodeLazy' => [ - 'description' => '转码播放触发拉流。默认为**no**。可选值:'."\n" - ."\n" - .'- **yes**'."\n" - ."\n" - .'- **no**', - 'type' => 'string', - 'example' => 'no', - ], + 'ItemId' => ['description' => '节目单项ID。', 'type' => 'string', 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****'], + 'ItemName' => ['description' => '节目单项名称。', 'type' => 'string', 'example' => 'item1'], + ], + 'description' => '', + ], + ], + 'SuccessItems' => [ + 'description' => '添加成功的节目单项列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ItemId' => ['description' => '节目单项ID。', 'type' => 'string', 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****'], + 'ItemName' => ['description' => '节目单项名称。', 'type' => 'string', 'example' => 'item2'], ], + 'description' => '', ], ], ], ], + 'ProgramId' => ['description' => '节目单ID。可作为删除节目单项,查询节目单项,编辑节目单,删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****'], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"LiveLazyPullConfigList\\": {\\n \\"LiveLazyPullConfig\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"PullArgs\\": \\"k=v\\",\\n \\"PullAppName\\": \\"livePullApp****\\",\\n \\"PullProtocol\\": \\"RTMP\\",\\n \\"PullDomainName\\": \\"guide.aliyundoc.com\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"TranscodeLazy\\": \\"no\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n A3136B58-5876-4168-83CA-B562781981A0\\n \\n liveApp****\\n k=v\\n livePullApp****\\n RTMP\\n guide.aliyundoc.com\\n example.com\\n no\\n \\n","errorExample":""}]', - 'title' => '查询触发拉流配置', - 'description' => '本接口适用于触发拉流,调用本接口查询播流域名下触发拉流配置信息。'."\n" - ."\n\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'PlayListIsEmpty', 'errorMessage' => '%s, please check and try again later.', 'description' => '播放列表为空,请检查后重试。'], + ['errorCode' => 'MissInputParams', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ProgramId无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ], + 403 => [ + ['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => '超出配额:%s。'], + ], + [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'title' => '添加播放列表项', + 'description' => '先创建导播台,添加导播台布局和导播台组件,再调用本接口添加节目单项。若没有创建过节目单,则直接创建。使用API创建导播台请参考[创建导播台](~~2848009~~)。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '### InputProgramItem'."\n" + ."\n" + .'|参数名称|示例值|类型|描述|'."\n" + .'|--------|--------|--------|--------|'."\n" + .'|ItemName|item1|String|节目单项名称。|'."\n" + .'|ResourceType|vod|String|资源类型。取值:
**vod**:阿里云视频点播资源。
**url**:第三方视频资源。|'."\n" + .'|ResourceValue|5f8809f2-3352-4d1f-a8f7-86f9429f****|String|当ResourceType为vod时,ResourceValue为媒资ID。
当ResourceType为URL时,ResourceValue为第三方视频URL。|'."\n" + ."\n" + .'### ProgramConfig'."\n" + ."\n" + .'|参数名称|示例值|类型|描述|'."\n" + .'|--------|--------|--------|--------|'."\n" + .'|RepeatNumber|0|Integer|播放完后重复继续播放的次数。取值:
**0**(默认值):不重复播放。
**-1**:一直循环重复。
其他正整数:播放完后重复继续播放的次数。|'."\n" + .'|ProgramName|myprogram|String|节目单名称。|', 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" - .'| ------------- |------------ | ----- | ----- |'."\n" - .'| Missing DomainName | DomainName is mandatory for this action.| 400 |缺少参数。|'."\n" - .'| InvalidDomain.NotFound |The domain provided does not exist in our records. |404 |当前账户下未查到域名。|'."\n" - ."\n", - ], - 'DeleteLiveLazyPullStreamInfoConfig' => [ - 'summary' => '删除触发拉流配置信息。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddPlaylistItems'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddPlaylistItems', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Items\\": {\\n \\"FailedItems\\": [\\n {\\n \\"ItemId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ItemName\\": \\"item1\\"\\n }\\n ],\\n \\"SuccessItems\\": [\\n {\\n \\"ItemId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ItemName\\": \\"item2\\"\\n }\\n ]\\n },\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n \\n \\n item2\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n \\n \\n item2\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n \\n \\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + ], + 'AddRtsLiveStreamTranscode' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5970,175 +5103,191 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'AppName', + 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。'."\n" - ."\n" - .'> 如果需要删除全部App对应配置,则取值**ali_all_app**。', - 'type' => 'string', - 'required' => true, - 'example' => 'ali_all_app', - ], + 'schema' => ['description' => '播流所属应用名称。取值要求:'."\n" + ."\n" + .'- 该字段必须由大小写字母、数字、下划线(_)或短横线(-)组成。'."\n" + ."\n" + .'- 这些字符不必全含,建议取值大于3个字符,且字段的开头必须是字母(大小写)或数字。', 'type' => 'string', 'required' => true, 'example' => 'aliyun-test'], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - ], - ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => ['description' => '转码模板自定义名称。取值要求:'."\n" + ."\n" + .'- 该字段必须由大小写字母、数字、下划线(_)或短横线(-)组成。'."\n" + ."\n" + .'- 这些字符不必全含,建议取值大于3个字符,且字段的开头必须是字母(大小写)或数字。'."\n" + ."\n" + .'>不能与标准的转码模板命名重复。', 'type' => 'string', 'required' => true, 'example' => 'ld'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '删除触发拉流配置信息', - 'description' => '本接口目前适用于触发拉流。调用本接口删除触发拉流配置信息。如果AppName取值为ali_all_app,则可以删除全部App对应的触发拉流配置信息。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' | 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" - .'| ------------- |------------ | ----- | ----- |'."\n" - .'| InternalError | The request processing has failed due to some unknown error.| 500 |后台发生未知错误。|'."\n" - .'|InvalidDomain.NotFound|The domain provided does not exist in our records. |404 |当前账户下未查到域名。|'."\n" - .'|IllegalOperation |Illegal domain operate is not permitted.| 404 |不支持当前操作,如:非直播类域名。|'."\n", - ], - 'UpdateLivePullStreamInfoConfig' => [ - 'summary' => '更新直播拉流配置信息,包括源站地址、开始时间和结束时间。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'TemplateType', + 'in' => 'query', + 'schema' => ['description' => '自定义转码模版类型。目前支持:'."\n" + ."\n" + .'- **h264**:自定义H264标准模版。'."\n" + .'- **h264-nbhd**:自定义H264窄带高清™模版。'."\n" + .'- **h264-origin**:原画H264标准模版,转码参数尽量保持和片源相同。'."\n" + .'- **audio**:纯音频转码模板,转码出来文件只有声音没有图像。如果选择audio类型,必须同时设置请求参数AudioBitrate。'."\n" + ."\n" + .'> 如果选择h264或h264-nbhd或h264-origin类型,必须同时设置请求参数Height,Width,FPS,VideoBitrate和DeleteBframes。'."\n", 'type' => 'string', 'required' => true, 'example' => 'h264'], ], - ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => ['description' => '转码视频高度。单位:像素。取值:'."\n" + .'>当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" + .'>'."\n" + ."\n" + .'需要**同时**满足如下三个条件:'."\n" + ."\n" + .'- **Height ≥ 100**:视频的高需要不小于100像素。'."\n" + .'- **max(Height,Width)≤ 2560**:视频的宽、高中较大的一个最大不能大于2560。'."\n" + .'- **min(Height,Width)≤ 1440**:视频的宽、高中较小的一个最大不能大于1440。'."\n" + ."\n" + .'例如:1560×1560(正方形视频)是不合法的。'."\n" + ."\n" + .'>原画模板由于需要保持片源的信息,分辨率最高支持到4K。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1280'], ], - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'Width', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '转码视频宽度。单位:像素。取值:'."\n" + .'>当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" + .'>'."\n" + ."\n" + .'需要同时满足如下三个条件:'."\n" + ."\n" + .'- **Width≥ 100**:视频的宽需要不小于100像素。'."\n" + .'- **max(Height,Width)≤ 2560**:视频的宽、高中较大的一个最大不能大于2560。'."\n" + .'- **min(Height,Width)≤ 1440**:视频的宽、高中较小的一个最大不能大于1440。'."\n" + ."\n" + .'例如:1560×1560(正方形视频)是不合法的。'."\n" + ."\n" + .'>原画模板由于需要保持片源的信息,分辨率最高支持到4K。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '720'], ], [ - 'name' => 'DomainName', + 'name' => 'FPS', 'in' => 'query', - 'schema' => [ - 'description' => '您的拉流域名为用户的主播流域名。'."\n" - .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '转码视频帧率。单位:FPS。取值:**1**~**60**。'."\n" + ."\n" + .'>当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" + .'>', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], ], [ - 'name' => 'AppName', + 'name' => 'VideoBitrate', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '转码视频比特率。单位:kbps。取值:**1**~**6000**。'."\n" + ."\n" + .'>当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" + .'>'."\n" + ."\n" + .'>转码视频会尽量接近您所设定的比特率,但转码视频的实际比特率不能保证和您所设定的完全一致,尤其是当您设定的比特率过大或过小时。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2000'], ], [ - 'name' => 'StreamName', + 'name' => 'AudioBitrate', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '转码音频比特率。'."\n" + .'单位:kbps。取值:**1**~**1000**。'."\n" + ."\n" + .'>当TemplateType(自定义转码模版类型)设为audio时,本参数必填。'."\n" + .'>'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '128'], ], [ - 'name' => 'SourceUrl', + 'name' => 'Gop', 'in' => 'query', - 'schema' => [ - 'description' => '用户的直播流所在的源站完整url。多个源站可以填多个地址,用英文分号(;)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****;rtmp://developer.aliyundoc.com/liveApp****/liveStream****', - ], + 'schema' => ['description' => '视频GOP(Group of Picture)。主要用于控制关键帧间隔。单位:秒。取值:**1**~**3**。', 'type' => 'string', 'required' => false, 'example' => '2'], ], [ - 'name' => 'StartTime', + 'name' => 'DeleteBframes', 'in' => 'query', - 'schema' => [ - 'description' => '拉流开始时间。'."\n" - ."\n" - .'StartTime和EndTime时间间隔在7天内。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-21T08:00:00Z', - ], + 'schema' => ['description' => '是否使用B帧进行转码。取值:'."\n" + .'>当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" + .'>'."\n" + ."\n" + .'- **true**:转码后的视频无B帧。'."\n" + ."\n" + .'- **false**:包含B帧,默认包含B帧。'."\n" + ."\n" + .'> 不传参数时默认为**false**。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'EndTime', + 'name' => 'Opus', 'in' => 'query', - 'schema' => [ - 'description' => '拉流结束时间。'."\n" - ."\n" - .'StartTime和EndTime时间间隔在7天内,且EndTime超过当前时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-22T08:00:00Z', - ], + 'schema' => ['description' => '音频转码是否使用opus进行转码(主要用户兼容原生webrtc问题)。取值:'."\n" + ."\n" + .'- **true**:音频转码为opus格式。'."\n" + ."\n" + .'- **false**:不使用opus格式转码。'."\n" + ."\n" + .'> 不传参数时默认为**false**。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'Profile', + 'in' => 'query', + 'schema' => ['description' => '编码级别。视频支持的一组特定的编码功能,一般值越大得到的画面质量越好,同时编解码消耗的资源也越高。取值:'."\n" + .'- **1**:baseline(适合移动设备)。'."\n" + .'- **2**:main(适合标准分辨率设备)。'."\n" + .'- **3**:high(适合高分辨率设备)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + ], + [ + 'name' => 'AudioProfile', + 'in' => 'query', + 'schema' => ['description' => '音频编码级别。取值: '."\n" + .'- **aac_low**。'."\n" + .'- **aac_he**。'."\n" + .'- **aac_he_v2**。'."\n" + .'- **aac_ld**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'aac_low'], + ], + [ + 'name' => 'AudioCodec', + 'in' => 'query', + 'schema' => ['description' => '音频编码器。取值:'."\n" + .'- **aac**。'."\n" + .'- **mp3**。'."\n" + ."\n" + .'>如果要使用opus编码,把Opus选项参数置为true即可。', 'type' => 'string', 'required' => false, 'example' => 'aac'], + ], + [ + 'name' => 'AudioRate', + 'in' => 'query', + 'schema' => ['description' => '音频采样率。取值:**22050~96000**,其中44100比较常用。单位:Hz。'."\n" + ."\n" + .'>如果音频编码AudioProfile是aac_ld,则采样率不能超过44100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '44100'], + ], + [ + 'name' => 'AudioChannelNum', + 'in' => 'query', + 'schema' => ['description' => '音频声道数。取值:'."\n" + .'- **1** :单声道。'."\n" + .'- **2**:立体声。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + ], + [ + 'name' => 'Lazy', + 'in' => 'query', + 'schema' => ['description' => '是否开启触发转码。取值:'."\n" + .'- **yes**:开启触发转码。'."\n" + .'- **no**:不开启触发转码。', 'type' => 'string', 'required' => false, 'example' => 'no'], ], ], 'responses' => [ @@ -6146,273 +5295,186 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'Duration.Exceed', - 'errorMessage' => 'Duration between StartTime and EndTime is too long.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'TemplateLimit', 'errorMessage' => '%s Please check and try again later.', 'description' => '模板数量达到上限。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', - 'title' => '更新直播拉流配置', - 'description' => '本接口目前适用于固定拉流。调用本接口更新直播拉流配置信息,包括源站地址、开始时间和结束时间。'."\n" - ."\n" - .'> 调用本接口修改配置后,直播服务会按照修改后配置重新执行固定拉流,请确保修改操作不会影响线上业务。'."\n" + 'title' => '添加RTS自定义转码配置信息', + 'summary' => '调用AddRtsLiveStreamTranscode添加RTS自定义转码配置信息。', + 'description' => '## 使用说明'."\n" + .'调用本接口添加RTS自定义转码配置信息,本接口目前只支持h264、h264-nbhd、h264-origin、audio四种自定义转码模版类型。'."\n" ."\n" .'## QPS限制'."\n" - ."\n" - .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" - .'|------------|--------|---------|------|'."\n" - .'| InternalError | The request processing has failed due to some unknown error. | 500 | 后台发生未知错误 |'."\n" - .'| InvalidDomain.NotFound | The domain provided does not exist in our records. | 404 | 当前账户下未查到域名 |'."\n" - .'| IllegalOperation | Illegal domain operate is not permitted. | 403 | 不支持当前操作,如:非直播类域名 |'."\n" - .'| Duration.Exceed | Duration between StartTime and EndTime is too long. | 400 | 查询时间范围过长|', - ], - 'DescribeLiveStreamsBlockList' => [ - 'summary' => '调用DescribeLiveStreamsBlockList获取域名下直播流播放的黑名单。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '### 特殊错误码'."\n" + .'|错误代码|描述|HTTP 状态码|语义|'."\n" + .'|--------|--------|----|----|'."\n" + .'|InvalidDomain.NotFound|The domain provided does not exist in our records.|404|域名不存在或不属于当前用户。|'."\n" + .'|IllegalOperation|Illegal domain operate is not permitted.|403|不支持当前操作,如:非直播类域名。|'."\n" + .'|InvalidParameters|Invalid parameters.|400|参数不合法,如高度过大、比特率过大等。|'."\n" + .'|ConfigAlreadyExists|Config has already exist.|400|配置已添加。|'."\n" + .'|InternalError|The request processing has failed due to some unknown error.|500|后台发生未知错误。|', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddRtsLiveStreamTranscode'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddRtsLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n","errorExample":""}]', + ], + 'AddShowIntoShowList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'PageNum', + 'name' => 'showList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '当前页码。默认值为**1**。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '需要添加的多个节目资源列表,每个资源都有独立的showName,resourceUrl等参数。', + 'type' => 'array', + 'items' => [ + 'description' => '导播台列表信息。', + 'type' => 'object', + 'properties' => [ + 'duration' => ['description' => '单个节目播放时间长度,单位:秒。'."\n" + ."\n" + .'>**RepeatTimes**和**Duration**两者只允许设置其中一个。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '20'], + 'liveInputType' => ['description' => '自定义的类型标记。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'repeatTimes' => ['description' => '单个节目播放循环次数,默认为0。'."\n" + ."\n" + .'>- **RepeatTimes**和**Duration**两者只允许设置其中一个。'."\n" + .'- RepeatTimes为重复次数,示例:0表示重复0次(实际播放1次),1表示重复1次(实际播放2次),以此类推。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + 'resourceId' => ['description' => '点播文件ID。', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'resourceType' => ['description' => '素材类型。取值:'."\n" + ."\n" + .'- live:直播素材。'."\n" + ."\n" + .'- vod:点播素材。'."\n" + ."\n" + .'- pic:图片素材。'."\n" + ."\n" + .'>- 使用视频点播(VOD)资源,可优先选择托管Bucket资源,自有Bucket资源存在过期风险,如果您选用自有Bucket资源,需注意资源的有效期时间。'."\n" + .'- 直播文件可支持直播素材和第三方URL。'."\n" + .'- 点播文件可支持点播素材、图片素材和第三方URL。', 'type' => 'string', 'required' => false, 'example' => 'vod'], + 'resourceUrl' => ['description' => '播放文件URL。', 'type' => 'string', 'required' => false, 'example' => 'http://****/atestObject****.m3u8'], + 'showName' => ['description' => '节目名称。', 'type' => 'string', 'required' => false, 'example' => 'liveShow****'], + ], + 'required' => false, + ], 'required' => false, - 'example' => '2', - 'default' => '1', + 'maxItems' => 10, ], ], [ - 'name' => 'PageSize', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '每页大小。取值范围:**1~3000**,默认值为**2000**。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '3000', - 'minimum' => '1', - 'example' => '10', - 'default' => '2000', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'PageNum' => [ - 'description' => '分页的当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9D855EC8-CF71-4615-B164-F7DFCB23B41D', - ], - 'TotalPage' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'PageSize' => [ - 'description' => '每页显示的条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalNum' => [ - 'description' => '符合条件的总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '11', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'StreamUrls' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'StreamUrl' => [ - 'description' => '完整流url地址。', - 'type' => 'array', - 'items' => [ - 'description' => '完整流URL地址。', - 'type' => 'string', - 'example' => 'example.com/liveApp****/liveStream****', - ], - ], - ], - ], - ], - ], + [ + 'name' => 'ShowName', + 'in' => 'query', + 'schema' => ['description' => '节目名称。', 'type' => 'string', 'required' => false, 'example' => 'liveShow****'], ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 2,\\n \\"RequestId\\": \\"9D855EC8-CF71-4615-B164-F7DFCB23B41D\\",\\n \\"TotalPage\\": 2,\\n \\"PageSize\\": 10,\\n \\"TotalNum\\": 11,\\n \\"DomainName\\": \\"example.com\\",\\n \\"StreamUrls\\": {\\n \\"StreamUrl\\": [\\n \\"example.com/liveApp****/liveStream****\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2\\n 9D855EC8-CF71-4615-B164-F7DFCB23B41D\\n 2\\n 10\\n 11\\n example.com\\n example.com/liveApp****/liveStream****\\n","errorExample":""}]', - 'title' => '获取域名下直播流播放的黑名单', - 'description' => '调用本接口获取域名下直播流播放的黑名单。其中直播流指的是主播流。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveStreamsControlHistory' => [ - 'summary' => '获取某个域名或应用下的直播流操作历史。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => ['description' => '素材类型。取值:'."\n" + .'- live:直播素材。'."\n" + .'- vod:点播素材。'."\n" + .'- pic:图片素材。'."\n" + ."\n" + .'>- 使用视频点播(VOD)资源,可优先选择托管Bucket资源,自有Bucket资源存在过期风险,如果您选用自有Bucket资源,需注意资源的有效期时间。- 直播文件可支持直播素材和第三方URL。- 点播文件可支持点播素材、图片素材和第三方URL。', 'type' => 'string', 'required' => false, 'example' => 'vod'], ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', + [ + 'name' => 'ResourceUrl', + 'in' => 'query', + 'schema' => ['description' => '播放文件URL。', 'type' => 'string', 'required' => false, 'example' => 'http://****/atestObject****.m3u8'], ], - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ResourceId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '点播文件ID。', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], [ - 'name' => 'DomainName', + 'name' => 'Duration', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '单个节目播放时间长度,单位:秒。'."\n" + .'>**RepeatTimes**和**Duration**两者只允许设置其中一个。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '20'], ], [ - 'name' => 'AppName', + 'name' => 'RepeatTimes', 'in' => 'query', - 'schema' => [ - 'description' => '应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '单个节目播放循环次数,默认为0。'."\n" + .'> - **RepeatTimes**和**Duration**两者只允许设置其中一个。- RepeatTimes为重复次数,示例:-1表示可无限重复;0表示重复0次(实际播放1次);1表示重复1次(实际播放2次);以此类推。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], ], [ - 'name' => 'StartTime', + 'name' => 'Spot', 'in' => 'query', - 'schema' => [ - 'description' => '查询开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-21T08:00:00Z', - ], + 'schema' => ['description' => '插入到播放列表的位置。位置从0 开始,默认添加到当前节目单的末尾。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'EndTime', + 'name' => 'LiveInputType', 'in' => 'query', - 'schema' => [ - 'description' => '查询结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> EndTime和StartTime之间的间隔不能超过7天。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-22T08:00:00Z', - ], + 'schema' => ['description' => '自定义的类型标记。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'isBatchMode', + 'in' => 'query', + 'schema' => ['description' => '是否批量添加节目到节目单。取值:'."\n" + ."\n" + .'- true:批量添加。'."\n" + ."\n" + .'- false:单个添加。'."\n" + ."\n" + .'>该参数不填,取值为空时,也表示单个添加。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ @@ -6420,165 +5482,218 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9C31856F-386D-4DB3-BE79-A0AA493D702A', - ], - 'ControlInfo' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LiveStreamControlInfo' => [ - 'description' => '直播流的操作记录。', - 'type' => 'array', - 'items' => [ - 'description' => '直播流的操作记录。', - 'type' => 'object', - 'properties' => [ - 'ClientIP' => [ - 'description' => '用户端的IP地址。', - 'type' => 'string', - 'example' => '10.207.XX.XX', - ], - 'TimeStamp' => [ - 'description' => '操作执行的时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-12-01T16:36:18Z', - ], - 'Action' => [ - 'description' => '执行的操作名称。', - 'type' => 'string', - 'example' => 'DescribeLiveStreamsControlHistory', - ], - 'StreamName' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '987DA143-A39C-5B5D-AF5B-3B07944A0036'], + 'ShowId' => ['description' => '节目ID。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'failedList' => ['description' => '添加失败的资源列表以及失败原因信息。', 'type' => 'string', 'example' => 'failedList[Show1, Show2...]'], + 'successfulShowIds' => ['description' => '添加成功添加的节目ID列表。', 'type' => 'string', 'example' => 'f1933f16-5467-4308-b3a9-e8d451a90999,547436b8-c839-4469-a2c0-704c1ce5ce00'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified parameter StartTime is not valid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified parameter EndTime is not valid.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数VodUrl无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9C31856F-386D-4DB3-BE79-A0AA493D702A\\",\\n \\"ControlInfo\\": {\\n \\"LiveStreamControlInfo\\": [\\n {\\n \\"ClientIP\\": \\"10.207.XX.XX\\",\\n \\"TimeStamp\\": \\"2015-12-01T16:36:18Z\\",\\n \\"Action\\": \\"DescribeLiveStreamsControlHistory\\",\\n \\"StreamName\\": \\"liveStream****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n9C31856F-386D-4DB3-BE79-A0AA493D702A\\n\\n \\n DescribeLiveStreamsControlHistory\\n liveStream****\\n 10.207.XX.XX\\n 2015-12-01T16:36:18Z\\n \\n\\n","errorExample":""}]', - 'title' => '查询直播流操作历史', - 'description' => '调用本接口获取某个域名或应用下的直播流操作历史。其中直播流操作指的是对这个直播流进行过的接口操作。'."\n" + 'title' => '添加一个节目到节目单', + 'summary' => '添加节目到节目单中。', + 'description' => '请先创建新播单型导播台,添加新播单型导播台视频资源后再调用本接口添加导播台节目到节目单中。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" + ."\n" + .'每个节目单最多可添加1000个节目。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'- 使用视频点播(VOD)资源,可优先选择托管Bucket资源,自有Bucket资源存在过期风险,如果您选用自有Bucket资源,需注意资源的有效期时间。'."\n" + ."\n" + .'- 导播台素材资源输入请优先选择视频直播和视频点播的资源,若从第三方URL输入资源存在播放失败可能性,需确定资源的质量和有效性。'."\n" + ."\n\n" + .'>'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveStreamBitRateData' => [ - 'summary' => '查询RTMP协议的直播流在设置时间范围内的一组帧率和码率,适用于获取历史数据。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 代码示例'."\n" + ."\n" + .'```'."\n" + .'public static DefaultAcsClient initClient(String accessKeyId, String accessKeySecret) throws ClientException {'."\n" + .' String regionId = "cn-shanghai"; '."\n" + .' DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);'."\n" + .' DefaultAcsClient client = new DefaultAcsClient(profile);'."\n" + .' return client;'."\n" + .' }'."\n" + ."\n" + .'private static CommonResponse addShowIntoShowList(DefaultAcsClient client, String showName, String resourceId, String resourceUrl,'."\n" + .' String resourceType, Integer spot, Integer repeatTimes,'."\n" + .' String casterId, Long duration) throws ClientException {'."\n" + .' CommonRequest addShowIntoShowListRequest = new CommonRequest();'."\n" + .' addShowIntoShowListRequest.setSysDomain("live.aliyuncs.com");'."\n" + .' addShowIntoShowListRequest.setSysVersion("2016-11-01");'."\n" + .' addShowIntoShowListRequest.setSysAction("AddShowIntoShowList");'."\n" + ."\n\n" + .' '."\n" + .' if (casterId == null || resourceType == null) {'."\n" + .' return null;'."\n" + .' }'."\n" + .' if (resourceId == null && resourceUrl == null) {'."\n" + .' return null;'."\n" + .' }'."\n" + .' addShowIntoShowListRequest.putQueryParameter("CasterId", casterId);'."\n" + .' addShowIntoShowListRequest.putQueryParameter("ResourceType", resourceType);'."\n" + .' if (showName != null) {'."\n" + .' addShowIntoShowListRequest.putQueryParameter("ShowName", showName);'."\n" + .' }'."\n" + .' if (resourceUrl != null) {'."\n" + .' addShowIntoShowListRequest.putQueryParameter("ResourceUrl", resourceUrl);'."\n" + .' }'."\n" + .' if (resourceId != null) {'."\n" + .' addShowIntoShowListRequest.putQueryParameter("ResourceId", resourceId);'."\n" + .' }'."\n" + .' if (spot != null) {'."\n" + .' addShowIntoShowListRequest.putQueryParameter("Spot", spot.toString());'."\n" + .' }'."\n" + .' if (repeatTimes != null) {'."\n" + .' addShowIntoShowListRequest.putQueryParameter("RepeatTimes", repeatTimes.toString());'."\n" + .' }'."\n" + .' if (duration != null) {'."\n" + .' addShowIntoShowListRequest.putQueryParameter("Duration", duration.toString());'."\n" + .' }'."\n" + .' CommonResponse addShowIntoShowListResponse = client.getCommonResponse(addShowIntoShowListRequest);'."\n" + .' return addShowIntoShowListResponse;'."\n" + .' }'."\n" + ."\n\n" + .' public void addshows() throws ClientException {'."\n" + .' DefaultAcsClient client = initClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET);'."\n" + .' String[] resourceIds = new String[]{"698d2b23581f476ea71107703e647d1e", "9c97e83e211a435b9f797e4e20eeea27", "76c6addaa41c438985666a8a964fa5e5"};'."\n" + .' for (int i = 0; i < resourceIds.length; i++) {'."\n" + .' String showName = "ShowName#" + i;'."\n" + .' Integer repeatTimes = i;'."\n" + .' addShowIntoShowList(client, showName, resourceIds[i], null, "vod", null, repeatTimes, testCasterId, null);'."\n" + .' }'."\n" + .' }'."\n" + .'```', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddShowIntoShowList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddShowIntoShowList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"987DA143-A39C-5B5D-AF5B-3B07944A0036\\",\\n \\"ShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"failedList\\": \\"failedList[Show1, Show2...]\\",\\n \\"successfulShowIds\\": \\"f1933f16-5467-4308-b3a9-e8d451a90999,547436b8-c839-4469-a2c0-704c1ce5ce00\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 987DA143-A39C-5B5D-AF5B-3B07944A0036\\n \\n \\n test\\n vod\\n \\n ResourceUrl is invalid, probe failed\\n \\n \\n \\n http://error.test.case\\n vod\\n \\n ResourceUrl is invalid, probe failed\\n \\n f1933f16-5467-4308-b3a9-e8d451a90999, 547436b8-c839-4469-a2c0-704c1ce5ce00\\n","errorExample":""}]', + ], + 'AddStudioLayout' => [ + 'summary' => '添加虚拟演播厅的布局设置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '推流域名。'."\n" - .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'AppName', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'>需要提前创建好,必须是虚拟演播厅类型的导播台。可通过控制台或调用[CreateCaster](~~69338~~)接口添加导播台,类型需选择虚拟演播厅。'."\n" + .'>'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], [ - 'name' => 'StreamName', + 'name' => 'LayoutName', 'in' => 'query', - 'schema' => [ - 'description' => '流的名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '演播厅布局名称。', 'type' => 'string', 'required' => true, 'example' => 'Test layout'], ], [ - 'name' => 'StartTime', + 'name' => 'LayoutType', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-21T08:00:00Z', - ], + 'schema' => ['description' => '演播厅布局类型。取值:'."\n" + ."\n" + .'- **common**:通用布局。当LayoutType取值为common时,请求参数CommonConfig为必填。'."\n" + .'- **studio**:演播厅布局。当LayoutType取值为studio时,请求参数BgImageConfig和ScreenInputConfigList为必填,MediaInputConfigList为选填。', 'type' => 'string', 'required' => true, 'example' => 'studio'], ], [ - 'name' => 'EndTime', + 'name' => 'CommonConfig', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> '."\n" - .'> - EndTime要大于StartTime,并且EndTime与StartTime间隔最多为30天', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-22T08:00:00Z', - ], + 'schema' => ['description' => '通用布局配置。格式为JSON字符串,请参见**CommonConfig**。'."\n" + ."\n" + .'>当请求参数LayoutType取值为common时,本参数才必填。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => '{"ChannelId":"RV01" }'], + ], + [ + 'name' => 'BgImageConfig', + 'in' => 'query', + 'schema' => ['description' => '背景资源配置。格式为JSON字符串,请参见**BgImageConfig**。'."\n" + ."\n" + .'>当请求参数LayoutType取值为studio时,本参数才必填。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => '{ "Id":"k12kj31****", "MaterialId":"f080575eb5f4427684fc0715159a****" }'], + ], + [ + 'name' => 'ScreenInputConfigList', + 'in' => 'query', + 'schema' => ['description' => '抠像输入设置。格式为JSON字符串,请参见**ScreenInputConfig**。'."\n" + ."\n" + .'>当请求参数LayoutType取值为studio时,本参数才必填。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => '[ { "Index":"1", "ChannelId":"RV01", "Color":"green", "PositionX":"0.1", "PositionY":"0.2", "HeightNormalized":"0.4" } ]'], + ], + [ + 'name' => 'MediaInputConfigList', + 'in' => 'query', + 'schema' => ['description' => '多媒体输入资源设置。格式为JSON字符串,请参见**MediaInputConfig**。'."\n" + ."\n" + .'>当请求参数LayoutType取值为studio时,本参数才有效,且为选填。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => '[ { "Id":"k12kj31****", "Index":"1", "ChannelId":"RV01", "FillMode":"none", "PositionRefer":"topLeft", "WidthNormalized":"0.4", "HeightNormalized":"0.4", "PositionNormalized":"[0.1, 0.2]" }, { "Id":"k12kj31****", "Index":"2", "ImageMaterialId":"lkajsdfsa8fd89asd8****", "FillMode":"none", "PositionRefer":"topLeft", "WidthNormalized":"0.6", "HeightNormalized":"0.4", "PositionNormalized":"[0.1, 0.2]" } ]'], + ], + [ + 'name' => 'LayerOrderConfigList', + 'in' => 'query', + 'schema' => ['description' => '图层顺序设置。格式为JSON字符串,请参见**layerOrderConfig**。'."\n" + .'支持背景素材、多媒体素材排序,暂不支持抠像层。越排在前面,越在底层。', 'type' => 'string', 'required' => false, 'example' => '[ { "Type":"media", "Id":"k12kj31****" }, { "Type":"media", "Id":"k12kj31****" } ]'], ], ], 'responses' => [ @@ -6586,609 +5701,335 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'FrameRateAndBitRateInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'FrameRateAndBitRateInfo' => [ - 'description' => '各直播流的帧率、码率信息。', - 'type' => 'array', - 'items' => [ - 'description' => '各直播流的帧率、码率信息。', - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '统计时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2016-09-13T16:04:00Z', - ], - 'VideoFrameRate' => [ - 'description' => '直播流的视频帧率。单位:FPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '30', - ], - 'AudioFrameRate' => [ - 'description' => '直播流的音频帧率。单位:FPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'StreamUrl' => [ - 'description' => '直播流的URL。', - 'type' => 'string', - 'example' => 'rtmp://guide.aliyundoc.com/liveAppName****/liveSteamName****', - ], - 'BitRate' => [ - 'description' => '直播流的码率。单位:Bps。', - 'type' => 'number', - 'format' => 'float', - 'example' => '600', - ], - ], - ], - ], - ], - ], + 'LayoutId' => ['description' => '布局ID。可作为删除虚拟演播厅布局、修改虚拟演播厅布局和查询虚拟演播厅布局的请求参数。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidAppName.Malformed', - 'errorMessage' => 'Specified AppName is malformed.', - ], - [ - 'errorCode' => 'InvalidStreamName.Malformed', - 'errorMessage' => 'Specified StreamName is malformed.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidTime.ValueNotSupported', - 'errorMessage' => 'StartTime or EndTime is miss match.', - ], - [ - 'errorCode' => 'InvalidStreamNumber.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidPositionNormalized.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PositionNormalized无效,请检查后重试。'], + ['errorCode' => 'InvalidHeightOrWidthNormalized', 'errorMessage' => '%s, please check and try again later.', 'description' => 'HeightNormalized或者WidthNormalized参数无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"FrameRateAndBitRateInfos\\": {\\n \\"FrameRateAndBitRateInfo\\": [\\n {\\n \\"Time\\": \\"2016-09-13T16:04:00Z\\",\\n \\"VideoFrameRate\\": 30,\\n \\"AudioFrameRate\\": 100,\\n \\"StreamUrl\\": \\"rtmp://guide.aliyundoc.com/liveAppName****/liveSteamName****\\",\\n \\"BitRate\\": 600\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n \\n \\n 30\\n \\n 600\\n 100\\n rtmp://guide.aliyundoc.com/liveAppName****/liveSteamName****\\n \\n \\n","errorExample":""}]', - 'title' => '查询RTMP协议直播流的帧率和码率', - 'description' => '调用本接口查询RTMP协议的直播流在设置时间范围内的一组帧率和码率,适用于获取历史数据。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LayoutId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 5c6a2a0d-f228-4a64-af62-20e91b9676b3\\n","errorExample":""}]', + 'title' => '添加虚拟演播厅布局', + 'description' => '调用本接口添加虚拟演播厅的布局设置。本接口目前支持的演播厅布局类型为通用布局和演播厅布局。'."\n" ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '## CommonConfig'."\n" + .'| 名称 | 类型 | 示例 | 描述 |'."\n" + .'| --------------- | ------ | --------------------- | -------------------------- |'."\n" + .'| ChannelId | String | RV01 | 视频资源绑定的通道位置ID。 |'."\n" + ."\n" + .'## BgImageConfig'."\n" + .'> 其中ImageUrl和MaterialId仅能输入一个。'."\n" + ."\n" + .'| 名称 | 类型 | 示例 | 描述 |'."\n" + .'| --------------- | ------ | --------------------- | -------------------------- |'."\n" + .'| Id | String | k12kj31**** | 该背景素材唯一ID。 |'."\n" + .'| ImageUrl | String | http://aliyundoc.com | 素材地址URL。 |'."\n" + .'| MaterialId | String | f080575eb5f4427684fc0715159a**** | 点播素材ID。 |'."\n" + ."\n" + .'## ScreenInputConfig'."\n" + .'| 名称 | 类型 | 示例 | 描述 |'."\n" + .'| ---------------- | ------- | ------------------------------------ | ------------------------------------------------------------ |'."\n" + .'| Index | Integer | 1 | 抠像源编号。前端展示使用,无逻辑作用,要求取正整数(>0)。 |'."\n" + .'| ChannelId | String | RV01 | 视频资源绑定的通道位置ID。 |'."\n" + .'| Color | String | green | 抠像色域。取值:
**blue**:蓝幕背景。
**green**:绿幕背景。
**auto**:自动识别。
**complex**:实景抠像。 |'."\n" + .'| PositionX | Float | 0.1 | 位置参数,坐标x。取值:[0,1]。
素材位置以左上角为基准点。 |'."\n" + .'| PositionY | Float | 0.2 | 位置参数,坐标y。取值:[0,1]。
素材位置以左上角为基准点。 |'."\n" + .'| HeightNormalized | Float | 0.4 | 高度归一化值。即抠出的人像与背景的高度比。取值:[0,1]。 |'."\n" + ."\n" + .'## MediaInputConfig'."\n" + .'- 当多媒体素材是视频源,传入ChannelId。'."\n" + .'- 当多媒体素材是图片,传入ImageMeterialId。'."\n" + .'- ChannelId和ImageMeterialId是互斥的,两者选填一项。'."\n" + ."\n" + .'| 名称 | 类型 | 示例 | 描述 |'."\n" + .'| ------------------ | ------- | ------------------------------------ | ------------------------------------------------------------ |'."\n" + .'| Id | String | k12kj31**** | 该多媒体素材唯一ID。 |'."\n" + .'| Index | Integer | 1 | 多媒体素材编号。前端展示使用,无逻辑作用,要求取正整数(>0)。 |'."\n" + .'| ChannelId | String | RV01 | 视频资源绑定的通道位置ID。 |'."\n" + .'| ImageMaterialId | String | lkajsdfsa8fd89asd8**** | 点播图片素材ID。 |'."\n" + .'| FillMode | String | none | 填充类型。填**none**即可。 |'."\n" + .'| PositionRefer | String | topLeft | 素材的位置参考坐标值。填**topLeft**即可,表示位置设置以左上角为基准点。 |'."\n" + .'| WidthNormalized | Float | 0.4 | 素材的宽度归一化值。即素材与背景的宽度比。取值:[0,1]。 |'."\n" + .'| HeightNormalized | Float | 0.4 | 素材的高度归一化值。即素材与背景的高度比。取值:[0,1]。 |'."\n" + .'| PositionNormalized | Float | [0.1, 0.2] | 素材的填充区位置归一化值[x,y]。x、y的取值范围分别为[0,1]。
例如[0.1,0.2] 代表左上角水平偏移10%,垂直偏移20%。 |'."\n" + ."\n" + .'## LayerOrderConfig'."\n" + .'| 名称 | 类型 | 示例 | 描述 |'."\n" + .'| ---- | ------ | ----------- | ------------------------------------------------------------ |'."\n" + .'| Type | String | media | 资源配置的类型。
background:背景素材。
media:多媒体素材。 |'."\n" + .'| Id | String | k12kj31**** | 该资源的唯一ID。 |', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveStreamsOnlineList' => [ - 'summary' => '查询指定域名或者指定域名下某个应用的所有在线流信息。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddStudioLayout'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddStudioLayout', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + ], + 'AddTrancodeSEI' => [ + 'summary' => '添加转码SEI信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '107103', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。'."\n" - .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称,仅支持输入单个StreamName。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', - ], - ], - [ - 'name' => 'OnlyStream', - 'in' => 'query', - 'schema' => [ - 'description' => '是否只返回指定字段。取值: '."\n" - ."\n" - .'- **yes**:结果只返回DomainName,AppName,StreamName,PublishTime 字段。 '."\n" - ."\n" - .'- **no**(默认值):结果返回全部字段。', - 'type' => 'string', - 'required' => false, - 'example' => 'no', - ], + 'schema' => ['description' => '播流名称。'."\n" + ."\n" + .'> 必须为源流名称,所有的转码流都会添加上SEI信息。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], [ - 'name' => 'PageSize', + 'name' => 'Text', 'in' => 'query', - 'schema' => [ - 'description' => '每页大小。取值范围:1~3000,默认值为2000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1500', - 'default' => '2000', - ], + 'schema' => ['description' => 'SEI文本。长度限制:4000字节。', 'type' => 'string', 'required' => true, 'example' => 'liveSei****'], ], [ - 'name' => 'PageNum', + 'name' => 'Pattern', 'in' => 'query', - 'schema' => [ - 'description' => '当前页码。默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '追加到每一个关键帧或每一帧。取值:'."\n" + .'- **keyframe**:关键帧。'."\n" + .'- **frame**:每一帧。', 'type' => 'string', 'required' => true, 'example' => 'keyframe'], ], [ - 'name' => 'StreamType', + 'name' => 'Repeat', 'in' => 'query', - 'schema' => [ - 'description' => '流类型。取值: '."\n" - ."\n" - .'- **all**(默认值):查询所有流。'."\n" - .' '."\n" - .'- **raw**:查询原始流。'."\n" - .' '."\n" - .'- **trans**:查询转码流。', - 'type' => 'string', - 'required' => false, - 'example' => 'all', - 'enum' => [ - 'all', - 'raw', - 'trans', - ], - ], + 'schema' => ['description' => '重复次数。-1代表无限。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '-1'], ], [ - 'name' => 'QueryType', + 'name' => 'Delay', 'in' => 'query', - 'schema' => [ - 'description' => '指定是否模糊匹配流名称。取值:'."\n" - ."\n" - .'- **fuzzy**(默认值):模糊匹配。'."\n" - ."\n" - .'- **strict**:精准匹配。', - 'type' => 'string', - 'required' => false, - 'example' => 'fuzzy', - 'enum' => [ - 'fuzzy', - 'strict', - ], - ], + 'schema' => ['description' => '接收到命令后的延迟时间。单位: 毫秒。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '在线流信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64- af62-20e91b9676b3', - ], - 'TotalPage' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'PageNum' => [ - 'description' => '分页的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页显示的条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalNum' => [ - 'description' => '符合条件的总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '11', - ], - 'OnlineInfo' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LiveStreamOnlineInfo' => [ - 'description' => '正在推送流的信息。', - 'type' => 'array', - 'items' => [ - 'description' => '正在推送流的信息。', - 'type' => 'object', - 'properties' => [ - 'AudioDataRate' => [ - 'description' => '直播流的音频码率。单位:Kbps。'."\n" - .'> 此参数需提交工单添加白名单配置后开启,关于如何提交工单,请参见联系我们。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '600', - ], - 'FrameRate' => [ - 'description' => '帧率。单位:FPS。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - 'PublishUrl' => [ - 'description' => '推流完整URL地址。', - 'type' => 'string', - 'example' => 'rtmp://demo.aliyundoc.com/live/test****', - ], - 'StreamName' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'AudioCodecId' => [ - 'description' => '音频Codec ID。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Height' => [ - 'description' => '视频分辨率高度。单位:pixel。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '720', - ], - 'VideoDataRate' => [ - 'description' => '直播流的视频码率。单位:Kbps。'."\n" - .'> 此参数需提交工单添加白名单配置后开启,关于如何提交工单,请参见联系我们。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '600', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'PublishDomain' => [ - 'description' => '推流域名,使用中心推流的可直接填写播流域名。', - 'type' => 'string', - 'example' => 'demo.aliyundoc.com', - ], - 'PublishTime' => [ - 'description' => '开始推流时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2021-08-09T02:37:59Z', - ], - 'AppName' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'PublishType' => [ - 'description' => '推流类型,取值:'."\n" - ."\n" - .'- **edge**:边缘推流。'."\n" - ."\n" - .'- **center**:中心推流。', - 'type' => 'string', - 'example' => 'edge', - ], - 'VideoCodecId' => [ - 'description' => '视频Codec ID。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '7', - ], - 'Transcoded' => [ - 'description' => '是否是转码流。取值:'."\n" - ."\n" - .'- **yes**:是。'."\n" - ."\n" - .'- **no**:否。', - 'type' => 'string', - 'example' => 'no', - ], - 'Width' => [ - 'description' => '视频分辨率宽度。单位:pixel。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1280', - ], - 'ClientIp' => [ - 'description' => '推流客户端IP。', - 'type' => 'string', - 'example' => '106.11.XX.XX', - ], - 'ServerIp' => [ - 'description' => '推流节点IP。', - 'type' => 'string', - 'example' => '120.221.XX.XX', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4E*****43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'QpsOverLimit', - 'errorMessage' => 'Qps is over limit for this domainName.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not match the specified start time.', - ], - [ - 'errorCode' => 'Duration.Exceed', - 'errorMessage' => 'Duration between StartTime and EndTime is too long.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b9676b3\\",\\n \\"TotalPage\\": 2,\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalNum\\": 11,\\n \\"OnlineInfo\\": {\\n \\"LiveStreamOnlineInfo\\": [\\n {\\n \\"AudioDataRate\\": 600,\\n \\"FrameRate\\": 15,\\n \\"PublishUrl\\": \\"rtmp://demo.aliyundoc.com/live/test****\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"AudioCodecId\\": 10,\\n \\"Height\\": 720,\\n \\"VideoDataRate\\": 600,\\n \\"DomainName\\": \\"example.com\\",\\n \\"PublishDomain\\": \\"demo.aliyundoc.com\\",\\n \\"PublishTime\\": \\"2021-08-09T02:37:59Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"PublishType\\": \\"edge\\",\\n \\"VideoCodecId\\": 7,\\n \\"Transcoded\\": \\"no\\",\\n \\"Width\\": 1280,\\n \\"ClientIp\\": \\"106.11.XX.XX\\",\\n \\"ServerIp\\": \\"120.221.XX.XX\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2\\n 1\\n 10\\n 5c6a2a0df228-4a64- af62-20e91b9676b3\\n 11\\n \\n 600\\n 15\\n rtmp://demo.aliyundoc.com/live/test****\\n liveStream****\\n 10\\n 720\\n 600\\n example.com\\n demo.aliyundoc.com\\n 2021-08-09T02:37:59Z\\n liveApp****\\n edge\\n 7\\n no\\n 1280\\n 106.11.XX.XX\\n 120.221.XX.XX\\n \\n","errorExample":""}]', - 'title' => '查询域名在线流列表', - 'description' => '本接口目前支持以下几种流类型: '."\n" - ."\n" - .'- all:查询所有流。'."\n" - ."\n" - .'- raw:查询原始流。'."\n" - ."\n" - .'- trans:查询转码流。'."\n" + 'title' => '添加转码 SEI 信息', + 'description' => '先获取播流域名,再调用本接口添加转码SEI信息。其中播流名称必须为源流名称,所有的转码流都会添加上SEI信息。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveStreamsPublishList' => [ - 'summary' => '获取某一时间段内某个域名(或域名下某应用或某个流)的历史推流记录。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddTrancodeSEI', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4E*****43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4E*****43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'BanLiveMessageGroup' => [ + 'summary' => '调用BanLiveMessageGroup新增禁言用户。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '107105', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '237378', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'DomainName', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '推流域名或主播流域名。'."\n" - .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '群组ID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], [ - 'name' => 'AppName', + 'name' => 'ExceptUsers', 'in' => 'query', + 'style' => 'simple', 'schema' => [ - 'description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', + 'description' => '当开启全员禁言时不被禁言的用户。多个用半角逗号(,)隔开,最多不超过30个。', + 'type' => 'array', + 'items' => ['description' => '当开启全员禁言时不被禁言的用户。', 'type' => 'string', 'required' => false, 'example' => 'uid3'], 'required' => false, - 'example' => 'liveApp****', ], ], [ - 'name' => 'StreamName', + 'name' => 'DataCenter', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致。'."\n" + .'> 当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], - [ - 'name' => 'StartTime', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '推流时间。'."\n" - ."\n" - .'格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-21T08:00:00Z', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****'], + ], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。EndTime和StartTime之间的间隔不能超过30天。'."\n" - ."\n" - .'格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-22T08:00:00Z', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '分页大小。取值范围:**1~3000**,默认值为**2000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1500', - 'default' => '2000', - ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], ], [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '当前页码。默认值为**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '群组全员禁言', + 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'StreamType', - 'in' => 'query', - 'schema' => [ - 'description' => '流类型。取值:'."\n" - ."\n" - .'- **不传**:查询原始流。'."\n" - .'- **all**:查询所有流。'."\n" - .'- **trans**:查询转码流。', - 'type' => 'string', - 'required' => false, - 'example' => 'all', - 'enum' => [ - 'all', - 'raw', - 'trans', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:BanLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', + ], + 'BatchDeleteLiveDomainConfigs' => [ + 'summary' => '批量删除域名配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'QueryType', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ + [ + 'name' => 'DomainNames', 'in' => 'query', - 'schema' => [ - 'description' => '指定是否模糊匹配流名称。取值:'."\n" - .'- **fuzzy**(默认值):模糊匹配。'."\n" - .'- **strict**:精准匹配。', - 'type' => 'string', - 'required' => false, - 'example' => 'fuzzy', - 'enum' => [ - 'fuzzy', - 'strict', - ], - ], + 'schema' => ['description' => '您的推流域名或播流域名。多个域名使用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com,example.aliyundoc.com,example.com'], ], [ - 'name' => 'OrderBy', + 'name' => 'FunctionNames', 'in' => 'query', - 'schema' => [ - 'description' => '排序方式。取值:'."\n" - ."\n" - .'- **stream_name_desc**:按直播流名称倒序。'."\n" - .'- **stream_name_asc**:按直播流名称升序。'."\n" - .'- **publish_time_desc**:按推流时间倒序。'."\n" - .'- **publish_time_asc**(默认值):按推流时间升序。', - 'type' => 'string', - 'required' => false, - 'example' => 'publish_time_desc', - 'enum' => [ - 'stream_name_desc', - 'stream_name_asc', - 'publish_time_desc', - 'publish_time_asc', - ], - ], + 'schema' => ['description' => '功能列表名称。多个功能使用英文逗号(,)分隔。更多详情,请参考下表**Functions功能说明**。', 'type' => 'string', 'required' => true, 'example' => 'referer_white_list_set,ip_black_list_set'], ], ], 'responses' => [ @@ -7196,405 +6037,223 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'TotalPage' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'PageNum' => [ - 'description' => '分页的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'PageSize' => [ - 'description' => '每页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', - ], - 'TotalNum' => [ - 'description' => '符合条件的总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '11', - ], - 'PublishInfo' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LiveStreamPublishInfo' => [ - 'description' => '推流记录信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'EdgeNodeAddr' => [ - 'description' => 'CDN上行节点IP。', - 'type' => 'string', - 'example' => '10.175.XX.XX', - ], - 'PublishUrl' => [ - 'description' => '推流完整URL地址。', - 'type' => 'string', - 'example' => 'rtmp://demo.aliyundoc.com/liveApp****/liveStream****', - ], - 'StreamName' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'DomainName' => [ - 'description' => '推流域名或主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'StopTime' => [ - 'description' => '停止推流时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-12-02T03:11:19Z', - ], - 'TranscodeId' => [ - 'description' => '转码模板ID。'."\n" - .'> 当Transcoded参数为no时,不返回此参数。', - 'type' => 'string', - 'example' => 'ld', - ], - 'PublishDomain' => [ - 'description' => '推流域名。', - 'type' => 'string', - 'example' => 'demo.aliyundoc.com', - ], - 'AppName' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'PublishTime' => [ - 'description' => '开始推流时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-12-02T03:05:53Z', - ], - 'PublishType' => [ - 'description' => '推流类型。取值:'."\n" - ."\n" - .'- **edge**:边缘推流。'."\n" - .'- **center**:中心推流。'."\n", - 'type' => 'string', - 'example' => 'edge', - ], - 'Transcoded' => [ - 'description' => '是否是转码流。', - 'type' => 'string', - 'example' => 'yes', - ], - 'ClientAddr' => [ - 'description' => '主播IP。', - 'type' => 'string', - 'example' => '10.175.XX.XX', - ], - 'StreamUrl' => [ - 'description' => '播流的URL。', - 'type' => 'string', - 'example' => 'http://example.com/liveApp****/liveStream****.flv', - ], - 'AliInnerErrorFlags' => [ - 'description' => '断流原因错误码。格式为:3个数字或1个数字。', - 'type' => 'string', - 'example' => '002', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'QpsOverLimit', - 'errorMessage' => 'Qps is over limit for this domainName.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified parameter StartTime is not valid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified parameter EndTime is not valid.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not match the specified start time.', - ], - [ - 'errorCode' => 'Duration.Exceed', - 'errorMessage' => 'Duration between StartTime and EndTime is too long.', - ], - [ - 'errorCode' => 'LiveServiceNotFound', - 'errorMessage' => 'Your account does not open Live service yet', - ], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalPage\\": 2,\\n \\"PageNum\\": 2,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\",\\n \\"TotalNum\\": 11,\\n \\"PublishInfo\\": {\\n \\"LiveStreamPublishInfo\\": [\\n {\\n \\"EdgeNodeAddr\\": \\"10.175.XX.XX\\",\\n \\"PublishUrl\\": \\"rtmp://demo.aliyundoc.com/liveApp****/liveStream****\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"StopTime\\": \\"2015-12-02T03:11:19Z\\",\\n \\"TranscodeId\\": \\"ld\\",\\n \\"PublishDomain\\": \\"demo.aliyundoc.com\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"PublishTime\\": \\"2015-12-02T03:05:53Z\\",\\n \\"PublishType\\": \\"edge\\",\\n \\"Transcoded\\": \\"yes\\",\\n \\"ClientAddr\\": \\"10.175.XX.XX\\",\\n \\"StreamUrl\\": \\"http://example.com/liveApp****/liveStream****.flv\\",\\n \\"AliInnerErrorFlags\\": \\"002\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n11\\n2\\n10\\n2\\n 40A4F36D-A7CC-473A-88E7-154F92242566\\n\\n \\n rtmp://demo.aliyundoc.com/liveApp****/liveStream****\\n 10.175.XX.XX\\n liveStream****\\n ld\\n example.com\\n 10.175.XX.XX\\n demo.aliyundoc.com\\n yes\\n 2015-12-02T03:05:53Z\\n edge\\n http://example.com/liveApp****/liveStream****.flv\\n 2015-12-02T03:11:19Z\\n liveApp****\\n \\n\\n","errorExample":"{\\n \\"PageNum\\":2,\\n \\"PageSize\\":10,\\n \\"PublishInfo\\":{\\n \\"LiveStreamPublishInfo\\":[{\\n \\"AppName\\":\\"xchen\\",\\n \\"ClientAddr\\":\\"10.175.60.33\\",\\n \\"DomainName\\":\\"test101.cdnpe.com\\",\\n \\"EdgeNodeAddr\\":\\"10.175.30.21\\",\\n \\"PublishDomain\\":\\"test101.cdnpe.com\\",\\n \\"PublishTime\\":\\"2015-12-02T03:05:53Z\\",\\n \\"PublishUrl\\":\\"rtmp://test101.cdnpe.com/xchen\\",\\n \\"StopTime\\":\\"2015-12-02T03:11:19Z\\",\\n \\"StreamName\\":\\"testxchen\\",\\n \\"StreamUrl\\":\\"rtmp://xxx/xxxx\\"\\n }]\\n },\\n \\"RequestId\\":\\"1C0E0C22-77B7-42AC-8212-AF99B2E0077F\\",\\n \\"TotalNum\\":11,\\n \\"TotalPage\\":2\\n}"}]', - 'title' => '查询域名历史流列表', - 'description' => '调用本接口最多可查询近30天的历史流。返回的数据为查询时间段内的在线流信息。本接口目前支持以下排序方式:'."\n" + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '批量删除域名配置', + 'description' => '先获取需要删除配置的直播域名,再调用本接口批量删除域名配置。'."\n" ."\n" - .'- stream_name_desc:按直播流名称倒序。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '## Functions格式说明'."\n" ."\n" - .'- stream_name_asc:按直播流名称升序。'."\n" + .'- 示例如下所示:'."\n" + .'`[{"functionArgs":[{"argName":"domain_name","argValue":"developer.aliyundoc.com"}],"functionName":"set_req_host_header"}]`'."\n" ."\n" - .'- publish_time_desc:按推流时间倒序。'."\n" + .'- 某些功能,如filetype_based_ttl_set,可以设置多条记录,当需要更新其中某条记录时,可通过该条记录的configId来指定,示例如下所示:'."\n" + .'`[{"functionArgs":[{"argName":"file_type","argValue":"jpg"},{"argName":"ttl","argValue":"18"},{"argName":"weight","argValue":"30"}],"functionName":"filetype_based_ttl_set","configId":506***}]`'."\n" ."\n" - .'- publish_time_asc:按推流时间升序。'."\n" - ."\n\n" + .'## Functions功能说明'."\n" ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为3次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', + .'| 名称 | 参数 |'."\n" + .'|---------------|--------|'."\n" + .'| **referer_white_list_set**:refer白名单。| **refer_domain_allow_list**:白名单列表,多个使用英文逗号(,)分隔。
**allow_empty**:是否允许空refer进入。取值:**on**或**off**。|'."\n" + .'| **referer_black_list_set**:refer黑名单。| **refer_domain_deny_list**:黑名单列表,多个使用英文逗号(,)分隔。
**allow_empty**:是否允许空refer进入。取值:**on**或**off**。|'."\n" + .'| **filetype_based_ttl_set**:文件过期时间设置。| **ttl**:cache时间。单位:秒,取值范围是1~99999999(3年多一些)。
**file_type**:文件类型。多个使用英文逗号(,)隔开。
**weight**:权重。取值范围:**1~99**。|'."\n" + .'| **path_based_ttl_set**:目录过期时间设置。| **ttl**:cache时间。单位:秒,取值范围是1~99999999(3年多一些)。
**path**:目录。必须以正斜线(/)开头。
**weight**:权重。取值范围:**1~99**。|'."\n" + .'| **oss_auth**:OSS鉴权Bucket。| **oss_bucket_id**:用户bucket地址。|'."\n" + .'| **ip_black_list_set**:IP黑名单。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" + .'| **ip_allow_list_set**:IP白名单。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" + .'| **ip_white_list_set**:访问频次控制免拦截。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" + .'| **error_page**:错误页面重定向。| **error_code**:错误码。
**rewrite_page**:重定向页面。|'."\n" + .'| **set_req_host_header**:修改回源Host头。| **domain_name**:回源Host头内容。|'."\n" + .'| **set_hashkey_args**:忽略URL参数。| **hashkey_args**:保留参数的列表。多个使用英文逗号(,)分隔。
**disable**:是否忽略所有参数。取值:仅支持on(忽略所有参数)或off(不忽略)。|'."\n" + .'| **aliauth**:阿里鉴权。| **auth_type**:鉴权类型。取值:**type_a**(鉴权A)、**no_auth**(关闭鉴权)。
**auth_key1**:鉴权key1,鉴权key支持大写字母、小写字母、数字,建议设置长度为8~32个字符。
**auth_key2**:鉴权key2。
**ali_auth_delta**:自定义鉴权缓冲时间,单位:分钟。建议最小设置为1分钟,无上限限制。
**auth_m3u8**:是否开启m3u8内容改写,对m3u8里面的ts补齐对应的鉴权,可以避免ts的访问鉴权失败。取值:**on**(默认值)或**off**。|'."\n" + .'| **remote_auth**:直播远程鉴权 。|**enable**:是否开启远程鉴权,必填项。取值:on或off。
**remote_auth_path** : 鉴权服务器地址,必填项。
**remote_auth_pattern** :鉴权模式串。有以下功能可设置:
- **param**:是否向鉴权服务器透传推流URL中的参数,取值pass(默认)或fail。
- **args_white**:透传指定参数设置,多个参数用英文逗号(,)分隔。
- **args_black**:不透传指定参数设置,多个参数用英文逗号(,)分隔。
- **code**:鉴权状态码,code=XXX,鉴权服务器在鉴权成功时返回给直播的HTTP状态码。例如:code=200。code=~XXX,鉴权服务器在鉴权失败时返回给直播的HTTP状态码。例如:code=~403。
- **delta** :鉴权超时时长。
- **retry**:鉴权超时重试次数。
- **timeout**:鉴权超时行为,取值:**pass**或**fail**。**pass**:视频直播将直接通过用户请求。**fail**:视频直播将响应鉴权失败状态码(403)给用户。
- **async**:异步鉴权,取值**on**(开启异步鉴权)或**off**(默认,关闭异步鉴权)。|'."\n" + .'| **set_resp_header**:设置响应头(浏览器端可见)。| **key**:响应头。取值:
**Content-Type。**
**Cache-Control。**
**Content-Disposition。**
**Content-Language。**
**Expires。**
**Access-Control-Allow-Origin。**
**Access-Control-Allow-Methods。**
**Access-Control-Allow-Headers。**
**Access-Control-Max-Age。**
**Access-Control-Expose-Headers。**
**value**:响应头内容。删除填写null。
|'."\n" + .'| **https_force**:强制HTTPS跳转。| **enable**:功能开关。取值:**on**或**off**。https_force和http_force只能存在其中一个,两者为互斥关系,配置另外一个需要先删除原来的配置。|'."\n" + .'| **http_force**:强制HTTP跳转。| **enable**:功能开关。取值:**on**或**off**。https_force和http_force只能存在其中一个,两者为互斥关系,配置另外一个需要先删除原来的配置。|'."\n" + .'| **forward_scheme**:自适应回源。| **enable**:功能开关,取值:**on**或**off**。
**scheme_origin**:回源站协议 (http、https、follow)。
**scheme_origin_port**:回源站协议端口(80、443、80:443)。|'."\n" + .'| **green_manager**:鉴黄功能。| **enable**:是否开启鉴黄功能。取值:**on**或**off**。|'."\n" + .'| **tmd_signature**:自定义的访问频次控制规则。| **name**:规则名称。域名内不可重复。
**path**:可重复,需校验URI路径合法性。
**pathType**:匹配规则。**0**前缀匹配,**1**完全匹配。
**interval**:监测时长。单位:秒。参数限制必须≥10。
**count**:单IP访问次数。
**action**:阻断类型。**0**封禁,**1**人机识别。
**ttl**:阻断时长。单位:秒。|'."\n" + .'|**l2_oss_key**:L2 OSS 回源私钥。| **private_oss_auth**:是否开启私有OSS鉴权功能。取值:**on**或**off**。|'."\n" + .'|**video_seek**:视频切片拖拽开关。 |**enable**:功能开关。取值:**on**或**off**。|'."\n" + .'|**gzip**:页面Gzip优化 。|**enable**:功能开关。取值:**on**或**off**。|'."\n" + .'|**tesla**:页面优化加速。 |**enable**:功能开关。取值:**on**或**off**。|'."\n" + .'|**ali_ua**:User-Agent限制访问。 |**ua**:User-Agent。
**type**:名单类型。取值**black**和**white**。|'."\n" + .'|**host_redirect:rewrite**功能。 |**regex**:需要重写的URL。例如 ^/$。
**replacement**:目标URL。例如 /go/act/sale/tbzlsy.php。
**flag**:仅支持:redirect、break。|'."\n" + .'|**ipv6**:ipv6配置。 |**switch**:开关(必填)。取值:**on**或**off**,开启功能,一旦开启后,如需关闭请取消勾选,不要删除配置,否则不生效。
**region**:开启IPv6功能的地域,取值:cn-beijing(北京)、cn-shanghai(上海)、cn-shenzhen(深圳)、cn-qingdao(青岛)、apsoutheast-1(新加坡)、eu-central-1(德国)、ap-northeast-1(东京)、ap-southeast-5(雅加达)。|'."\n" + .'|**ali_location**:区域限制访问。 |**location**:地域列表。
**type**:名单类型。取值**black**或**white**。|'."\n" + .'|**cc_defense**:防CC攻击。 |**enable**:开启或关闭防CC攻击。取值:**on**或**off**。|'."\n" + .'|**alilive**:视频直播配置。 | **notify_url**:直播通知URL。
**enable**:功能开关。取值:**on**或**off**。
**live_forbid_flv**:禁止播放flv。取值:**on**或**off**。
**live_forbid_rtmp**:禁止播放rtmp。取值:**on**或**off**。
l**ive_forbid_hls**:禁止播放hls。取值:**on**或**off**。|'."\n" + .'|**ali_grtn**:grtn业务接入开关。 |**grtn_rts_pub**:RTS推流开关,推流域名使用。取值:**on**或**off**。
**grtn_rts_play**:RTS播流开关,播流域名使用。取值:**on**或**off**。
**grtn_rts_transcode**:RTS H5播放自动转码开关。取值:**on**或**off**。|'."\n" + .'|**edge_function**:边缘函数。 |必填参数:
**rule**:DSL规则。
**pri**:优先级。
**enable**:本条规则是否生效。取值:**on**或**off**。
可选参数:
**name**:规则名称。
**pos**:规则执行位置。
**brk**:命中本条规则后,当前执行位置剩余规则均跳过。
**option**:option管控。
**grammar**:grammar管控。可选值:空、es2、js。
**jsmode**:js域名白单管控,可选值:**redirect**或**bypass**。|'."\n" + .'|**https_tls_version**:TLS协议版本。 |**tls10**:开启TLSv1.0,默认为**on**。取值:**on**或**off**。
**tls11**:开启TLSv1.1,默认为**on**。取值:**on**或**off**。
**tls12**:开启TLSv1.2,默认为**on**。取值:**on**或**off**。
**tls13**:开启TLSv1.3,默认为**on**。取值:**on**或**off**。|'."\n" + .'|**https_option**:http协议设置。 |**http2**:是否开启http2,默认为**off**。取值:**on**或**off**。
**live_http2**:是否开启live\\_http2,默认为**off**。取值:**on**或**off**。|', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ForbidLiveStream' => [ - 'summary' => '禁止某条流的推送,可以预设某个时刻将流恢复。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:BatchDeleteLiveDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + ], + 'BatchGetOnlineUsers' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'high', + 'operationType' => 'get', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '推流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '推流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], - ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '推流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], - ], - [ - 'name' => 'LiveStreamType', - 'in' => 'query', - 'schema' => [ - 'description' => '用于指定禁止推流或者播流。目前仅支持禁止推流:**publisher**。', - 'type' => 'string', - 'required' => true, - 'example' => 'publisher', - 'enum' => [ - 'publisher', - ], - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'a494caec-***-695ef345db77'], ], [ - 'name' => 'Oneshot', - 'in' => 'query', - 'schema' => [ - 'description' => '是否只断流不加入黑名单。取值:'."\n" - ."\n" - .'- **yes**:只断流不加黑名单(支持上行推送或上行播流)。'."\n" - ."\n" - .'- **no**:断流加入黑名单。'."\n" - ."\n" - .'> 不填默认为no。', - 'type' => 'string', - 'required' => false, - 'example' => 'yes', - 'enum' => [ - 'yes', - 'no', - ], - ], + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => ['description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => '23wcaec-***695ef'], ], [ - 'name' => 'ResumeTime', - 'in' => 'query', - 'schema' => [ - 'description' => '恢复流的时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> - 当**Oneshot**参数为**no**时,ResumeTime不传值时默认禁止直播流指定时间为6个月。'."\n" - .'> - 如果传值则可在ResumeTime指定的时间点解除限制,恢复直播流。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-01T10:37:00Z', - ], + 'name' => 'UserIds', + 'in' => 'formData', + 'schema' => ['description' => '用户UserId列表。多个UserId之间用半角逗号(,)分隔。最多配置20个UserId。', 'type' => 'string', 'required' => true, 'example' => 'de1**a0,hu**9'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16BFE188-B193-4C3C-ADC5-79A7E31486EA', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果', + 'type' => 'object', + 'properties' => [ + 'OnlineUsers' => [ + 'description' => '对象数组', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'JoinTime' => ['description' => '加入消息组的UTC时间戳。单位:毫秒', 'type' => 'integer', 'format' => 'int64', 'example' => '12**45'], + 'Online' => ['description' => '是否在线, 取值:'."\n" + ."\n" + .'- **true**:在线。'."\n" + ."\n" + .'- **false**:不在线。', 'type' => 'boolean', 'example' => 'true'], + 'UserId' => ['description' => '用户UserId。', 'type' => 'string', 'example' => 'de1**a0'], + ], + 'description' => '', + ], + ], + ], ], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidResumeTime.Malformed', - 'errorMessage' => 'Specified parameter ResumeTime is not valid.', - ], - [ - 'errorCode' => 'QuotaExceeded.Blacklist', - 'errorMessage' => 'Exceed max blacklist count limit', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => '接口权限不足,请您联系管理员,配置访问权限。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16BFE188-B193-4C3C-ADC5-79A7E31486EA\\n","errorExample":""}]', - 'title' => '禁止直播流', - 'description' => '调用本接口禁止某条流的推送,可以预设某个时刻将流恢复。如果没有预设时间,请通过[ResumeLiveStream](~~2847831~~)接口恢复直播流。本接口目前仅支持publisher(主播推流)。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询用户是否在线(旧版)', + 'summary' => '根据一个或多个用户uid查询用户是否在线', + 'description' => '## 使用说明'."\n" ."\n" - .'> - 本接口通过添加黑名单的方式禁止直播流,上限为10,000路,超出限制将禁用失败,请您注意统计当前禁用流的数量。请通过[DescribeLiveStreamsBlockList接口](~~2847825~~)查询禁用流数量。'."\n" - .'> - 若只中断直播流,而不加入黑名单,则不会占用黑名单中的10000 个名额。'."\n" + .'该接口支持批量查询,每次最多可以查询20个用户是否在线。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'ResumeLiveStream' => [ - 'summary' => '恢复某条流的推送。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGetOnlineUsers'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:BatchGetOnlineUsers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"OnlineUsers\\": [\\n {\\n \\"JoinTime\\": 0,\\n \\"Online\\": true,\\n \\"UserId\\": \\"de1**a0\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n \\n de1**a0\\n true\\n \\n \\n","errorExample":""}]', + ], + 'BatchSetLiveDomainConfigs' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '106875', + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '推流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], - ], - [ - 'name' => 'LiveStreamType', - 'in' => 'query', - 'schema' => [ - 'description' => '用于指定主播推流或客户端播流。目前支持:**publisher**(主播推流)。', - 'type' => 'string', - 'required' => true, - 'example' => 'publisher', - 'enum' => [ - 'publisher', - ], - ], - ], - [ - 'name' => 'AppName', + 'name' => 'DomainNames', 'in' => 'query', - 'schema' => [ - 'description' => '推流所属应用名称。可以填为*,表示所有AppName(即不限制AppName)。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '需要进行批量配置的域名。取值可以是推流域名、主播流域名或子播流域名。多个域名用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com,example.aliyundoc.com,example.com'], ], [ - 'name' => 'StreamName', + 'name' => 'Functions', 'in' => 'query', - 'schema' => [ - 'description' => '推流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '功能列表。'."\n" + ."\n" + .'某些功能,如`filetype_based_ttl_set`,可以设置多条记录,当需要更新其中某条记录时,可通过该条记录的`configId`来指定。更多信息,请参见下表**Function格式说明**和**Functions功能说明**。', 'type' => 'string', 'required' => true, 'example' => ' [{"functionArgs":[{"argName":"file_type","argValue":"jpg"},{"argName":"ttl","argValue":"18"},{"argName":"weight","argValue":"30"}],"functionName":"filetype_based_ttl_set","configId":506***}]'], ], ], 'responses' => [ @@ -7602,436 +6261,440 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16BFE188-B193-4C3C-ADC5-79A7E31486EA', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16BFE188-B193-4C3C-ADC5-79A7E31486EA\\n","errorExample":"{\\n \\"RequestId\\":\\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}"}]', - 'title' => '开始或恢复某条直播流的推送', - 'description' => '调用本接口恢复某条推流的推送。本接口目前仅支持publisher(主播推流)。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidFunctions.Malformed', 'errorMessage' => 'Specified Functions is malformed.', 'description' => ''], + ['errorCode' => 'InvalidFunctionArgs.Malformed', 'errorMessage' => 'The specified FunctionArgs is invalid.', 'description' => ''], + ['errorCode' => 'InvalidArgValue.Malformed', 'errorMessage' => 'Specified ArgValue is malformed.', 'description' => ''], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => ''], + ['errorCode' => 'Invalid%s.Malformed', 'errorMessage' => 'ArgValue [%s] is malformed.', 'description' => ''], + ['errorCode' => 'MissingParameter%s', 'errorMessage' => 'The specified value of ArgName[%s] is missing.', 'description' => ''], + ['errorCode' => 'FunctionMutex', 'errorMessage' => 'Function is mutex with other function.', 'description' => ''], + ['errorCode' => 'RewriteHostRely', 'errorMessage' => 'Domain name is configured as rewrite host by others.', 'description' => ''], + ['errorCode' => 'ConfigurationConflicts', 'errorMessage' => 'The staging environment has a configuration in effect and cannot modify the production environment configuration.', 'description' => '预发环境存在已生效配置,无法修改生产环境配置。'], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '批量配置域名', + 'summary' => '批量配置域名。', + 'description' => '先获取需要进行配置的直播域名,再调用本接口批量配置域名。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveDomainOnlineUserNum' => [ - 'summary' => '查询域名下所有流的在线人数信息。', - 'methods' => [ - 'post', - 'get', + 'requestParamsDescription' => '## Functions格式说明'."\n" + ."\n" + .'- 示例如下所示:'."\n" + .'`[{"functionArgs":[{"argName":"domain_name","argValue":"developer.aliyundoc.com"}],"functionName":"set_req_host_header"}]`'."\n" + ."\n" + .'- 某些功能,如filetype_based_ttl_set,可以设置多条记录,当需要更新其中某条记录时,可通过该条记录的configId来指定,示例如下所示:'."\n" + .'`[{"functionArgs":[{"argName":"file_type","argValue":"jpg"},{"argName":"ttl","argValue":"18"},{"argName":"weight","argValue":"30"}],"functionName":"filetype_based_ttl_set","configId":506***}]`'."\n" + ."\n" + .'## Functions功能说明'."\n" + ."\n" + .'| 名称 | 参数 |'."\n" + .'|---------------|--------|'."\n" + .'| **referer_white_list_set**:refer白名单。| **refer_domain_allow_list**:白名单列表,多个使用英文逗号(,)分隔。
**allow_empty**:是否允许空refer进入。取值:**on**或**off**。|'."\n" + .'| **referer_black_list_set**:refer黑名单。| **refer_domain_deny_list**:黑名单列表,多个使用英文逗号(,)分隔。
**allow_empty**:是否允许空refer进入。取值:**on**或**off**。|'."\n" + .'| **filetype_based_ttl_set**:文件过期时间设置。| **ttl**:cache时间。单位:秒,取值范围是1~99999999(3年多一些)。
**file_type**:文件类型。多个使用英文逗号(,)隔开。
**weight**:权重。取值范围:**1~99**。|'."\n" + .'| **path_based_ttl_set**:目录过期时间设置。| **ttl**:cache时间。单位:秒,取值范围是1~99999999(3年多一些)。
**path**:目录。必须以正斜线(/)开头。
**weight**:权重。取值范围:**1~99**。|'."\n" + .'| **oss_auth**:OSS鉴权Bucket。| **oss_bucket_id**:用户bucket地址。|'."\n" + .'| **ip_black_list_set**:IP黑名单。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" + .'| **ip_allow_list_set**:IP白名单。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" + .'| **ip_white_list_set**:访问频次控制免拦截。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" + .'| **error_page**:错误页面重定向。| **error_code**:错误码。
**rewrite_page**:重定向页面。|'."\n" + .'| **set_req_host_header**:修改回源Host头。| **domain_name**:回源Host头内容。|'."\n" + .'| **set_hashkey_args**:忽略URL参数。| **hashkey_args**:保留参数的列表。多个使用英文逗号(,)分隔。
**disable**:是否忽略所有参数。取值:仅支持on(忽略所有参数)或off(不忽略)。|'."\n" + .'| **aliauth**:阿里鉴权。| **auth_type**:鉴权类型。取值:**type_a**(鉴权A)、**no_auth**(关闭鉴权)。
**auth_key1**:鉴权key1,鉴权key支持大写字母、小写字母、数字,建议设置长度为8~32个字符。
**auth_key2**:鉴权key2。
**ali_auth_delta**:自定义鉴权缓冲时间,单位:秒。建议最小设置为60秒,无上限限制。
**auth_m3u8**:是否开启m3u8内容改写,对m3u8里面的ts补齐对应的鉴权,可以避免ts的访问鉴权失败。取值:**on**(默认值)或**off**。|'."\n" + .'| **remote_auth**:直播远程鉴权 。|**enable**:是否开启远程鉴权,必填项。取值:on或off。
**remote_auth_path** : 鉴权服务器地址,必填项。
**remote_auth_pattern** :鉴权模式串。有以下功能可设置:
- **param**:是否向鉴权服务器透传推流URL中的参数,取值pass(默认)或fail。
- **args_white**:透传指定参数设置,多个参数用英文逗号(,)分隔。
- **args_black**:不透传指定参数设置,多个参数用英文逗号(,)分隔。
- **code**:鉴权状态码,code=XXX,鉴权服务器在鉴权成功时返回给直播的HTTP状态码。例如:code=200。code=~XXX,鉴权服务器在鉴权失败时返回给直播的HTTP状态码。例如:code=~403。
- **delta** :鉴权超时时长。
- **retry**:鉴权超时重试次数。
- **timeout**:鉴权超时行为,取值:**pass**或**fail**。**pass**:视频直播将直接通过用户请求。**fail**:视频直播将响应鉴权失败状态码(403)给用户。
- **async**:异步鉴权,取值**on**(开启异步鉴权)或**off**(默认,关闭异步鉴权)。|'."\n" + .'| **set_resp_header**:设置响应头(浏览器端可见)。| **key**:响应头。取值:
**Content-Type。**
**Cache-Control。**
**Content-Disposition。**
**Content-Language。**
**Expires。**
**Access-Control-Allow-Origin。**
**Access-Control-Allow-Methods。**
**Access-Control-Allow-Headers。**
**Access-Control-Max-Age。**
**Access-Control-Expose-Headers。**
**value**:响应头内容。删除填写null。
|'."\n" + .'| **https_force**:强制HTTPS跳转。| **enable**:功能开关。取值:**on**或**off**。https_force和http_force只能存在其中一个,两者为互斥关系,配置另外一个需要先删除原来的配置。|'."\n" + .'| **http_force**:强制HTTP跳转。| **enable**:功能开关。取值:**on**或**off**。https_force和http_force只能存在其中一个,两者为互斥关系,配置另外一个需要先删除原来的配置。|'."\n" + .'| **forward_scheme**:自适应回源。| **enable**:功能开关,取值:**on**或**off**。
**scheme_origin**:回源站协议 (http、https、follow)。
**scheme_origin_port**:回源站协议端口(80、443、80:443)。|'."\n" + .'| **green_manager**:鉴黄功能。| **enable**:是否开启鉴黄功能。取值:**on**或**off**。|'."\n" + .'| **tmd_signature**:自定义的访问频次控制规则。| **name**:规则名称。域名内不可重复。
**path**:可重复,需校验URI路径合法性。
**pathType**:匹配规则。**0**前缀匹配,**1**完全匹配。
**interval**:监测时长。单位:秒。参数限制必须≥10。
**count**:单IP访问次数。
**action**:阻断类型。**0**封禁,**1**人机识别。
**ttl**:阻断时长。单位:秒。|'."\n" + .'|**l2_oss_key**:L2 OSS 回源私钥。| **private_oss_auth**:是否开启私有OSS鉴权功能。取值:**on**或**off**。|'."\n" + .'|**video_seek**:视频切片拖拽开关。 |**enable**:功能开关。取值:**on**或**off**。|'."\n" + .'|**gzip**:页面Gzip优化 。|**enable**:功能开关。取值:**on**或**off**。|'."\n" + .'|**tesla**:页面优化加速。 |**enable**:功能开关。取值:**on**或**off**。|'."\n" + .'|**ali_ua**:User-Agent限制访问。 |**ua**:User-Agent。
**type**:名单类型。取值**black**和**white**。|'."\n" + .'|**host_redirect:rewrite**功能。 |**regex**:需要重写的URL。例如 ^/$。
**replacement**:目标URL。例如 /go/act/sale/tbzlsy.php。
**flag**:仅支持:redirect、break。|'."\n" + .'|**ipv6**:ipv6配置。 |**switch**:开关(必填)。取值:**on**或**off**,开启功能,一旦开启后,如需关闭请取消勾选,不要删除配置,否则不生效。
**region**:开启IPv6功能的地域,取值:cn-beijing(北京)、cn-shanghai(上海)、cn-shenzhen(深圳)、cn-qingdao(青岛)、apsoutheast-1(新加坡)、eu-central-1(德国)、ap-northeast-1(东京)、ap-southeast-5(雅加达)。|'."\n" + .'|**ali_location**:区域限制访问。 |**location**:地域列表。
**type**:名单类型。取值**black**或**white**。|'."\n" + .'|**cc_defense**:防CC攻击。 |**enable**:开启或关闭防CC攻击。取值:**on**或**off**。|'."\n" + .'|**alilive**:视频直播配置。 | **notify_url**:直播通知URL。
**enable**:功能开关。取值:**on**或**off**。
**live_forbid_flv**:禁止播放flv。取值:**on**或**off**。
**live_forbid_rtmp**:禁止播放rtmp。取值:**on**或**off**。
l**ive_forbid_hls**:禁止播放hls。取值:**on**或**off**。|'."\n" + .'|**ali_grtn**:grtn业务接入开关。 |**grtn_rts_pub**:RTS推流开关,推流域名使用。取值:**on**或**off**。
**grtn_rts_play**:RTS播流开关,播流域名使用。取值:**on**或**off**。
**grtn_rts_transcode**:RTS H5播放自动转码开关。取值:**on**或**off**。|'."\n" + .'|**edge_function**:边缘函数。 |必填参数:
**rule**:DSL规则。
**pri**:优先级。
**enable**:本条规则是否生效。取值:**on**或**off**。
可选参数:
**name**:规则名称。
**pos**:规则执行位置。
**brk**:命中本条规则后,当前执行位置剩余规则均跳过。
**option**:option管控。
**grammar**:grammar管控。可选值:空、es2、js。
**jsmode**:js域名白单管控,可选值:**redirect**或**bypass**。|'."\n" + .'|**https_tls_version**:TLS协议版本。 |**tls10**:开启TLSv1.0,默认为**on**。取值:**on**或**off**。
**tls11**:开启TLSv1.1,默认为**on**。取值:**on**或**off**。
**tls12**:开启TLSv1.2,默认为**on**。取值:**on**或**off**。
**tls13**:开启TLSv1.3,默认为**on**。取值:**on**或**off**。|'."\n" + .'|**https_option**:http协议设置。 |**http2**:是否开启http2,默认为**off**。取值:**on**或**off**。
**live_http2**:是否开启live\\_http2,默认为**off**。取值:**on**或**off**。|', + 'extraInfo' => '| 错误代码 | 描述 | HTTP状态码 | 语义 |'."\n" + .'|---------------|---------------|---------|---------------|'."\n" + .'|InvalidFunctions.Malformed | Specified Functions is malformed. | 400 | 指定的Functions不合法。 |'."\n" + .'| InvalidFunctionName.ValueNotSupported | unctionName %s is not supported. | 400 | 不支持的FunctionName %s(%s为具体功能名)。|'."\n" + .'| InvalidArgName.ValueNotSupported | ArgName %s is not supported. | 400 | 不支持的ArgName %s(%s为具体参数名)。 |'."\n" + .'| InvalidArgValue.Malformed | Specified ArgValue is malformed. | 400 | 指定的ArgValue不合法。 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSetLiveDomainConfigs'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:BatchSetLiveDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t04F0F334-1335-436C-A1D7-6C044FE73368\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}"}]', + ], + 'CancelMuteAllGroupUser' => [ + 'summary' => '取消消息组用户的静音。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107024', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => ['description' => '群组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], ], [ - 'name' => 'QueryTime', - 'in' => 'query', - 'schema' => [ - 'description' => '查询的时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-12-27T13:09:21Z', - ], + 'name' => 'OperatorUserId', + 'in' => 'formData', + 'schema' => ['description' => '操作员的用户ID。'."\n" + .' > 此参数是必需的,用户必须是组的创建者。', 'type' => 'string', 'required' => false, 'example' => 'de1**a0'], + ], + [ + 'name' => 'BroadCastType', + 'in' => 'formData', + 'schema' => ['description' => '系统消息扩散类型,取值:'."\n" + ."\n" + .'- 0:不扩散。'."\n" + ."\n" + .'- 1:扩散到指定人。'."\n" + ."\n" + .'- 2:扩散到群组。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3A3A8C3D-F8B2-4FBF-9319-771A11B855FA', - ], - 'UserCount' => [ - 'description' => '查询时间下域名的所有在线人数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'StreamCount' => [ - 'description' => '流数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'OnlineUserInfo' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '服务的实际返回结果', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'LiveStreamOnlineUserNumInfo' => [ - 'description' => '流的信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'StreamName' => [ - 'description' => '流名称。', - 'type' => 'string', - 'example' => 'rtmp://example.com/test/liveStream****_3_1', - ], - 'Infos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Info' => [ - 'description' => '流统计信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'UserNumber' => [ - 'description' => '转码流或原始流的人数', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'TranscodeTemplate' => [ - 'description' => '转码模板。origin为原始流。', - 'type' => 'string', - 'example' => 'origin', - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'Success' => ['description' => '取消是否成功,取值:'."\n" + ."\n" + .'- true:成功。'."\n" + ."\n" + .'- false:不成功。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], - [ - 'errorCode' => 'InvalidQueryTime.Exceed', - 'errorMessage' => 'QueryTime exceed three month.', - ], - [ - 'errorCode' => 'InvalidQueryTime.Malformed', - 'errorMessage' => 'Specified QueryTime is malformed.', + 'title' => '取消消息组用户的静音(旧版)', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2023-04-04T06:09:59.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-09-27T09:18:31.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelMuteAllGroupUser'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'live:CancelMuteAllGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3A3A8C3D-F8B2-4FBF-9319-771A11B855FA\\",\\n \\"UserCount\\": 1,\\n \\"StreamCount\\": 1,\\n \\"OnlineUserInfo\\": {\\n \\"LiveStreamOnlineUserNumInfo\\": [\\n {\\n \\"StreamName\\": \\"rtmp://example.com/test/liveStream****_3_1\\",\\n \\"Infos\\": {\\n \\"Info\\": [\\n {\\n \\"UserNumber\\": 1,\\n \\"TranscodeTemplate\\": \\"origin\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n rtmp://example.com/test/liveStream****_3_1\\n \\n \\n origin\\n 1\\n \\n \\n \\n\\n3A3A8C3D-F8B2-4FBF-9319-771A11B855FA\\n1\\n","errorExample":""}]', - 'title' => '查询域名下所有流某分钟的在线人数信息', - 'description' => '本接口目前只支持FLV、RTS和RTMP播放在线人数统计,暂不支持HLS播放在线人数统计。 数据采集和统计有一定延迟,建议您查询5分钟前的数据。'."\n" - ."\n" - .'>请使用本接口替换原有的DescribeLiveStreamOnlineUserNum(已废弃)接口。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为200次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', ], - 'DescribeLiveDomainFrameRateAndBitRateData' => [ - 'summary' => '查询推流域名下流帧率和码率数据。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CancelMuteGroupUser' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '推流域名。'."\n" - .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => ['description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], ], [ - 'name' => 'QueryTime', - 'in' => 'query', + 'name' => 'CancelMuteUserList', + 'in' => 'formData', + 'style' => 'simple', 'schema' => [ - 'description' => '查询时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', + 'description' => '用户ID组。', + 'type' => 'array', + 'items' => ['description' => '取消的禁言用户ID列表。', 'type' => 'string', 'required' => false, 'example' => 'qu***,yu1***'], 'required' => true, - 'example' => '2019-02-21T08:00:00Z', ], ], + [ + 'name' => 'OperatorUserId', + 'in' => 'formData', + 'schema' => ['description' => '操作人用户UserId。'."\n" + .'> 该参数需填写且该用户必须是群组的创建者。', 'type' => 'string', 'required' => false, 'example' => 'de1**a0'], + ], + [ + 'name' => 'BroadCastType', + 'in' => 'formData', + 'schema' => ['description' => '系统消息扩散类型,取值:'."\n" + ."\n" + .'- 0(默认值):不扩散。'."\n" + ."\n" + .'- 1:扩散到指定人。'."\n" + ."\n" + .'- 2:扩散到群组。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C3F2C2C4-59BB-4B62-81FF-345BE557E3E3', - ], - 'FrameRateAndBitRateInfos' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'FrameRateAndBitRateInfo' => [ - 'description' => '播流的帧率和码率信息。', - 'type' => 'array', - 'items' => [ - 'description' => '播流的帧率和码率信息。', - 'type' => 'object', - 'properties' => [ - 'VideoFrameRate' => [ - 'description' => '直播流的视频帧率。单位:FPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '24.9', - ], - 'StreamUrl' => [ - 'description' => '直播流的URL。', - 'type' => 'string', - 'example' => 'rtmp://demo.aliyundoc.com/test/liveStream****_3_4', - ], - 'AudioFrameRate' => [ - 'description' => '直播流的音频帧率。单位:FPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '42.9', - ], - 'BitRate' => [ - 'description' => '直播流的码率。单位:Bps。', - 'type' => 'number', - 'format' => 'float', - 'example' => '30693.96', - ], - ], - ], - ], + 'Success' => ['description' => '取消禁言是否成功,取值:'."\n" + ."\n" + .'- true:成功。'."\n" + ."\n" + .'- false:不成功。', 'type' => 'boolean', 'example' => 'false'], ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], - [ - 'errorCode' => 'InvalidQueryTime.Exceed', - 'errorMessage' => 'QueryTime exceed three month.', - ], - [ - 'errorCode' => 'InvalidQueryTime.Malformed', - 'errorMessage' => 'Specified QueryTime is malformed.', + 'title' => '批量取消消息组内禁言成员(旧版)', + 'summary' => '调用CancelMuteGroupUser批量取消消息组内禁言成员。', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelMuteGroupUser'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:CancelMuteGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C3F2C2C4-59BB-4B62-81FF-345BE557E3E3\\",\\n \\"FrameRateAndBitRateInfos\\": {\\n \\"FrameRateAndBitRateInfo\\": [\\n {\\n \\"VideoFrameRate\\": 24.9,\\n \\"StreamUrl\\": \\"rtmp://demo.aliyundoc.com/test/liveStream****_3_4\\",\\n \\"AudioFrameRate\\": 42.9,\\n \\"BitRate\\": 30693.96\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n C3F2C2C4-59BB-4B62-81FF-345BE557E3E3\\n \\n \\n 24.9\\n 30693.96\\n 42.9\\n rtmp://demo.aliyundoc.com/test/liveStream****_3_4\\n \\n \\n","errorExample":""}]', - 'title' => '查询直播域名下流帧率和码率数据', - 'description' => '调用本接口查询的推流实时码率和帧率可以用来感知上行推流质量。数据采集和统计有一定延迟,建议查询5分钟前的数据。'."\n" - ."\n" - .'>请使用本接口替换原有的DescribeLiveStreamsFrameRateAndBitRateData(已废弃)接口。'."\n" - ."\n\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": false\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n false\\n \\n","errorExample":""}]', ], - 'DescribeLiveDomainLimit' => [ - 'summary' => '调用DescribeLiveDomainLimit查询指定播流域名的推流数量限制和转码数量限制。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ChangeLiveDomainResourceGroup' => [ + 'summary' => '更改直播域名所属的资源组,即从原有资源组移入指定的资源组。', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '235330', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '您的推流域名或播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'NewResourceGroupId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => '待转入的资源组ID。', 'type' => 'string', 'required' => true, 'example' => 'rg-****ke6uuxw****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******8F-F82F-10E2-BAE1-A036FD******'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'LiveServiceNotFound', 'errorMessage' => 'Your account does not open Live service yet', 'description' => '您的账户尚未开通直播服务'], + ['errorCode' => 'LockFail', 'errorMessage' => 'Domain has been occupied.', 'description' => '域名当前在占用中,请稍后再试。'], + ], + 403 => [ + ['errorCode' => 'EntityNotExist.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => '资源组不存在。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '直播域名资源转组', + 'description' => '本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'DomainName', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ChangeLiveDomainResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******8F-F82F-10E2-BAE1-A036FD******\\"\\n}","type":"json"}]', + ], + 'CheckLiveMessageUsersInGroup' => [ + 'summary' => '调用CheckLiveMessageUsersInGroup查询指定用户是否在群组中。', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => ['description' => '群组ID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], + ], + [ + 'name' => 'UserIds', 'in' => 'query', + 'style' => 'simple', 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', + 'title' => '需要查询的UserId,查询个数范围为1-10', + 'description' => '需要查询的用户ID列表。', + 'type' => 'array', + 'items' => ['description' => '需要查询的用户ID。多个用半角逗号(,)隔开。单次查询用户数量范围\\[1,10\\]。', 'type' => 'string', 'required' => true, 'example' => 'uid'], 'required' => true, - 'example' => 'example.com', + 'maxItems' => 10, + 'minItems' => 1, ], ], + [ + 'name' => 'DataCenter', + 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '推流数量限制和转码数量限制列表。', + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A3136B58-5876-4168-83CA-B562********', - ], - 'LiveDomainLimitList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LiveDomainLimit' => [ - 'description' => '推流数量限制和转码数量限制列表。', - 'type' => 'array', - 'items' => [ - 'description' => '推流数量限制和转码数量限制列表。', - 'type' => 'object', - 'properties' => [ - 'LimitTranscodeNum' => [ - 'description' => '转码数量限制。单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'CurrentTranscodeNum' => [ - 'description' => '域名当前的转码流数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'LimitNum' => [ - 'description' => '推流数量限制。单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'LimitTransferNum' => [ - 'description' => '中心转推数量限制,单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'CurrentNum' => [ - 'description' => '域名当前的原始流数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'CurrentTransferNum' => [ - 'description' => '域名当前的中心转推流数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'DomainName' => [ - 'description' => '您查询的主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'F1F68D81-1543-1FE4-B56E-82200DD2****'], + 'Users' => [ + 'description' => '查询的用户列表。', + 'type' => 'array', + 'items' => [ + 'description' => '用户信息。', + 'type' => 'object', + 'properties' => [ + 'UserId' => ['description' => '用户ID。', 'type' => 'string', 'example' => 'uid1'], + 'Online' => ['description' => '用户是否在群组中。', 'type' => 'boolean', 'example' => 'false'], ], ], ], @@ -8041,127 +6704,102 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562********\\",\\n \\"LiveDomainLimitList\\": {\\n \\"LiveDomainLimit\\": [\\n {\\n \\"LimitTranscodeNum\\": 50,\\n \\"CurrentTranscodeNum\\": 10,\\n \\"LimitNum\\": 100,\\n \\"LimitTransferNum\\": 50,\\n \\"CurrentNum\\": 10,\\n \\"CurrentTransferNum\\": 10,\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n A3136B58-5876-4168-83CA-B562781981A0\\n \\n 50\\n 10\\n 100\\n 50\\n 10\\n 10\\n example.com\\n \\n","errorExample":""}]', - 'title' => '查询域名推流数量限制和转码数量限制', - 'description' => '本接口支持的播流域名为主播流域名。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询指定用户是否在群组中', + 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP 状态码 |语义|'."\n" - .'|--------|--------|--------|--------|'."\n" - .'|Missing DomainName|DomainName is mandatory for this action.|400|缺少参数。|'."\n" - .'|InvalidParam|Parameter invalid.|400|参数错误。|'."\n" - .'|InvalidDomain.NotFound|The domain provided does not exist in our records.|404|当前账户下未查到此域名。|', - ], - 'DescribeLiveStreamState' => [ - 'summary' => '实时查询单路流状态。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CheckLiveMessageUsersInGroup'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:CheckLiveMessageUsersInGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F1F68D81-1543-1FE4-B56E-82200DD2****\\",\\n \\"Users\\": [\\n {\\n \\"UserId\\": \\"uid1\\",\\n \\"Online\\": false\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n F1F68D81-1543-1FE4-B56E-82200DD2****\\n \\n uid1\\n false\\n \\n","errorExample":""}]', + ], + 'CheckLiveMessageUsersOnline' => [ + 'summary' => '调用CheckLiveMessageUsersOnline查询指定的用户是否在线。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '直播推流域名或播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'AppName', + 'name' => 'UserIds', 'in' => 'query', + 'style' => 'simple', 'schema' => [ - 'description' => '直播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', + 'title' => '需要查询的用户,范围为1-10个', + 'description' => '需要查询的用户列表。', + 'type' => 'array', + 'items' => ['description' => '需要查询的用户ID。多个用半角逗号(,)隔开。单次查询用户数量范围\\[1,10\\]。', 'type' => 'string', 'required' => false, 'example' => 'uid'], 'required' => true, - 'example' => 'liveApp****', + 'maxItems' => 10, + 'minItems' => 1, ], ], [ - 'name' => 'StreamName', + 'name' => 'DataCenter', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => '推流接入的类型。取值:'."\n" - ."\n" - .'- push:直播推流。'."\n" - ."\n" - .'- pull:触发拉流。'."\n" - ."\n\n" - ."\n", - 'type' => 'string', - 'example' => 'push', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CE6CD79D-0A98-1F22-A15F-FADA74DF2729', - ], - 'StreamState' => [ - 'description' => '流状态。取值:'."\n" - .'- online:推流中,表示正常推流中。'."\n" - .'- offline:不在线(推流失败或者推流结束,具体状态根据推流回调返回,此API不细分)。', - 'type' => 'string', - 'example' => 'online', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '178F572F-AECF-100B-937A-B8047B4D****'], + 'UserList' => [ + 'description' => '查询的用户列表。', + 'type' => 'array', + 'items' => [ + 'description' => '用户信息。', + 'type' => 'object', + 'properties' => [ + 'Online' => ['description' => '用户是否在线。', 'type' => 'boolean', 'example' => 'false'], + 'UserId' => ['description' => '用户ID。', 'type' => 'string', 'example' => 'uid1'], + ], + ], ], ], ], @@ -8169,38 +6807,46 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Type\\": \\"push\\",\\n \\"RequestId\\": \\"CE6CD79D-0A98-1F22-A15F-FADA74DF2729\\",\\n \\"StreamState\\": \\"online\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\nonline\\npush\\nCE6CD79D-0A98-1F22-A15F-FADA74DF2729\\n","errorExample":""}]', - 'title' => '查询单路流状态', - 'description' => '先获取直播域名,再调用本接口实时查询单路流状态。关于不在线状态(offline)的详细信息,请根据推流回调返回的数据获取,本接口不做细分。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteLiveStreamMerge' => [ - 'summary' => '删除在线流合流。', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询指定的用户是否在线', + 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CheckLiveMessageUsersOnline'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:CheckLiveMessageUsersOnline', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"178F572F-AECF-100B-937A-B8047B4D****\\",\\n \\"UserList\\": [\\n {\\n \\"Online\\": false,\\n \\"UserId\\": \\"uid1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 178F572F-AECF-100B-937A-B8047B4D****\\n \\n uid1\\n false\\n \\n","errorExample":""}]', + ], + 'CloseLiveShift' => [ + 'summary' => '关闭指定域名(应用、直播流)的时移服务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8208,54 +6854,31 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveBLHP6S', - ], + 'abilityTreeNodes' => ['FEATUREliveGDJYFA'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '合流输出App名称。您可在[主备合流配置](~~606583~~)页面查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'app', - ], + 'schema' => ['description' => '直播流所属应用名称。支持通配符*,代表该域名下所有的AppName。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '合流输出Stream名称。您可在[主备合流配置](~~606583~~)页面查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'StreamName', - ], + 'schema' => ['description' => '直播流流名称。支持通配符*,代表该AppName下所有的StreamName。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], ], ], 'responses' => [ @@ -8263,221 +6886,198 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB9*********', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - [ - 'errorCode' => 'QuotaExceeded.Merge', - 'errorMessage' => 'Exceed max merge count limit', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + 404 => [ + ['errorCode' => 'InvalidDataNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '数据不存在,请检查后重试。'], + ], + 409 => [ + ['errorCode' => 'InvalidStreamNum', 'errorMessage' => '%s, please check and try again later.', 'description' => '流数量异常,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB9*********\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '删除在线流合流', - 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'AddLiveStreamMerge' => [ - 'summary' => '添加主备合流配置。', - 'methods' => [ - 'post', - 'get', + 'title' => '关闭时移服务', + 'description' => '先获取播流域名,再调用本接口关闭指定域名(应用、直播流)的时移服务。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '### 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" + .'|------------|--------|---------|------|'."\n" + .'| InvalidParam | param error | 400 | 用户参数错误。 |'."\n" + .'| InvalidDataNotFound | data not found | 404 | 用户数据未找到。 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CloseLiveShift'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:CloseLiveShift', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n","errorExample":""}]', + ], + 'CopyCaster' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '106856', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'CasterName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '新导播台名称。', 'type' => 'string', 'required' => true, 'example' => 'caster001'], ], [ - 'name' => 'AppName', + 'name' => 'SrcCasterId', 'in' => 'query', - 'schema' => [ - 'description' => '合流输出App名称。AppName名称与推流地址中的AppName名称相对应,模板才能生效。不可以填*。', - 'type' => 'string', - 'required' => true, - 'example' => 'app', - ], + 'schema' => ['description' => '原导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], [ - 'name' => 'StreamName', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => '合流输出Stream名称。StreamName名称与推流地址中的StreamName名称相对应,模板才能生效。不可以填*。', - 'type' => 'string', - 'required' => true, - 'example' => 'StreamName', - ], + 'schema' => ['description' => '用户生成的请求token。用于保证请求的幂等性。'."\n" + ."\n" + .'由客户端生成该参数值,要保证在不同请求间唯一,最大值不超过64个ASCII字符。', 'type' => 'string', 'required' => true, 'example' => '53200b81-b761-4c10-842a-a0726d97****'], ], - [ - 'name' => 'InAppName1', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '合流输入主流应用名称,输入的AppName必须与主流推流地址中的AppName保持一致,方可生效。', - 'type' => 'string', - 'required' => true, - 'example' => 'app1', + 'type' => 'object', + 'properties' => [ + 'CasterId' => ['description' => '新导播台ID。', 'type' => 'string', 'example' => '1909f043-e3d3-49e9-82d6-4329ec4a****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + ], + 'description' => '', ], ], - [ - 'name' => 'InStreamName1', - 'in' => 'query', - 'schema' => [ - 'description' => '合流输入主流直播流名称,输入的AppName必须与主流推流地址中的AppName保持一致,方可生效。', - 'type' => 'string', - 'required' => true, - 'example' => 'InStream1', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ClientToken无效,请检查后重试。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], ], [ - 'name' => 'InAppName2', - 'in' => 'query', - 'schema' => [ - 'description' => '合流输入备流应用名称,输入的AppName必须与备流推流地址中的AppName保持一致,方可生效。', - 'type' => 'string', - 'required' => true, - 'example' => 'app2', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台数量超限,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], + ], + 'title' => '复制导播台', + 'summary' => '复制导播台,复制指定导播台并返回新导播台实例。', + 'description' => '调用本接口复制导播台,复制指定导播台并返回新导播台实例。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'InStreamName2', - 'in' => 'query', - 'schema' => [ - 'description' => '合流输入备流直播流名称,输入的AppName必须与备流推流地址中的AppName保持一致,方可生效。', - 'type' => 'string', - 'required' => true, - 'example' => 'stream2', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CopyCaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"1909f043-e3d3-49e9-82d6-4329ec4a****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t1909f043-e3d3-49e9-82d6-4329ec4a****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"CasterId\\": \\"1909f043-e3d3-49e9-82d6-4329ec4a0293\\"\\n}"}]', + ], + 'CopyCasterSceneConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '合流开始时间。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2020-05-29T00:00:00Z', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], + ], + 'parameters' => [ [ - 'name' => 'EndTime', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '合流结束时间。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - .'>开始时间与结束时间最大相差7天。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2020-05-29T01:00:00Z', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Protocol', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '直播流协议,取值:'."\n" - ."\n" - .'- **rtmp**(默认值)'."\n" - ."\n" - .'- **rtc**', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], [ - 'name' => 'LiveMerger', + 'name' => 'FromSceneId', 'in' => 'query', - 'schema' => [ - 'description' => '是否使用liveswitch引擎'."\n" - ."\n" - .'- on 使用liveswitch新引擎'."\n" - .'- off 默认值,使用旧引擎(rtmpr等)', - 'type' => 'string', - 'required' => false, - 'example' => 'off', - 'default' => 'off', - ], + 'schema' => ['description' => '原场景ID,仅限于PVM场景。', 'type' => 'string', 'required' => true, 'example' => 'f1a361f4-bee3-436d-ae6e-d38e6943****'], ], [ - 'name' => 'MergeParameters', + 'name' => 'ToSceneId', 'in' => 'query', - 'schema' => [ - 'description' => '切流相关的配置参数'."\n" - ."\n" - .'1. 明确发生断流时(eof 或 net err),立刻触发主备切换;'."\n" - .'2. 最近5秒内卡顿率超过60%,立刻触发主备切换;'."\n" - .'3. 拉流超时,持续2秒收不到帧数据,触发主备切换;'."\n" - .'4. 未断流、未发生卡顿,但是最近ali_max_no_frame_timeout时间内的平均帧率 小于 ali_low_frame_rate_threshold,立刻触发主备切换。如果用户设置了 ali_max_no_frame_timeout 参数,则3的超时时间会同步更新成 ali_max_no_frame_timeout。'."\n" - .'5. 开启 block_all_jitter 则2、3、4不生效。'."\n" - ."\n" - .'- 取值范围:'."\n" - .'10 > timeout > 2'."\n" - .'200 > threshold > 1'."\n" - .'block的值为0或1', - 'type' => 'string', - 'required' => false, - 'example' => 'ali_low_frame_rate_threshold=10&ali_max_no_frame_timeout=5&block_all_jitter=0', - ], + 'schema' => ['description' => '目标场景ID,仅限于PGM场景。', 'type' => 'string', 'required' => true, 'example' => '05ab713c-676e-49c0-96ce-cc408da1****'], ], ], 'responses' => [ @@ -8485,152 +7085,188 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], - 'Message' => [ - 'description' => '- 附加信息,典型应用场景是对失败调用进行简述,方便调用方定位问题'."\n" - ."\n" - .'- 取值:OK、config invalid, degrade to no livemerger。', - 'type' => 'string', - 'example' => 'OK', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A5****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified parameter StartTime is not valid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified parameter EndTime is not valid.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - [ - 'errorCode' => 'QuotaExceeded.Merge', - 'errorMessage' => 'Exceed max merge count limit', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], - [ - 'errorCode' => 'Duration.Exceed', - 'errorMessage' => 'Duration between StartTime and EndTime is too long.', - ], - [ - 'errorCode' => 'InvalidParam.CodeIllegalDuration', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SceneId无效,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态不支持,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态为空闲,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.ConfigError', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene配置错误,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'ResourceInChannel.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene不存在,请检查后重试。'], + ], + 412 => [ + ['errorCode' => 'ResourceInChannel.PreConditionFailed', 'errorMessage' => '%s, please try again later.', 'description' => '资源预校验失败,请稍后重试。'], + ['errorCode' => 'ResourceInChannel.Invalid', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源与通道素材地址不一致,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"Message\\": \\"OK\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '添加主备合流', - 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '>AppName、InAppName1、InAppName2三个配置项中不可与其它两个中任意一个重复;StreamName、InStreamName1、InStreamName2三个配置项中不可与其它两个中任意一个重复。', - 'responseParamsDescription' => 'config invalid, degrade to no livemerger表示liveswitch新引擎的配置不完整,自动降级为旧引擎', - ], - 'DescribeLiveStreamMerge' => [ - 'summary' => '查询主备合流配置。', - 'methods' => [ - 'post', - 'get', + 'title' => '复制导播台场景配置', + 'summary' => '将原场景配置应用至目标场景并生效,仅限PVW场景配置拷贝至PGM场景。', + 'description' => '- 云导播服务根据导播输出规格、转码规格及对应时长计费。计费详情,请参见[云导播费用](~~64531~~)。'."\n" + ."\n" + .'- 调用本接口将原场景配置应用至目标场景并生效,仅限PVW场景配置拷贝至PGM场景。PVW场景是预览场景,PGM是正式输出的场景。'."\n" + .'- 将PVW场景配置复制到PGM场景仅限于同一导播台内。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CopyCasterSceneConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CopyCasterSceneConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A5****\\"\\n}","type":"json"}]', + ], + 'CreateCaster' => [ + 'summary' => '调用CreateCaster创建导播台。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveBLHP6S', - ], + 'chargeType' => 'paid', + 'abilityTreeCode' => '106890', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-beijing', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'CasterName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '导播台名称。', 'type' => 'string', 'required' => false, 'example' => 'liveCaster****'], ], [ - 'name' => 'AppName', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => '合流输出App名称。您可在[主备合流配置](~~606583~~)页面查看。', - 'type' => 'string', - 'required' => false, - 'example' => 'app', - ], + 'schema' => ['description' => '用户生成的请求token。用于保证请求的幂等性。'."\n" + ."\n" + .'该参数值可自定义,但是要保证在不同请求间唯一,最大值不超过64个ASCII字符。', 'type' => 'string', 'required' => true, 'example' => '53200b81-b761-4c10-842a-a0726d97****', 'maxLength' => 64, 'minLength' => 0], ], [ - 'name' => 'StreamName', + 'name' => 'NormType', 'in' => 'query', - 'schema' => [ - 'description' => '合流输出Stream名称。您可在[主备合流配置](~~606583~~)页面查看。', - 'type' => 'string', - 'required' => false, - 'example' => 'StreamName', - ], + 'schema' => ['description' => '导播台规格类型。取值:'."\n" + ."\n" + .''."\n" + ."\n" + .'- **1**:通用型。'."\n" + ."\n" + .'- **3**:轻量级轮播型。'."\n" + ."\n" + .'- **4**:虚拟演播厅型。'."\n" + ."\n" + .'- **6**:轮播台(新播单型导播台)。'."\n" + ."\n" + .''."\n" + ."\n" + .''."\n" + ."\n" + .'- **1**:通用型。'."\n" + ."\n" + .'- **6**:轮播台(新播单型导播台)。'."\n" + ."\n" + .'', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ - 'name' => 'Protocol', + 'name' => 'ChargeType', + 'in' => 'query', + 'schema' => ['description' => '付费方式。 目前只支持**PostPaid**。取值:'."\n" + ."\n" + .'- **PrePaid**:预付费(暂不支持)。'."\n" + .'- **PostPaid**:后付费。', 'type' => 'string', 'required' => true, 'example' => 'PostPaid'], + ], + [ + 'name' => 'PurchaseTime', + 'in' => 'query', + 'schema' => ['description' => '导播台购买时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> 当**ChargeType**为**PrePaid**时,此参数才可设置。', 'type' => 'string', 'required' => false, 'example' => '2017-08-20T12:10:10Z'], + ], + [ + 'name' => 'ExpireTime', 'in' => 'query', + 'schema' => ['description' => '导播台过期时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> 当**ChargeType**为**PrePaid**时,此参数才可设置。', 'type' => 'string', 'required' => false, 'example' => '2017-08-22T12:10:10Z'], + ], + [ + 'name' => 'CasterTemplate', + 'in' => 'query', + 'schema' => ['description' => '导播台预设分辨率。采用预付费方式时,取值:'."\n" + ."\n" + .'- **lp_ld**:流畅。'."\n" + .'- **lp_sd**:标清。'."\n" + .'- **lp_hd**:高清。'."\n" + .'- **lp_ud**:超清。'."\n" + .'- **lp_ld_v**:竖屏流畅。'."\n" + .'- **lp_sd_v**:竖屏标清。'."\n" + .'- **lp_hd_v**:竖屏高清。'."\n" + .'- **lp_ud_v**:竖屏超清。'."\n" + ."\n" + .'>后付费场景下,需要设置分辨率,请调用[SetCasterConfig](~~60271~~)接口进行操作。', 'type' => 'string', 'required' => false, 'example' => 'lp_sd'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。关于资源组的更多信息,请参见[什么是资源组](~~2381067~~)。', 'type' => 'string', 'required' => false, 'example' => 'rg-aekzw******'], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '播流协议,取值:'."\n" - ."\n" - .'- **rtmp**(默认值)'."\n" - ."\n" - .'- **rtc**', - 'type' => 'string', + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签列表。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签健。', 'type' => 'string', 'required' => false, 'example' => 'TestKey'], + 'Value' => ['description' => '标签值。', 'type' => 'string', 'required' => false, 'example' => 'TestValue'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'rtmp', + 'maxItems' => 100, ], ], ], @@ -8639,159 +7275,82 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'LiveStreamMergeList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LiveStreamMerge' => [ - 'description' => '直播流信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '直播流信息列表。', - 'type' => 'object', - 'properties' => [ - 'AppName' => [ - 'description' => '合流输出App名称。', - 'type' => 'string', - 'example' => 'app', - ], - 'AppUsing' => [ - 'description' => '当前使用的App。', - 'type' => 'string', - 'example' => 'app1', - ], - 'DomainName' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'EndTime' => [ - 'description' => '合流结束时间。', - 'type' => 'string', - 'example' => '2020-05-29T01:00:00Z', - ], - 'ExtraInAppStreams' => [ - 'description' => '合流输入第3路-第N路的app和stream。', - 'type' => 'string', - 'example' => 'app3/stream3,app4/stream4,app5/stream5,…,appN/streamN', - ], - 'InAppName1' => [ - 'description' => '合流输入主流应用名称。', - 'type' => 'string', - 'example' => 'app1', - ], - 'InAppName2' => [ - 'description' => '合流输入备流应用名称。', - 'type' => 'string', - 'example' => 'app2', - ], - 'InStreamName1' => [ - 'description' => '合流输入主流直播流名称。', - 'type' => 'string', - 'example' => 'InStream1', - ], - 'InStreamName2' => [ - 'description' => '合流输入备流直播流名称。', - 'type' => 'string', - 'example' => 'stream2', - ], - 'Protocol' => [ - 'description' => '直播流协议。', - 'type' => 'string', - 'example' => 'rtmp', - ], - 'StartTime' => [ - 'description' => '合流开始时间。', - 'type' => 'string', - 'example' => '2020-05-29T00:00:00Z', - ], - 'StreamName' => [ - 'description' => '合流输出Stream名称。', - 'type' => 'string', - 'example' => 'StreamName', - ], - 'StreamUsing' => [ - 'description' => '当前使用的Stream。', - 'type' => 'string', - 'example' => 'InStream1', - ], - 'LiveMerger' => [ - 'description' => '当前任务是否使用merge引擎。', - 'type' => 'string', - 'enumValueTitles' => [ - 'off' => 'off', - 'on' => 'on', - ], - 'example' => 'on', - ], - 'MergeParameters' => [ - 'description' => '查询任务所对应的切流相关的配置参数'."\n" - ."\n" - .'1. 明确发生断流时(eof 或 net err),立刻触发主备切换;'."\n" - .'2. 最近5秒内卡顿率超过60%,立刻触发主备切换;'."\n" - .'3. 拉流超时,持续2秒收不到帧数据,触发主备切换;'."\n" - .'4. 未断流、未发生卡顿,但是最近ali_max_no_frame_timeout时间内的平均帧率 小于 ali_low_frame_rate_threshold,立刻触发主备切换。如果用户设置了 ali_max_no_frame_timeout 参数,则3的超时时间会同步更新成 ali_max_no_frame_timeout。'."\n" - ."\n" - .'开启 block_all_jitter 则2、3、4不生效。'."\n" - ."\n" - .'取值范围: '."\n" - ."\n" - .'- 10 > ali_max_no_frame_timeout > 2;'."\n" - .'- 200 > ali_low_frame_rate_threshold > 1 ;'."\n" - .'- block_all_jitter的值为0(默认关闭)或 1(开启)。', - 'type' => 'string', - 'example' => 'ali_low_frame_rate_threshold=10&ali_max_no_frame_timeout=5&block_all_jitter=0'."\n", - ], - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'CasterId' => ['description' => '导播台ID。可作为查询导播台流地址、启动导播台、添加导播台视频资源、添加导播台布局、查询导播台布局列表、添加导播台组件和添加导播台节目单的请求参数。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - [ - 'errorCode' => 'QuotaExceeded.Merge', - 'errorMessage' => 'Exceed max merge count limit', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], + ['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PurchaseTime无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ExpireTime无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType仅支持后付费,请检查后重试。'], + ['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterTemplate无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '时间间隔无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ClientToken无效,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态有误,请检查后重试。'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + [ + ['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台数量超限,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '访问拒绝,请检查后重试。'], + ], + [ + ['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数NormType无效,请检查后重试。'], + ['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ], + 408 => [ + ['errorCode' => 'CreateCaster.Timeout', 'errorMessage' => '%s, please try again later.', 'description' => '调用CreateCaster超时,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"LiveStreamMergeList\\": {\\n \\"LiveStreamMerge\\": [\\n {\\n \\"AppName\\": \\"app\\",\\n \\"AppUsing\\": \\"app1\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2020-05-29T01:00:00Z\\",\\n \\"ExtraInAppStreams\\": \\"app3/stream3,app4/stream4,app5/stream5,…,appN/streamN\\",\\n \\"InAppName1\\": \\"app1\\",\\n \\"InAppName2\\": \\"app2\\",\\n \\"InStreamName1\\": \\"InStream1\\",\\n \\"InStreamName2\\": \\"stream2\\",\\n \\"Protocol\\": \\"rtmp\\",\\n \\"StartTime\\": \\"2020-05-29T00:00:00Z\\",\\n \\"StreamName\\": \\"StreamName\\",\\n \\"StreamUsing\\": \\"InStream1\\",\\n \\"LiveMerger\\": \\"on\\",\\n \\"MergeParameters\\": \\"ali_low_frame_rate_threshold=10&ali_max_no_frame_timeout=5&block_all_jitter=0\\\\n\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n app\\n app1\\n example.com\\n 2020-05-29T01:00:00Z\\n app3/stream3,app4/stream4,app5/stream5,…,appN/streamN\\n app1\\n app2\\n InStream1\\n stream2\\n rtmp\\n 2020-05-29T00:00:00Z\\n StreamName\\n InStream1\\n \\n \\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '查询主备合流配置', - 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteLiveDelayConfig' => [ - 'summary' => '调用DeleteLiveDelayConfig删除直播延播配置。', - 'methods' => [ - 'post', - 'get', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '创建导播台', + 'description' => '您已开通云导播服务再调用本接口创建导播台。开通指引,请参见[开通服务](~~60361~~)。'."\n" + .'本接口目前支持的导播台规格类型为通用型、轻量级轮播型、虚拟演播厅型和新播单型(轮播台)。'."\n" + .'本接口目前支持的导播台规格类型为通用型和新播单型(轮播台)。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-27T02:16:13.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-08-21T03:33:21.000Z', 'description' => '错误码发生变更、请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateCaster'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateCaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\na2b8e671-2fe5-4642-a2ec-bf93880e1****\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e1a49\\"\\n}\\n"}]', + ], + 'CreateCustomTemplate' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8799,54 +7358,29 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveBP94ZY', - ], + 'abilityTreeNodes' => ['FEATUREliveI16NIW'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'App', + 'name' => 'CustomTemplate', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。支持通配符*,代表该域名下所有的AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => 'JSON格式{height:xxx,scale:xxx,gop:xxx,bframes:xxx,cdesc:xxx},所有字段均必填,缺少其中任意字段会调用失败。'."\n" + ."\n" + .'> 具体参数请参考下表**CustomTemplate说明**。', 'type' => 'string', 'required' => true, 'example' => '{"height":"1060","scale":"[16:9]","gop":"60","bframes":"30","cdesc":"h264"}'], ], [ - 'name' => 'Stream', + 'name' => 'Template', 'in' => 'query', - 'schema' => [ - 'description' => '直播流流名称。支持通配符*,代表该AppName下所有的StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '需要添加的模板名。'."\n" + .'>请在创建时记录模板名,用于使用、查询和删除操作。'."\n", 'type' => 'string', 'required' => true, 'example' => 'TestTemplate'], ], ], 'responses' => [ @@ -8854,119 +7388,107 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0D715397-2E66-4AE1-694h-C546628AD145'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'TemplateAlreadyExist', 'errorMessage' => '%s, please check and try again later.', 'description' => '模板已存在,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'CustomTemplateInvalid', 'errorMessage' => '%s, please check and try again later.', 'description' => '自定义模板无效,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '删除直播延播配置', - 'description' => '本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'UpdateLiveDelayConfig' => [ - 'summary' => '更新直播延播配置。', - 'methods' => [ - 'post', - 'get', + 'title' => '创建合流自定义模板', + 'summary' => '创建合流自定义模板。', + 'description' => '调用本接口创建好自定义模板后,请记录模板名。通过[CreateMixStream接口](~~2848087~~)创建合流任务时,MixStreamTemplate传入模板名来使用自定义模板。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '**CustomTemplate说明**'."\n" + .'|名称 |类型 |必选 |描述 |'."\n" + .'| ---------|------- |------ | ----------- |'."\n" + .'|height|String|必选|输出分辨率的高。
scale为16:9时最大支持1920x1080。
scale为4:3时最大支持1440x1080 。|'."\n" + .'|scale|String|必选|输出分辨率高宽比。只能接受 String 取值如下:
[3:4]
[4:3]
[16:9]
[9:16]|'."\n" + .'|bframes|String|必选|输出流b帧数。取值需要大于0小于9。|'."\n" + .'|cdesc|String|必选|编码格式。只能取值 h264。|'."\n" + .'|gop|String|必选|关键帧间隔。取值大于25小于250。|'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateCustomTemplate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0D715397-2E66-4AE1-694h-C546628AD145\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0D715397-2E66-4AE1-694h-C546628AD145\\n","errorExample":""}]', + ], + 'CreateEdgeTranscodeJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveBP94ZY', - ], + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Domain', + 'name' => 'ClusterId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '机房ID。', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******'], ], [ - 'name' => 'App', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。支持通配符*,代表该域名下所有的AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '任务名称,支持中英文+数字+英文短划线、下划线。长度限制英文255字符。', 'type' => 'string', 'required' => true, 'example' => 'task1'], ], [ - 'name' => 'Stream', + 'name' => 'TemplateId', 'in' => 'query', - 'schema' => [ - 'description' => '直播流流名称。支持通配符*,代表该AppName下所有的StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '模板ID。', 'type' => 'string', 'required' => true, 'example' => '****96e8864746a0b6f3****'], ], [ - 'name' => 'DelayTime', + 'name' => 'StreamInput', 'in' => 'query', - 'schema' => [ - 'description' => '直播流延迟播放的时长,仅支持整数。取值:16~3600。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '60', - ], + 'schema' => ['description' => '输入流地址。', 'type' => 'string', 'required' => true, 'example' => 'rtmp://mydomain/app/stream1'], ], [ - 'name' => 'TaskTriggerMode', + 'name' => 'StreamOutput', 'in' => 'query', - 'schema' => [ - 'description' => '任务触发模式,取值:'."\n" - ."\n" - .'- **PUBLISH_ONLY** :仅支持带延播推流参数触发。'."\n" - ."\n" - .'- **CONFIG_ONLY** :仅支持配置触发,推流参数无效。'."\n" - ."\n" - .'- **PUBLISH_CONFIG** :同时支持推流和配置,并且推流参数高优于配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'PUBLISH_ONLY', - ], + 'schema' => ['description' => '输出流地址。', 'type' => 'string', 'required' => true, 'example' => 'rtmp://testdomain/app/stream2'], ], ], 'responses' => [ @@ -8974,307 +7496,511 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'JobId' => ['description' => '边缘转码任务ID。', 'type' => 'string', 'example' => '****20b48fb04483915d4f2cd8ac****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '操作拒绝,请检查后重试。'], + ], + [ + ['errorCode' => 'TemplateNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '模板不存在,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '更新直播延播配置', - 'description' => '本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveDelayConfig' => [ - 'summary' => '调用DescribeLiveDelayConfig查询直播延播配置。', - 'methods' => [ - 'post', - 'get', + 'title' => '创建边缘转码任务', + 'summary' => '创建边缘转码任务。', + 'description' => '- 本接口用于创建边缘转码任务。'."\n" + ."\n" + .'- 用户需要具有访问边缘转码服务的权限,才能正常调用本接口。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEdgeTranscodeJob'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'live:CreateEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ****20b48fb04483915d4f2cd8ac****\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + ], + 'CreateEventSub' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveBP94ZY', - ], + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '订阅的应用ID。', 'type' => 'string', 'required' => true, 'example' => '9qb1****'], ], [ - 'name' => 'Domain', + 'name' => 'ChannelId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['title' => '要监听的频道,不填表示全部,每个appid 只允许1个全频道订阅', 'description' => '订阅的频道ID。您可通过调用[ListEventSub](~~2848210~~)接口查询订阅的频道ID。'."\n" + ."\n" + .'>- 如果Users.N参数不为空,则此参数必填。'."\n" + .'>- ChannelId为*或者不填,表示为全频道订阅,每个AppId只允许1个全频道订阅。'."\n" + .'>- 每个AppId最多同时允许创建20个订阅。', 'type' => 'string', 'required' => false, 'example' => '123333'], ], [ - 'name' => 'App', + 'name' => 'Users', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '直播流所属应用名称。支持通配符*,代表该域名下所有的AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', + 'title' => '只监听哪些用户,不填表示全部;与ChannelId过滤同时使用才生效', + 'description' => '订阅哪些用户的消息,参数为空表示订阅该房间全部用户(包含主播和观众)。格式如下所示:'."\n" + ."\n" + .'```'."\n" + .'Users.1=****'."\n" + .'Users.2=****'."\n" + .'......'."\n" + .'```', + 'type' => 'array', + 'items' => ['description' => '用户ID。', 'type' => 'string', 'required' => false, 'example' => 'user1'], + 'required' => false, + 'maxItems' => 30, ], ], [ - 'name' => 'Stream', + 'name' => 'Events', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '直播流流名称。支持通配符*,代表该AppName下所有的StreamName。', - 'type' => 'string', + 'title' => 'ChannelEvent, UserEvent', + 'description' => '订阅事件。', + 'type' => 'array', + 'items' => ['description' => '订阅的事件,取值:'."\n" + ."\n" + .'- **ChannelEvent**:频道事件。'."\n" + ."\n" + .'- **UserEvent**:频道内用户事件。', 'type' => 'string', 'required' => true, 'example' => 'ChannelEvent'], 'required' => true, - 'example' => 'liveStream****', + 'maxItems' => 5, ], ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => ['title' => '回调地址', 'description' => '回调地址。回调内容请参见以下回调内容示例。', 'type' => 'string', 'required' => true, 'example' => 'http://****.com/callback'], + ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'App' => [ - 'description' => '直播流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'DelayTime' => [ - 'description' => '直播流延迟播放的时长。', - 'type' => 'string', - 'example' => '60', - ], - 'Domain' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', - ], - 'Stream' => [ - 'description' => '直播流流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'TaskTriggerMode' => [ - 'description' => '任务触发模式,取值:'."\n" - ."\n" - .'- **PUBLISH_ONLY**:仅支持带延播推流参数触发。'."\n" - ."\n\n" - .'- **CONFIG_ONLY**:仅支持配置触发,推流参数无效。'."\n" - ."\n" - .'- **PUBLISH_CONFIG**:同时支持推流和配置,并且推流参数高优于配置。', - 'type' => 'string', - 'example' => 'PUBLISH_ONLY', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b****'], + 'SubscribeId' => ['description' => '创建的订阅ID。', 'type' => 'string', 'example' => 'ad53276431c****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ['errorCode' => 'QuotaLimitError', 'errorMessage' => '%s.', 'description' => '每个AppId,最多同时允许创建20个订阅,并且只允许1个全频道订阅'], + ['errorCode' => 'ErrorInvalidCallBackUrl', 'errorMessage' => '%s.', 'description' => 'CallBackURL无效,请检查后重新尝试。'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"App\\": \\"liveApp****\\",\\n \\"DelayTime\\": \\"60\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"Stream\\": \\"liveStream****\\",\\n \\"TaskTriggerMode\\": \\"PUBLISH_ONLY\\"\\n}","errorExample":""},{"type":"xml","example":"\\n example.com\\n A3136B58-5876-4168-83CA-B562781981A0\\n PUBLISH_ONLY\\n liveApp****\\n 60\\n liveStream****\\n","errorExample":""}]', - 'title' => '查询直播延播配置', - 'description' => '本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'ListLiveDelayConfig' => [ - 'summary' => '调用ListLiveDelayConfig查询直播延播配置列表。', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建订阅房间消息回调', + 'summary' => '创建订阅房间消息的回调。', + 'description' => '本接口用于创建订阅房间消息的回调。例如:在创建回调时,您可以配置回调地址、事件类型等参数。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '## CallBack'."\n" + .'通过用户传入的CallbackUrl,回调用户的内容,示例如下所示:'."\n" + ."\n" + .'```'."\n" + .'Request:'."\n" + ."\n" + .'POST /callbackURL'."\n" + ."\n" + .'Body'."\n" + .'application/json'."\n" + ."\n" + .'{'."\n" + .' "MsgId": "消息ID",'."\n" + .' "MsgTimestamp": 12312324, // 消息发送时的Unix时间戳'."\n" + .' "SubscribeID": "订阅ID",'."\n" + .' "AppId":"", // 产生该消息的appid '."\n" + .' "ChannelID":"", // 产生该消息的频道'."\n" + .' "Contents": ['."\n" + .' {'."\n" + .' "Event": "UserEvent",//订阅的事件:频道内用户事件'."\n" + .' "UserEvent": {'."\n" + .' "UserId": "80331631628*****", // 用户ID'."\n" + .' "EventTag": "Publish", // 事件,包括Join, Leave, Publish, Unpublish, Roleupdate'."\n" + .' "SessionId": "0dr15rrnhkz0jnvz6o8sxo0*****", // 产生该事件的SessionID'."\n" + .' "Timestamp": 1609854786, // 事件发生Unix 时间戳'."\n" + .' "Reason": 1, // 入会、离会原因,仅Join事件有'."\n" + .' "Role": 1, // 角色类型, 主播,观众'."\n" + .' "CurrentMedias":"1,2,3"// 推流类型:用户推了哪些流'."\n" + .' }'."\n" + .' },'."\n" + .' {'."\n" + .' "Event": "ChannelEvent",//订阅的事件:频道事件'."\n" + .' "ChannelEvent": {'."\n" + .' "ChannelId": "88888****",'."\n" + .' "EventTag": "Open", // 频道事件,包括开启与关闭Open, Close'."\n" + .' "Timestamp": 1609854530 // 事件发生Unix 时间戳'."\n" + .' }'."\n" + .' }'."\n" + .' ]'."\n" + .'}'."\n" + ."\n" + .'Response '."\n" + .'HTTP STATUS 200'."\n" + .'```'."\n" + .'## UserEvent用户事件'."\n" + ."\n" + .'| 参数 | 类型 | 是否必填|描述|'."\n" + .'| ------ | ------ | ------ | ----- |'."\n" + .'| UserId |string | 是 |用户ID。 |'."\n" + .'| SessionId | string | 是 |用户SessionID。 |'."\n" + .'| EventTag | string | 是 |事件类型,取值:
Join:入会。
Leave:离会。
PublishVideo:开始推视频流。
PublishAudio:开始推音频流。
PublishScreen:开始屏幕共享。
UnpublishVideo:停止推视频流。
UnpublishAudio:停止推音频流。
UnpublishScreen:停止屏幕共享。
Roleupdate:角色切换。 |'."\n" + .'| Timestamp |number | 是 |事件发生的时间戳。 |'."\n" + .'| Reason | integer | 是 |入会、离会原因(仅Join事件有),取值:
1:正常入会、离会。
2:重连入会(当前会中已有该用户实例,该用户再次入会)。
3:跨频道转推。
4:超时离会。
5:用户启用新的会话,当前会话被挤下线。
6:被踢出。
7:频道解散。|'."\n" + .'| Role | integer | 是 |角色类型,取值:
1:主播。
2:观众。 |'."\n" + .'| CurrentMedias| integer | 是 |推流类型,取值:
1:音频。
2:视频。
3:屏幕共享。 |'."\n" + ."\n" + .'## ChannelEvent频道事件'."\n" + .'| 参数 | 类型 | 是否必填|描述|'."\n" + .'| ------ | ------ | ------ | ------- |'."\n" + .'| EventTag |string | 是 |事件类型,取值:
Open:会议开始。
Close:会议结束。 |'."\n" + .'| Timestamp| number | 是 |事件发生的时间戳。 |'."\n" + ."\n" + .'## 回调鉴权说明'."\n" + .'事件回调鉴权功能默认开启,鉴权逻辑如下所示:'."\n" + ."\n" + .'- 阿里云视频直播服务发起回调请求时在HTTP(S)请求头中包含Ali-Rtc-Timestamp和Ali-Rtc-Signature字段,供回调消息接收服务端进行签名认证。Ali-Rtc-Timestamp值计算方式为:Ali-Rtc-Signature=MD5SUM(MD5CONTENT)。其中,MD5CONTENT=回调域名|Ali-Rtc-Timestamp取值|鉴权Key;回调域名指配置回调URL的域名,鉴权Key指用户创建AppId时生成的AppKey。'."\n" + .'- 回调消息接收服务端接收回调消息时,将回调域名、Ali-Rtc-Timestamp取值、鉴权Key进行拼接后计算MD5值,得到加密字符串,再将计算出的加密字符串与音视频通信服务发起的HTTP(S)请求头中的Ali-Rtc-Signature字段值进行对比,如果不一致,则请求非法。'."\n" + .'## 回调异常重试'."\n" + .'阿里云发起回调请求时,仅当您的业务服务器响应HTTP状态码为200时认定为回调成功。若回调失败,阿里云会重试7次,分别间隔1秒、2秒、5秒、10秒、1分钟、2分钟、5分钟。每次重试请求均会产生对应的回调记录。'."\n" + .'## 异常处理'."\n" + .'已经入会或者推流的客户端和阿里云的服务端有心跳保活机制,当客户端因为断网、App关闭异常等原因导致心跳保活失败(90秒未收到客户端心跳信息则认定为失败),服务端会判定客户端异常超时离开,并产生用户停止推流和离会的事件回调。', + 'changeSet' => [ + ['createdAt' => '2023-11-21T09:21:45.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2023-11-21T05:55:02.000Z', 'description' => '错误码发生变更、请求参数发生变更'], + ['createdAt' => '2023-08-31T01:48:03.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-08-04T10:33:43.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEventSub'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'live:CreateEventSub', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b****\\",\\n \\"SubscribeId\\": \\"ad53276431c****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 760bad53276431c499e30dc36f6b26be\\n ad53276431c****\\n","errorExample":""}]', + ], + 'CreateLiveAIStudio' => [ + 'summary' => '本接口用于创建轻量化虚拟演播模板。', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveBP94ZY', - ], + 'abilityTreeCode' => '250868', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'StudioName', + 'in' => 'query', + 'schema' => ['description' => '虚拟演播模板名称,不可重复', 'type' => 'string', 'required' => true, 'example' => 'stu02'], + ], + [ + 'name' => 'Description', + 'in' => 'query', 'schema' => [ - 'description' => '地域ID。', + 'description' => '自定义描述信息。', 'type' => 'string', 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'enumValueTitles' => [], + 'example' => 'template 1080', ], ], [ - 'name' => 'Domain', + 'name' => 'Width', + 'in' => 'query', + 'schema' => ['description' => '预览画面宽度,单位:px', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1920'], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => ['description' => '预览画面高度,单位:px'."\n" + ."\n" + .'预览画面宽度x高度仅支持以下规格:'."\n" + ."\n" + .'- 横屏流畅 360P 640x360'."\n" + .'- 竖屏流畅 360P 360x640'."\n" + .'- 横屏标清 480P 854x480'."\n" + .'- 竖屏标清 480P 480x854'."\n" + .'- 横屏高清 720P 1280x720'."\n" + .'- 竖屏高清 720P 720x1280'."\n" + .'- 横屏超清 1080P 1920x1080'."\n" + .'- 竖屏超清 1080P 1080x1920', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1080'], + ], + [ + 'name' => 'BackgroundType', 'in' => 'query', 'schema' => [ - 'description' => '主播流域名。', + 'description' => '背景素材类型:'."\n" + .'- VOD 点播视频'."\n" + .'- PIC 图片'."\n" + .'- LIVE 直播流', 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'required' => false, + 'enumValueTitles' => ['VOD' => '点播视频', 'PIC' => '图片', 'LIVE' => '直播流'], + 'example' => 'VOD', + 'enum' => ['VOD', 'LIVE', 'PIC'], ], ], [ - 'name' => 'PageNum', + 'name' => 'BackgroundResourceId', 'in' => 'query', 'schema' => [ - 'description' => '分页的页码。默认值:1。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '背景素材的点播资源id,从点播控制台获取', + 'type' => 'string', 'required' => false, - 'example' => '1', + 'example' => 'd0eb493192c771efba644531858c0102', + 'enum' => [], ], ], [ - 'name' => 'PageSize', + 'name' => 'BackgroundResourceUrl', 'in' => 'query', 'schema' => [ - 'description' => '每页大小。取值范围:5~30,默认值:10。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '背景素材的资源访问url,与资源id二选一传入', + 'type' => 'string', + 'required' => false, + 'example' => 'https://xxx.com/1.mp4', + 'enum' => [], + ], + ], + [ + 'name' => 'MediaType', + 'in' => 'query', + 'schema' => [ + 'description' => '多媒体素材类型:'."\n" + .'- VOD 点播视频'."\n" + .'- PIC 图片'."\n" + .'- LIVE 直播流', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => ['VOD' => '点播视频', 'PIC' => '图片', 'LIVE' => '直播流'], + 'example' => 'VOD', + 'enum' => ['VOD', 'LIVE', 'PIC'], + ], + ], + [ + 'name' => 'MediaResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => '多媒体素材的点播资源id,从点播控制台获取', + 'type' => 'string', 'required' => false, - 'example' => '10', + 'example' => 'd0eb493192c771efba644531858c0102', + 'enum' => [], + ], + ], + [ + 'name' => 'MediaResourceUrl', + 'in' => 'query', + 'schema' => [ + 'description' => '多媒体素材的资源访问url,与资源id二选一传入', + 'type' => 'string', + 'required' => false, + 'example' => 'https://xxx.com/2.mp4', + 'enum' => [], + ], + ], + [ + 'name' => 'MediaLayout', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '多媒体素材的布局位置信息', + 'type' => 'object', + 'properties' => [ + 'PositionX' => ['description' => '位置参数,坐标x。取值:**0~1**。素材位置以左上角为基准点。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0'], + 'PositionY' => ['description' => '位置参数,坐标y。取值:**0~1**。素材位置以左上角为基准点。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0'], + 'HeightNormalized' => ['description' => '素材的高度归一化值。即素材与背景的高度比。取值:**0~1**。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.5'], + ], + 'required' => false, + ], + ], + [ + 'name' => 'MattingType', + 'in' => 'query', + 'schema' => [ + 'description' => '抠图类型:'."\n" + .'- green 绿幕抠图'."\n" + .'- blue 蓝幕抠图'."\n" + .'- complex 实景抠图', + 'type' => 'string', + 'required' => true, + 'enumValueTitles' => ['green' => '绿幕抠图', 'blue' => '蓝幕抠图', 'complex' => '实景抠图'], + 'example' => 'complex', + 'enum' => ['green', 'blue', 'complex'], + ], + ], + [ + 'name' => 'MattingLayout', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '源流抠图后的布局位置信息', + 'type' => 'object', + 'properties' => [ + 'PositionX' => ['description' => '位置参数,坐标x。取值:**0~1**。素材位置以左上角为基准点。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.3'], + 'PositionY' => ['description' => '位置参数,坐标y。取值:**0~1**。素材位置以左上角为基准点。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.3'], + 'HeightNormalized' => ['description' => '素材的高度归一化值。即素材与背景的高度比。取值:**0~1**。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.5'], + ], + 'required' => true, ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '响应结构体', 'type' => 'object', 'properties' => [ - 'DelayConfigList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DelayConfig' => [ - 'description' => '延播配置列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'App' => [ - 'description' => '直播流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'DelayTime' => [ - 'description' => '结束时间戳,单位:秒。', - 'type' => 'string', - 'example' => '60', - ], - 'Domain' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Stream' => [ - 'description' => '直播流流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'TaskTriggerMode' => [ - 'description' => '任务触发模式,取值:'."\n" - .'- **PUBLISH_ONLY**:仅支持带延播推流参数触发。'."\n" - ."\n" - .'- **CONFIG_ONLY**:仅支持配置触发,推流参数无效。'."\n" - ."\n" - .'- **PUBLISH_CONFIG**:同时支持推流和配置,并且推流参数高优于配置。', - 'type' => 'string', - 'example' => 'PUBLISH_ONLY', - ], - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', - ], - 'Total' => [ - 'description' => '延播配置数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求id', 'type' => 'string', 'example' => '17D7526C-69AD-5761-8037-071C27358345'], + 'StudioId' => ['title' => 'Id of the request', 'description' => '演播模版id', 'type' => 'string', 'example' => '369ced1f-c33a-49e5-91da-bdaae3d6c1c2'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => 'There are invalid parameters: %s.', + ['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '直播服务未开通,请检查后重试。'], + ['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PurchaseTime无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ExpireTime无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType仅支持后付费,请检查后重试。'], + ['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterTemplate无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '时间间隔无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ClientToken无效,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态有误,请检查后重试。'], + ], + [ + ['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台数量超限,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '访问拒绝,请检查后重试。'], + ], + [ + ['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数NormType无效,请检查后重试。'], + ['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ], + 408 => [ + ['errorCode' => 'CreateLiveAIStudio.Timeout', 'errorMessage' => '%s, please try again later.', 'description' => '调用CreateLiveAIStudio超时,请稍后重试。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"17D7526C-69AD-5761-8037-071C27358345\\",\\n \\"StudioId\\": \\"369ced1f-c33a-49e5-91da-bdaae3d6c1c2\\"\\n}","type":"json"}]', + 'title' => '创建虚拟演播模版', + 'description' => '>轻量化虚拟演播功能处于公测阶段,单个用户最多创建300个模板。暂时免费使用,公测结束后将正常收费,具体时间另行通知。>', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveAIStudio'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveAIStudio', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DelayConfigList\\": {\\n \\"DelayConfig\\": [\\n {\\n \\"App\\": \\"liveApp****\\",\\n \\"DelayTime\\": \\"60\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"Stream\\": \\"liveStream****\\",\\n \\"TaskTriggerMode\\": \\"PUBLISH_ONLY\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n liveApp****\\n 60\\n example.com\\n liveStream****\\n PUBLISH_ONLY\\n \\n \\n A3136B58-5876-4168-83CA-B562781981A0\\n 1\\n","errorExample":""}]', - 'title' => '查询延播配置列表', - 'description' => '本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', ], 'CreateLiveDelayConfig' => [ 'summary' => '设置直播延播配置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9285,78 +8011,44 @@ 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveBP94ZY', - ], + 'abilityTreeNodes' => ['FEATUREliveBP94ZY'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。支持通配符*,代表该域名下所有的AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '直播流所属应用名称。支持通配符*,代表该域名下所有的AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ 'name' => 'Stream', 'in' => 'query', - 'schema' => [ - 'description' => '直播流流名称。支持通配符*,代表该AppName下所有的StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '直播流流名称。支持通配符*,代表该AppName下所有的StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], [ 'name' => 'DelayTime', 'in' => 'query', - 'schema' => [ - 'description' => '直播流延迟播放的时长,仅支持整数。取值:16~3600。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '60', - ], + 'schema' => ['description' => '直播流延迟播放的时长,仅支持整数。取值:16~3600。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '60'], ], [ 'name' => 'TaskTriggerMode', 'in' => 'query', - 'schema' => [ - 'description' => '任务触发模式,取值:'."\n" - ."\n" - .'- **PUBLISH_ONLY** :仅支持带延播推流参数触发。'."\n" - ."\n" - .'- **CONFIG_ONLY** :仅支持配置触发,推流参数无效。'."\n" - ."\n" - .'- **PUBLISH_CONFIG** :同时支持推流和配置,并且推流参数高优于配置。', - 'type' => 'string', - 'required' => true, - 'example' => 'PUBLISH_ONLY', - ], + 'schema' => ['description' => '任务触发模式,取值:'."\n" + ."\n" + .'- **PUBLISH_ONLY** :仅支持带延播推流参数触发。'."\n" + ."\n" + .'- **CONFIG_ONLY** :仅支持配置触发,推流参数无效。'."\n" + ."\n" + .'- **PUBLISH_CONFIG** :同时支持推流和配置,并且推流参数高优于配置。', 'type' => 'string', 'required' => true, 'example' => 'PUBLISH_ONLY'], ], ], 'responses' => [ @@ -9364,344 +8056,337 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', 'title' => '设置直播延播配置', 'description' => '延播配置区别于协议本身造成的延迟,指直播流开始后经过云端处理,在播放端进行延时播放。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'SetLiveStreamsNotifyUrlConfig' => [ - 'summary' => '设置推流回调配置。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveDelayConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'CreateLiveMessageApp' => [ + 'summary' => '调用CreateLiveMessageApp创建互动消息应用。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107234', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], - 'tenantRelevance' => 'tenant', + 'abilityTreeCode' => '198173', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '您的推流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['description' => '应用名,长度2~16个字符。', 'type' => 'string', 'required' => false, 'example' => 'testApp'], ], [ - 'name' => 'SwitchNotifyUrl', + 'name' => 'AuditType', 'in' => 'query', 'schema' => [ - 'description' => '切流信息回调URL地址', - 'type' => 'string', + 'title' => '安全审核方式:0为不开启安全审核,1为内置安全审核, 2为自定义安全审核', + 'description' => '安全审核方式,取值:'."\n" + .'- 0:默认值,不开启安全审核。'."\n" + .'- 1:内置安全审核。'."\n" + .'- 2:自定义安全审核。', + 'type' => 'integer', + 'format' => 'int32', 'required' => false, - 'example' => 'http://guide.aliyundoc.com/switchnotify', + 'example' => '2', + 'enum' => ['0', '1', '2'], ], ], [ - 'name' => 'NotifyUrl', + 'name' => 'AuditUrl', 'in' => 'query', - 'schema' => [ - 'description' => '直播流信息推送到的URL地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://guide.aliyundoc.com/notify', - ], + 'schema' => ['title' => '如果是自定义安全审核,则需要提供安全审核的地址', 'description' => '如果是自定义安全审核(AuditType=2),则需要提供安全审核的地址。安全审核地址以http://或https://开头,不包含私有IP,不允许带端口号。自定义安全审核内容格式见下文。', 'type' => 'string', 'required' => false, 'example' => 'http://demo.aliyundoc.com/exampleaudit'], ], [ - 'name' => 'ExceptionNotifyUrl', + 'name' => 'EventCallbackUrl', 'in' => 'query', - 'schema' => [ - 'description' => '异常事件回调地址URL。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://4a7e5f08.r37.cpolar.top/live/Rsssd/call-back/streamStart', - ], + 'schema' => ['title' => '用户登录、登出,加入、离开群组等事件回调地址,若为空则不开启事件回调', 'description' => '客户端登录、登出、加入、离开群组等事件回调地址,若为空则不开启事件回调。触发回调接口见[客户端接入](~~2672836~~)。事件回调地址以http://或https://开头,不包含私有IP,不允许带端口号。事件回调格式和回调鉴权逻辑见下文。', 'type' => 'string', 'required' => false, 'example' => 'http://demo.aliyundoc.com/examplecallback'], ], [ - 'name' => 'NotifyReqAuth', + 'name' => 'DataCenter', 'in' => 'query', - 'schema' => [ - 'description' => '是否开启鉴权。取值:'."\n" - ."\n" - .'- **yes**:开启。如果选择取值为**yes**,必须同时设置请求参数NotifyAuthKey。'."\n" - .'- **no**:不开启。'."\n" - ."\n" - .'> 不填默认为**no**。'."\n" - ."\n" - .'鉴权逻辑请参考下文的**推流回调鉴权说明**。', - 'type' => 'string', - 'required' => false, - 'example' => 'yes', - 'default' => 'no', - 'enum' => [ - 'yes', - 'no', - ], - ], + 'schema' => ['description' => '数据中心,枚举值:'."\n" + .'- cn-shanghai:默认值,上海。'."\n" + .'- ap-southeast-1:新加坡。'."\n" + ."\n" + .'> 调用直播互动其他接口时,需要与当前创建直播互动应用的数据中心一致。'."\n", 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], [ - 'name' => 'NotifyAuthKey', + 'name' => 'MsgLifeCycle', 'in' => 'query', - 'schema' => [ - 'description' => '鉴权key。'."\n" - ."\n" - .'> 当请求参数NotifyReqAuth取值为**yes**时,本参数必填。'."\n" - ."\n" - .'取值要求:'."\n" - ."\n" - .'- 16~64个字符。'."\n" - ."\n" - .'- 支持大写字母、小写字母、数字。', - 'type' => 'string', - 'required' => false, - 'example' => '123456', - ], + 'schema' => ['description' => 'App内群组消息的存储时效档位,取值:'."\n" + .'- 0:默认值,存储30天。'."\n" + .'- 1:存储90天。'."\n" + .'- 2:存储180天。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '65EEDBEB-43FE-1E15-976F-3DDD753A****'], + 'AppId' => ['description' => '应用ID,用于后续加入群等流程。', 'type' => 'string', 'example' => 'demo'], + 'AppKey' => ['description' => 'AppKey,用于生成与该AppId相关的各种操作鉴权。', 'type' => 'string', 'example' => '**********************************'], + 'AppSign' => ['description' => '应用签名,互动消息服务SDK需要该信息。', 'type' => 'string', 'example' => '**************************************************************************'], + 'DataCenter' => ['description' => '数据中心。', 'type' => 'string', 'example' => 'cn-shanghai'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], - [ - 'errorCode' => 'CodeGetMainPlaybackDomainError', - 'errorMessage' => 'Failed to obtain the main playback domain name.', - ], - [ - 'errorCode' => 'CodeNotPushDomain', - 'errorMessage' => 'The domain name is not a push domain name.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ['errorCode' => 'ErrorInvalidAppName', 'errorMessage' => '%s.', 'description' => 'AppName无效,请检查后重新尝试。'], + ['errorCode' => 'ErrorTooManyApps', 'errorMessage' => '%s.', 'description' => '每个账号下,最多同时允许创建300个App'], + ['errorCode' => 'ErrorInvalidEventCallbackUrl', 'errorMessage' => '%s.', 'description' => 'EventCallbackUrl无效,请检查后重新尝试。'], + ['errorCode' => 'ErrorInvalidAuditUrl', 'errorMessage' => '%s.', 'description' => 'AuditUrl无效,请检查后重新尝试。'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t4C747C97-7ECD-4C61-8A92-67AD806331FF\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"4C747C97-7ECD-4C61-8A92-67AD806331FF\\"\\n}"}]', - 'title' => '设置推流回调通知地址配置', - 'description' => '- 本接口支持配置推流域名的回调地址及其鉴权信息。'."\n" - ."\n" - .'- 流状态实时信息回调,可以及时通知用户推流或断流操作结果。详细信息,请参见[推流回调格式说明](~~54787~~)。'."\n" + 'title' => '创建互动消息应用', + 'description' => '- 调用互动消息其他接口时,需要与当前创建互动消息应用的数据中心一致。'."\n" + .'- 单个阿里云账号下最多可创建300个互动消息应用。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 回调逻辑说明'."\n" - .'直播推流状态回调中开播(publish)状态回调逻辑:'."\n" - ."\n" - .'RTMP推流在阿里云直播服务收到On Publish消息后2秒内,如果推流端不主动断开,阿里云直播服务就会发推流成功回调。'."\n" - ."\n" - .'假设您有推流域名A和播流域名B,如果您的域名B使用拉流直播(固定拉流和触发回源拉流)需要回调,请在域名A配置推流回调。配置后域名B的拉流回调逻辑与上一条一致,建联后默认2秒无主动断开即认为拉流成功。'."\n" - .'> 建议业务方不仅根据回调通知判断推流、拉流接入正常,同时配合在线流列表查询推流正常后,再下发直播流播放地址给业务方。'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '### 自定义安全审核内容说明:'."\n" + .'- 请求协议:HTTP'."\n" + .'- 请求Method:POST'."\n" + .'- 请求示例:'."\n" + .'```'."\n" + .'{'."\n" + .' "content": "testaudit"'."\n" + .'}'."\n" + .'```'."\n" + .'- 响应示例:'."\n" + .'```'."\n" + .'{'."\n" + .' "pass": true,'."\n" + .' "reason":"****" |pass为true表示通过,否则不通过。reason为不通过的原因'."\n" + .'}'."\n" + .'```'."\n" ."\n" - .'## 推流回调鉴权说明'."\n" - .'推流回调鉴权功能默认关闭,用户可在配置推流回调地址时启用鉴权。启用功能后,鉴权逻辑如下:'."\n" + .'> HTTP status code为200表示成功;非200时,认为服务不可用,降级为不再对该消息进行审核。'."\n" ."\n" - .'1. 阿里云视频直播发起回调请求时在HTTP(S)请求头中带上`ALI-LIVE-TIMESTAMP`和`ALI-LIVE-SIGNATURE`字段,供回调消息接收服务端进行签名认证。其中,`ALI-LIVE-SIGNATURE`的值由如下计算而得:'."\n" - .'`ALI-LIVE-SIGNATURE=MD5SUM(MD5CONTENT)`'."\n" - .'`MD5CONTENT=<回调域名>||<鉴权KEY>`'."\n" + .'### 事件回调'."\n" + .' http/https post, body为以下标例格式内容的"json utf-8 string bytes"。事件回调示例如下:'."\n" + .'```'."\n" + .'{'."\n" + .' "appid":"demo",'."\n" + .' "eves":[{'."\n" + .' "uid":"uid1",'."\n" + .' "sid":"sessionid",'."\n" + .' "events":[{'."\n" + .' "e": 3, |事件类型,枚举。1:登录,2:登出,3:joingroup,4:leavegroup,5:客户端断网重连了'."\n" + .' "r": 1, |登出原因,其他事件无该属性,枚举。1:正常调用,3:超时离开,4:在其他端登录'."\n" + .' "g": "testgroup", |群组ID,入离群有该值;登录、登出等事件回调无该属性'."\n" + .' "gs":["testgroupid"] | 群组ID列表,客户端断网重连时,客户端加入的群组信息,其他事件无该属性'."\n" + .' }]'."\n" + .' }]'."\n" + .'}'."\n" + .'```'."\n" ."\n" - .'2. 回调消息接收服务端接收回调消息时,将回调域名、ALI-LIVE-TIMESTAMP取值、鉴权Key进行拼接后计算MD5值,得到加密字符串,再将计算出的加密字符串与视频直播发起的HTTP(S)请求头中的ALI-LIVE-SIGNATURE字段值进行对比。如果不一致,则请求非法。'."\n" + .'> HTTP status code为200表示成功;其他表示失败,会重试发送。'."\n" ."\n" - .'## 特殊错误码'."\n" - .'|错误代码 |描述 |HTTP 状态码 |语义 |'."\n" - .'|------------|--------|---------|------|'."\n" - .'|InternalError |The request processing has failed due to some unknown error. |500 |后台发生未知错误。 |'."\n" - .'|InvalidDomain.NotFound | The domain provided does not exist in our records. |404 |当前账户下未查到域名。 |'."\n" - .'|IllegalOperation |Illegal domain operate is not permitted. |403 |不支持当前操作,如:非直播类域名。 |'."\n" - .'|InvalidNotifyUrl.Malformed |Specified parameter NotifyUrl is not valid. |400 |回调地址不是一个合法的HTTP地址。 |'."\n" - .'|InvalidNotifyUrl.Unsafe |Specified NotifyUrl is not safe. |400 |非安全的NotifyUrl值。 |'."\n", - ], - 'DescribeLiveStreamsNotifyUrlConfig' => [ - 'summary' => '查询推流回调配置。', - 'methods' => [ - 'post', - 'get', + .'### 回调鉴权说明'."\n" + .'服务发起请求时在HTTP(S)请求头中包含Ali-Live-Timestamp和Ali-Live-Signature字段,供回调消息接收服务端进行签名认证。Ali-Live-Signature值计算方式为:Ali-Live-Signature=sha256(CONTENT)。其中,CONTENT=回调域名+Ali-Live-Timestamp取值+鉴权Key;回调域名指配置回调URL的域名,鉴权Key指用户创建AppId时生成的AppKey。', + 'changeSet' => [ + ['createdAt' => '2025-02-26T03:17:26.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2025-01-22T10:56:11.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-03-13T01:41:50.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-01-31T03:42:38.000Z', 'description' => '错误码发生变更、响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveMessageApp'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"65EEDBEB-43FE-1E15-976F-3DDD753A****\\",\\n \\"AppId\\": \\"demo\\",\\n \\"AppKey\\": \\"**********************************\\",\\n \\"AppSign\\": \\"**************************************************************************\\",\\n \\"DataCenter\\": \\"cn-shanghai\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 65EEDBEB-43FE-1E15-976F-3DDD753A****\\n demo\\n **********************************\\n **************************************************************************\\n","errorExample":""}]', + ], + 'CreateLiveMessageGroup' => [ + 'summary' => '调用CreateLiveMessageGroup创建互动消息群组。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '107102', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', + 'in' => 'query', + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => ['description' => '要创建的群组ID,业务应保证群组ID唯一,由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => ['title' => '群组名', 'description' => '群组名,长度不超过128字节。', 'type' => 'string', 'required' => false, 'example' => 'mytestgroup'], + ], + [ + 'name' => 'GroupInfo', + 'in' => 'query', + 'schema' => ['title' => '群组扩展信息', 'description' => '群组扩展信息,长度不超过32KB。', 'type' => 'string', 'required' => false, 'example' => 'testgroupinfo'], + ], + [ + 'name' => 'Administrators', 'in' => 'query', + 'style' => 'simple', 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', + 'title' => '管理员用户ID列表,不能超过3个', + 'description' => '管理员用户ID列表。', + 'type' => 'array', + 'items' => ['description' => '管理员用户ID,由大小写字母、数字组成,长度不超过64字节。多个用半角逗号(,)隔开,最多不超过3个。', 'type' => 'string', 'required' => false, 'example' => 'uid1'], 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'maxItems' => 3, ], ], [ - 'name' => 'DomainName', + 'name' => 'CreatorId', 'in' => 'query', - 'schema' => [ - 'description' => '您的推流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['title' => '群创建者ID', 'description' => '群组创建者ID,由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'required' => false, 'example' => 'uid1'], + ], + [ + 'name' => 'DataCenter', + 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2593195~~)中的数据中心一致, 当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', - ], - 'LiveStreamsNotifyConfig' => [ - 'description' => '回调配置。', - 'type' => 'object', - 'properties' => [ - 'DomainName' => [ - 'description' => '您的推流域名。', - 'type' => 'string', - 'example' => 'demo.aliyundoc.com', - ], - 'NotifyUrl' => [ - 'description' => '回调地址。', - 'type' => 'string', - 'example' => 'http://guide.aliyundoc.com/notify', - ], - 'ExceptionNotifyUrl' => [ - 'description' => '异常事件回调URL。', - 'type' => 'string', - 'example' => 'https://4a7e5f08.r37.cpolar.top/live/Record/call-back/streamException', - ], - 'NotifyReqAuth' => [ - 'description' => '是否开启鉴权。取值:'."\n" - ."\n" - .'- **yes**。'."\n" - .'- **no**。', - 'type' => 'string', - 'example' => 'yes', - ], - 'NotifyAuthKey' => [ - 'description' => '鉴权Key。', - 'type' => 'string', - 'example' => '123456', - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'A8C7B033-B339-1A58-B0E0-7B9197BA****'], + 'GroupId' => ['description' => '创建的群组ID。', 'type' => 'string', 'example' => 'grouptest'], + 'AlreadyExists' => ['title' => '是否已经存在', 'description' => '是否已经存在。', 'type' => 'boolean', 'example' => 'true'], + 'AlreadyDelete' => ['description' => '是否已删除。如果已存在,且被删除了,那么群组ID是处于不可用状态,建议重新创建。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ['errorCode' => 'ErrorTooManyGroups', 'errorMessage' => '%s.', 'description' => '每个AppId,最多同时允许创建5000个群组'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\",\\n \\"LiveStreamsNotifyConfig\\": {\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"NotifyUrl\\": \\"http://guide.aliyundoc.com/notify\\",\\n \\"ExceptionNotifyUrl\\": \\"https://4a7e5f08.r37.cpolar.top/live/Record/call-back/streamException\\",\\n \\"NotifyReqAuth\\": \\"yes\\",\\n \\"NotifyAuthKey\\": \\"123456\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 40A4F36D-A7CC-473A-88E7-154F92242566\\n \\n yes\\n http://guide.aliyundoc.com/notify\\n 123456\\n demo.aliyundoc.com\\n \\n","errorExample":""}]', - 'title' => '查询直播推流回调配置', - 'description' => '调用本接口可以查询回调地址和回调鉴权信息。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建直播互动群组', + 'description' => '- 调用本接口前,您必须已经调用[CreateLiveMessageApp](~~2848162~~)创建互动消息应用。'."\n" + .'- 单个互动消息应用下最多可创建5000个互动消息群组。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" - .'|------------|--------|---------|------|'."\n" - .'| InternalError | The request processing has failed due to some unknown error. | 500 | 后台发生未知错误。 |'."\n" - .'| InvalidDomain.NotFound | The domain provided does not exist in our records. | 404 | 当前账户下未查到域名。 |'."\n" - .'| IllegalOperation | Illegal domain operate is not permitted. | 403 | 不支持当前操作,如:非直播类域名。 |'."\n" - .'| InvalidConfig.NotFound| Config does not exist.| 404| 当前域名下未找到回调配置。|', - ], - 'DeleteLiveStreamsNotifyUrlConfig' => [ - 'summary' => '删除推流回调配置。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-01-31T03:35:28.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A8C7B033-B339-1A58-B0E0-7B9197BA****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"AlreadyExists\\": true,\\n \\"AlreadyDelete\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n A8C7B033-B339-1A58-B0E0-7B9197BA****\\n grouptest\\n true\\n true\\n","errorExample":""}]', + ], + 'CreateLivePrivateLine' => [ + 'summary' => '创建全球加速实例并绑定到直播链路。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9709,404 +8394,420 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '应用名称。', 'type' => 'string', 'required' => true, 'example' => 'live'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流名称。', 'type' => 'string', 'required' => true, 'example' => 'testStream'], + ], + [ + 'name' => 'VideoCenter', + 'in' => 'query', + 'schema' => ['description' => '直播中心,取值:cn-beijing、cn-shanghai、cn-shenzhen、cn-qingdao、ap-northeast-1、ap-southeast-5、eu-central-1、ap-southeast-1、ap-south-1,分别表示位于北京、上海、深圳、青岛、日本、印尼、德国、新加坡的直播中心。', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai'], + ], + [ + 'name' => 'AccelerationType', + 'in' => 'query', 'schema' => [ - 'description' => '地域ID。', + 'description' => '加速类型,取值:'."\n" + ."\n" + .'- play:播流加速。'."\n" + .'- publish:推流加速。', 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'required' => true, + 'example' => 'play', + 'enum' => ['play', 'publish'], ], ], [ - 'name' => 'DomainName', + 'name' => 'AccelerationArea', + 'in' => 'query', + 'schema' => ['description' => '加速通道。', 'type' => 'string', 'required' => true, 'example' => 'ap-southeast-1'], + ], + [ + 'name' => 'Reuse', 'in' => 'query', 'schema' => [ - 'description' => '推流域名。', + 'description' => '是否复用已有加速通道,取值:'."\n" + .'- yes:复用已有加速通道。'."\n" + .'- no:新建加速通道。', 'type' => 'string', 'required' => true, - 'example' => 'demo.aliyundoc.com', + 'example' => 'no', + 'enum' => ['yes', 'no'], ], ], + [ + 'name' => 'MaxBandwidth', + 'in' => 'query', + 'schema' => ['description' => '加速带宽,单位:Mbps。当Reuse为no时必填。', 'type' => 'string', 'required' => false, 'example' => '200'], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '复用的加速通道。当Reuse为yes时必填。', 'type' => 'string', 'required' => false, 'example' => 'ga-bp1iovsdpf01ym9su****'], + ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7908F2FF-44F8-120F-9FD6-85AE4B6C****'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t4C747C97-7ECD-4C61-8A92-67AD806331FF\\n","errorExample":"{\\n \\"RequestId\\":\\"4C747C97-7ECD-4C61-8A92-67AD806331FF\\"\\n}"}]', - 'title' => '删除直播推流回调配置', - 'description' => '先获取推流域名,再调用本接口删除推流回调配置。'."\n" - ."\n\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'NoSpecialConfiguration', 'errorMessage' => 'no special configuration for acceleration_area.', 'description' => ''], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ['errorCode' => 'HasNoPermission', 'errorMessage' => 'You do not have permission to create accelerator.', 'description' => ''], + ['errorCode' => 'PostPayNotOpen', 'errorMessage' => 'The Accelerator PostPay service is not open.', 'description' => ''], + ['errorCode' => 'TryAgain', 'errorMessage' => 'Create SLR first and please try again.', 'description' => ''], + ['errorCode' => 'HasNoPermisionToCreateSLR', 'errorMessage' => 'You do not have ram:CreateServiceLinkedRole to create SLR.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], + ], + ], + 'title' => '创建全球加速实例并绑定到直播链路', + 'description' => '- 本接口用于创建全球加速实例并绑定到直播链路,需要精确到流粒度,并指明加速的起点和终点。'."\n" + ."\n" + .'- AppName与StreamName的名称与播流地址中的AppName与StreamName的名称对应模板才能生效。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveStreamsNotifyRecords' => [ - 'summary' => '查询流回调记录。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLivePrivateLine'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLivePrivateLine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4B6C****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', + ], + 'CreateLivePullToPush' => [ + 'summary' => '调用CreateLivePullToPush创建拉流转推任务。', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', - ], - 'tenantRelevance' => 'tenant', + 'abilityTreeCode' => '240052', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-beijing', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'Region', 'in' => 'query', 'schema' => [ - 'description' => '推流域名。', + 'description' => '指定任务启动所在区域,取值:'."\n" + ."\n" + .'- ap-southeast-1(新加坡)'."\n" + .'- ap-southeast-5(印度尼西亚)'."\n" + .'- cn-beijing(北京)'."\n" + .'- cn-shanghai(上海)'."\n" + .'- cn-shenzhen(深圳)', 'type' => 'string', 'required' => true, - 'example' => 'push.example1.com', + 'enumValueTitles' => ['cn-shenzhen' => '深圳', 'cn-qingdao' => '青岛', 'preregion' => '预发', 'cn-beijing' => '北京', 'cn-shanghai' => '上海', 'ap-southeast-1' => '新加坡', 'eu-central-1' => '德国-法兰克福', 'ap-northeast-1' => '日本-东京', 'ap-southeast-5' => '印度尼西亚', 'me-central-1' => '沙特-利雅得'], + 'example' => 'cn-shanghai', + 'enum' => ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-5', 'eu-central-1', 'me-central-1', 'cn-beijing', 'cn-shanghai', 'cn-shenzhen', 'cn-qingdao', 'preregion'], ], ], [ - 'name' => 'AppName', + 'name' => 'TaskName', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => false, - 'example' => 'app', - ], + 'schema' => ['description' => '任务名称,用于支持模糊查询,默认值为""。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ - 'name' => 'StreamName', + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '任务开始时间。'."\n" + ."\n" + .'> - 格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2024-08-26T10:30:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '任务结束时间。'."\n" + ."\n" + .'> - 格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'> - EndTime必须大于StartTime。'."\n" + .'> - EndTime必须大于当前时间。', 'type' => 'string', 'required' => true, 'example' => '2024-08-27T14:30:00Z'], + ], + [ + 'name' => 'SourceType', 'in' => 'query', 'schema' => [ - 'description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', + 'description' => '源流类型,枚举值:'."\n" + ."\n" + .'- live,直播流。'."\n" + .'- vod,阿里云视频点播资源。'."\n" + .'- url,第三方视频文件资源。', 'type' => 'string', - 'required' => false, - 'example' => 'stream', + 'required' => true, + 'enumValueTitles' => ['vod' => '阿里云视频点播资源', 'live' => '直播流', 'url' => '第三方视频文件资源'], + 'example' => 'live', + 'enum' => ['live', 'vod', 'url'], ], ], [ - 'name' => 'Status', + 'name' => 'SourceProtocol', 'in' => 'query', 'schema' => [ - 'description' => '回调是否成功。'."\n" - .'- success:成功。'."\n" - .'- failed:失败。', + 'description' => '源流协议名。'."\n" + ."\n" + .'取值范围'."\n" + .'- rtmp'."\n" + .'- srt'."\n" + .'- http-flv'."\n" + .'- hls'."\n" + .'> 此参数仅当**sourcetype参数取值为live时必填**,取值为vod、url时无效。', 'type' => 'string', 'required' => false, - 'example' => 'success', - 'enum' => [ - 'success', - 'failed', - ], + 'example' => 'rtmp', + 'enum' => [], ], ], [ - 'name' => 'StartTime', + 'name' => 'SourceUrls', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + 'description' => '源流URL地址列表。'."\n" ."\n" - .'> 开始时间必须在近7天内。', - 'type' => 'string', + .'> - live类型仅支持填写1个完整直播播放URL。'."\n" + .'> - vod、url类型可填写最多30个。'."\n" + .'> - live类型支持:rtmp、srt、http-flv协议。'."\n" + .'> - vod类型填写阿里云视频点播媒资ID。'."\n" + .'> - url类型支持:mp4、http-flv协议。', + 'type' => 'array', + 'items' => ['description' => '源流URL地址。'."\n" + ."\n" + .'> - live类型仅支持填写1个完整直播播放URL。'."\n" + .'> - vod、url类型可填写最多30个。'."\n" + .'> - live类型支持:rtmp、srt、http-flv协议。'."\n" + .'> - vod类型填写阿里云视频点播媒资ID。'."\n" + .'> - url类型支持:mp4、http-flv协议。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434'], 'required' => true, - 'example' => '2017-12-10T08:00:00Z', ], ], [ - 'name' => 'EndTime', + 'name' => 'DstUrl', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。结束时间需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-10T09:00:00Z', - ], + 'schema' => ['description' => '推流目标URL地址。'."\n" + ."\n" + .'> - 支持rtmp协议。'."\n" + .'> - 最大长度为2000个字符。', 'type' => 'string', 'required' => true, 'example' => 'rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434'], ], [ - 'name' => 'PageSize', + 'name' => 'RepeatNumber', 'in' => 'query', 'schema' => [ - 'description' => '分页大小,默认20,最大500。取值:1~500之前的任意整数。', + 'description' => '播放完后重复继续播放的次数。取值:'."\n" + ."\n" + .'- 0(默认值):不重复播放。'."\n" + .'- -1:一直循环重复。'."\n" + .'- 其他正整数:播放完后重复继续播放的次数。'."\n" + ."\n" + .'> 此参数仅针对点播或第三方视频流。', 'type' => 'integer', 'format' => 'int32', 'required' => false, - 'example' => '20', - 'default' => '20', + 'example' => '0', + 'default' => '0', + 'enum' => [], ], ], [ - 'name' => 'PageNumber', + 'name' => 'FileIndex', 'in' => 'query', - 'schema' => [ - 'description' => '分页的页数,默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '文件索引,从第n个文件开始播放起。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'Offset', + 'in' => 'query', + 'schema' => ['description' => '启动偏移,视频文件起始偏移值。单位:秒。取值:大于0。'."\n" + ."\n" + .'> - 表示从相对于首帧的偏差时间作为开始读取的位置(指第一个视频)。'."\n" + .'> - 此参数仅针对点播或第三方视频流。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => ['description' => 'HTTP回调地址,默认为空。'."\n" + ."\n" + .'> - 接收任务相关回调的地址。'."\n" + .'> - 最大长度为 2000 个字符。'."\n" + .'> - 不指定本参数则不会回调相关任务事件。', 'type' => 'string', 'required' => false, 'example' => 'https://callback*****.com'], + ], + [ + 'name' => 'RetryInterval', + 'in' => 'query', + 'schema' => ['description' => '重试间隔,单位秒,取值区间[60,300],默认60秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '300', 'minimum' => '60', 'example' => '60', 'default' => '60'], + ], + [ + 'name' => 'RetryCount', + 'in' => 'query', + 'schema' => ['description' => '重试次数,默认值为3。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3', 'default' => '3'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '推流回调记录。', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'NotifyRecordsInfo' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LiveStreamNotifyRecordsInfo' => [ - 'description' => '推流回调记录。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'NotifyType' => [ - 'description' => '回调类型。'."\n" - .'- publish:表示推流事件。'."\n" - .'- publish_done:表示断流事件。', - 'type' => 'string', - 'example' => 'publish_done', - ], - 'Description' => [ - 'description' => '结果描述,为success时成功,失败则返回错误信息。', - 'type' => 'string', - 'example' => 'success', - ], - 'StreamName' => [ - 'description' => '直播流名称。', - 'type' => 'string', - 'example' => 'stream', - ], - 'NotifyTime' => [ - 'description' => '回调发生时间(UTC时间)。', - 'type' => 'string', - 'example' => '2022-10-19T19:09:28Z', - ], - 'DomainName' => [ - 'description' => '推流域名。', - 'type' => 'string', - 'example' => 'push.example1.com', - ], - 'NotifyContent' => [ - 'description' => '回调的具体内容。', - 'type' => 'string', - 'example' => '{\\"action\\":\\"publish_done\\",\\"app\\":\\"push.example1.com\\"}', - ], - 'NotifyUrl' => [ - 'description' => '回调URL。', - 'type' => 'string', - 'example' => 'http://xx.xx.xx.xx/callbacks', - ], - 'NotifyResult' => [ - 'description' => '回调结果。'."\n" - .'- success:成功。'."\n" - .'- failed:失败。', - 'type' => 'string', - 'example' => 'success', - ], - 'AppName' => [ - 'description' => '直播流所属应用名称。', - 'type' => 'string', - 'example' => 'app', - ], - 'NotifyResponse' => [ - 'description' => '用户端接受回调后返回的响应结果。', - 'type' => 'string', - 'example' => '{"Code":0,"Msg":"Success"}', - ], - 'NotifyHeader' => [ - 'description' => '回调请求的请求头。', - 'type' => 'string', - 'example' => 'Host: 123456.cn-shanghai.example1.com'."\n" - .'User-Agent: Go-http-client/1.1'."\n" - .'Accept-Encoding: gzip', - ], - ], - ], - ], - ], - ], - 'PageNum' => [ - 'description' => '分页页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F675E4B4-125D-1533-901B-11A724644285', - ], - 'TotalNum' => [ - 'description' => '符合条件的总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'TotalPage' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68*****'], + 'RetCode' => ['description' => '返回码。'."\n" + ."\n" + .'> - 正常情况返回“0”。'."\n" + .'> - 异常情况请参考下文错误码列表。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Description' => ['description' => '错误描述。', 'type' => 'string', 'example' => 'OK'], + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'fd245384-4067-4f91-9d75-9666a6bc9****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified parameter StartTime is not valid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified parameter EndTime is not valid.', - ], - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified EndTime does not match the specified StartTime.', - ], - [ - 'errorCode' => 'Duration.Exceed', - 'errorMessage' => 'StartTime needs to be within the last 7 days.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'InvalidParam.CodeIllegalDuration', 'errorMessage' => '%s.', 'description' => '开始时间应该小于结束时间。'], + ['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => '这个aluid没有直播域名'], + ['errorCode' => 'CodeNotEnoughResource', 'errorMessage' => 'Exceeded configuration limits or insufficient resources.', 'description' => '超过配置限制或没有充足资源'], + ['errorCode' => 'CodeConfigAlreadyExists', 'errorMessage' => 'Code Config Already Exists', 'description' => '配置已经存在'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NotifyRecordsInfo\\": {\\n \\"LiveStreamNotifyRecordsInfo\\": [\\n {\\n \\"NotifyType\\": \\"publish_done\\",\\n \\"Description\\": \\"success\\",\\n \\"StreamName\\": \\"stream\\",\\n \\"NotifyTime\\": \\"2022-10-19T19:09:28Z\\",\\n \\"DomainName\\": \\"push.example1.com\\",\\n \\"NotifyContent\\": \\"{\\\\\\\\\\\\\\"action\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"publish_done\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"app\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"push.example1.com\\\\\\\\\\\\\\"}\\",\\n \\"NotifyUrl\\": \\"http://xx.xx.xx.xx/callbacks\\",\\n \\"NotifyResult\\": \\"success\\",\\n \\"AppName\\": \\"app\\",\\n \\"NotifyResponse\\": \\"{\\\\\\"Code\\\\\\":0,\\\\\\"Msg\\\\\\":\\\\\\"Success\\\\\\"}\\",\\n \\"NotifyHeader\\": \\"Host: 123456.cn-shanghai.example1.com\\\\nUser-Agent: Go-http-client/1.1\\\\nAccept-Encoding: gzip\\"\\n }\\n ]\\n },\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"F675E4B4-125D-1533-901B-11A724644285\\",\\n \\"TotalNum\\": 20,\\n \\"TotalPage\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n \\n app\\n success\\n push.example1.com\\n {\\\\\\"action\\\\\\":\\\\\\"publish_done\\\\\\",\\\\\\"app\\\\\\":\\\\\\"push.example1.com\\\\\\"}\\n success\\n 2022-10-19T19:09:28Z\\n publish_done\\n http://xx.xx.xx.xx/callbacks\\n stream\\n \\n 1\\n 20\\n F675E4B4-125D-1533-901B-11A724644285\\n 20\\n 20\\n","errorExample":""}]', - 'title' => '查询流回调记录', - 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteLiveStreamBlock' => [ - 'summary' => '调用DeleteLiveStreamBlock删除直播流粒度封禁。', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68*****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\",\\n \\"TaskId\\": \\"fd245384-4067-4f91-9d75-9666a6bc9****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68*****\\n 0\\n OK\\n fd245384-4067-4f91-9d75-9666a6bc9****\\n","errorExample":""}]', + 'title' => '创建拉流转推任务', + 'description' => '>拉流转推属于收费功能,于 2025年12月05日 00:00 起正式计费。>'."\n" + .'- 费用详情请参见[拉流转推费用](~~2997901~~)。'."\n" + .'- 调用本接口创建拉流转推任务。'."\n" + .'- 支持创建直播拉流任务,也支持创建点播拉流任务。'."\n" + .'- 任务创建后,到了设置的开始时间,会真正开始运行,到了设置的结束时间,会自动停止并删除清理。'."\n" + .'- 任务中设置的推流目标地址需要确保未被其他任务使用,不然会因为多个任务同时转推相同地址导致推流失败。'."\n" + .'- 拉流转推回调事件包括拉流转推任务运行状态变化回调和拉流转推任务已退出回调。更多信息,请参见[拉流转推事件回调](~~2846768~~)。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-05-06T02:10:32.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLivePullToPush'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLivePullToPush', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateLiveRealTimeLogDelivery' => [ + 'summary' => '调用CreateLiveRealTimeLogDelivery创建域名实时日志投递。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveOLG5VH', - ], + 'abilityTreeNodes' => ['FEATURElive066BXV'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'Project', 'in' => 'query', - 'schema' => [ - 'description' => '播放域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '实时投递SLS的ProjectName。', 'type' => 'string', 'required' => true, 'example' => 'test_project'], ], [ - 'name' => 'AppName', + 'name' => 'Logstore', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '实时投递SLS的LogStoreName。', 'type' => 'string', 'required' => true, 'example' => 'test_logstore'], ], [ - 'name' => 'StreamName', + 'name' => 'Region', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '实时投递SLS的Region。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -10114,59 +8815,60 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Description' => [ - 'description' => '成功:ok,失败:失败详情。', - 'type' => 'string', - 'example' => 'ok', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B908FF89-B03C-4831-B55B-48D2A7DA0A68', - ], - 'Status' => [ - 'description' => '任务状态。取值:'."\n" - .'- ok:成功。'."\n" - .'- fail:失败。'."\n" - ."\n" - .'> 只要有一条任务创建失败即为失败。', - 'type' => 'string', - 'example' => 'ok', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + 404 => [ + ['errorCode' => 'LogstoreNotExist', 'errorMessage' => 'Logstore does not exist', 'description' => ''], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"ok\\",\\n \\"RequestId\\": \\"B908FF89-B03C-4831-B55B-48D2A7DA0A68\\",\\n \\"Status\\": \\"ok\\"\\n}","type":"json"}]', - 'title' => '删除直播流粒度封禁', - 'description' => '调用本接口可删除直播流粒度的封禁配置。'."\n" + 'title' => '创建域名实时日志投递', + 'description' => '先获取播流域名,再调用本接口创建域名实时日志投递。'."\n" + ."\n" + .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)配置。'."\n" + .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)配置。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'SetLiveStreamBlock' => [ - 'summary' => '调用SetLiveStreamBlock设置直播流粒度封禁。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '## 特定错误码'."\n" + ."\n" + .'| HttpCode| 错误码 | 描述 |'."\n" + .'|--------------------------|-------------------------------------------|-----------|'."\n" + .'| 403| Unauthorized | 没有开启实时投递授权。 |'."\n" + .'| 404| LogstoreNotExist | 未找到对应Logstore信息。 |'."\n", + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveRealTimeLogDelivery'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveRealTimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F32C57AA-7BF8-49AE-A2CC-9F42390F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n F32C57AA-7BF8-49AE-A2CC-9F42390F5A19\\r\\n","errorExample":""}]', + ], + 'CreateLiveStreamMonitor' => [ + 'summary' => '创建监播室。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10174,88 +8876,70 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'high', + 'operationType' => 'create', + 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveOLG5VH', - ], + 'abilityTreeCode' => '106895', + 'abilityTreeNodes' => ['FEATUREliveSM955S'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'MonitorName', 'in' => 'query', - 'schema' => [ - 'description' => '播放域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '监播名称。', 'type' => 'string', 'required' => true, 'example' => 'liveMonitor****'], ], [ - 'name' => 'AppName', + 'name' => 'OutputTemplate', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '监播输出模版。类型取值:'."\n" + ."\n" + .'- **lp_ld**:流畅。'."\n" + .'- **lp_sd**:标清。'."\n" + .'- **lp_hd**:高清。'."\n" + .'- **lp_ud**:超清。', 'type' => 'string', 'required' => true, 'example' => 'lp_ud'], ], [ - 'name' => 'StreamName', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '监播域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'BlockType', + 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => '封禁方式,blacklist:黑名单,whitelist:白名单。', - 'type' => 'string', - 'required' => true, - 'example' => 'blacklist', - 'enum' => [ - 'blacklist', - 'whitelist', - ], - ], + 'schema' => ['description' => '监播输出流的App。'."\n" + .'名称可自取,不传默认用**monitor**作为AppName名称。', 'type' => 'string', 'required' => false, 'example' => 'monitor****'], ], [ - 'name' => 'LocationList', + 'name' => 'Stream', 'in' => 'query', - 'schema' => [ - 'description' => '封禁区域,如CN,AS多个以逗号隔开。', - 'type' => 'string', - 'required' => true, - 'example' => 'CN', - ], + 'schema' => ['description' => '监播输出流名,不传则系统随机生成。', 'type' => 'string', 'required' => false, 'example' => 'monitorStream****'], ], [ - 'name' => 'ReleaseTime', + 'name' => 'InputList', 'in' => 'query', - 'schema' => [ - 'description' => '封禁结束时间,UTC格式,不填默认封禁7天。', - 'type' => 'string', - 'required' => false, - 'example' => '2016-06-29T19:00:00Z', - ], + 'schema' => ['description' => '监控流输入列表。具体内容,请参考下表**InputConfig**。', 'type' => 'string', 'required' => true, 'example' => 'InputConfig'], + ], + [ + 'name' => 'MonitorConfig', + 'in' => 'query', + 'schema' => ['description' => '监播告警阈值设置,JSON格式,具体内容,请参考下表MonitorConfig。', 'type' => 'string', 'required' => false, 'example' => '"{\\"fpsLowThres\\": 0.6,\\"brLowThres\\": 1.1,\\"eofDurationThresSec\\": 10}"'], + ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => ['description' => '支持输入HTTP(S)格式的回调地址。', 'type' => 'string', 'required' => false, 'example' => 'http://guide.aliyundoc.com/notify'], + ], + [ + 'name' => 'DingTalkWebHookUrl', + 'in' => 'query', + 'schema' => ['description' => '监播钉钉告警通过钉群机器人进行告警信息的通知,请先设置钉群机器人,并在此输入机器人的HTTP(S)地址。详情请参见[自定义机器人接入](https://open.dingtalk.com/document/robots/custom-robot-access)。'."\n" + ."\n" + .'> 配置钉群机器人自定义关键词为“告警”,否则消息无法接收。', 'type' => 'string', 'required' => false, 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****'], ], ], 'responses' => [ @@ -10263,156 +8947,150 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Description' => [ - 'description' => '结果描述。'."\n" - .'- 成功:ok。'."\n" - .'- 失败:失败详情。', - 'type' => 'string', - 'example' => 'ok', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3be7ade8-d907-483c-b24a-0dad4595beaf', - ], - 'Status' => [ - 'description' => '任务状态。取值:'."\n" - .'- ok:成功。'."\n" - .'- fail:失败。'."\n" - ."\n" - .'> 只要有一条任务创建失败即为失败。', - 'type' => 'string', - 'example' => 'ok', - ], + 'MonitorId' => ['description' => '监播室ID。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidReleaseTime.Malformed', - 'errorMessage' => 'Specified ReleaseTime is malformed.', - ], - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'StreamMonitorExist', 'errorMessage' => '%s, please check and try again later.', 'description' => '监播室已存在,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"ok\\",\\n \\"RequestId\\": \\"3be7ade8-d907-483c-b24a-0dad4595beaf\\",\\n \\"Status\\": \\"ok\\"\\n}","type":"json"}]', - 'title' => '设置直播流粒度封禁', - 'description' => '一个域名最多支持配置200条直播流区域封禁规则,直播流区域封禁中如果出现重复的AppName和StreamName对应的规则,则以最近的更新时间生效。'."\n" - .'### QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeStreamLocationBlock' => [ - 'summary' => '调用DescribeStreamLocationBlock查询直播流粒度封禁信息。', - 'methods' => [ - 'post', - 'get', + 'title' => '创建监播室', + 'description' => '调用本接口创建监播室,调用时请保证参数设置符合要求。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '**InputConfig**'."\n" + .'|名称|类型|描述|示例值|'."\n" + .'|----|----|------|-----|'."\n" + .'|Index|Integer|索引,前端使用。|1|'."\n" + .'|LayoutId|Integer|布局ID,必须从1开始。|1|'."\n" + .'|StreamName|String|监播流的显示名称。|monitorStream****|'."\n" + .'|InputUrl|String|输入流地址。|demo.aliyundoc.com|'."\n" + .'|LayoutConfig|LayoutConfig|布局信息。|参考下表**LayoutConfig**|'."\n" + .'|PlayConfig|PlayConfig|播放配置。|参考下表**PlayConfig**|'."\n" + ."\n" + .'**LayoutConfig**'."\n" + .'|名称|类型|描述|示例值|'."\n" + .'|----|----|------|-----|'."\n" + .'|FillMode|String|填充类型,前端填none即可。|none|'."\n" + .'|PositionRefer|String|设置元素的position参考坐标值,取值:topLeft(左上),topRight(右上),bottomLeft(左下),bottomRight(右下)。|topLeft|'."\n" + .'|PositionNormalized|Float|表示该Layer元素填充区位置归一化值[x,y]。
x和y的取值范围为0~1。
例如[0.1,0.1] 代表左上角水平偏移10%, 垂直偏移10%。|[0.1, 0.1]|'."\n" + .'|SizeNormalized|Float|表示该Layer元素需要填充的尺寸大小[w,h]。
w和h取值范围为0~1,宽高都是进行了归一化计算。
例如 [0.2,0.3]代表水平占比20%,垂直占比30%。|[0.2, 0.3]|'."\n" + ."\n" + .'**PlayConfig**'."\n" + .'|名称|类型|描述|示例值|'."\n" + .'|----|----|------|-----|'."\n" + .'|VolumeRate|Float|音量。取值0~1之间,精确小数点后2位。|0.50|'."\n" + ."\n" + .'**MonitorConfig**'."\n" + .'|名称|类型|描述|示例值|'."\n" + .'|----|----|------|-----|'."\n" + .'|fpsLowThres|Float|视频帧率告警阈值。此阈值为比例系数,取值范围(0.0,1.0],默认值0.7。当监播流的视频帧率<帧率告警阈值*直播流原始帧率,则会报警。|0.7|'."\n" + .'|brHighThres|Float|音视频码率告警阈值。此阈值为比例系数,取值范围(0.0,100],默认值1.0。当监播流的音视频码率>码率告警阈值*直播流原始码率,则会报警。|1.0|'."\n" + .'|eofDurationThresSec|Float|断流时长检测阈值,表示当前监播流断流超过多少时间(单位:秒)才会报警。取值范围(0,65535],默认值0。- 由于断流后连接不断,系统会有内部收包超时时间(5秒)来判断断流。因此如果设置此参数时间<=5s,实际检测时间仍为5s;如果设置该项时间>5s,实际检测时间为设置值,只是前5s为内部收包超时,剩余时间为持续等待流没有恢复时间。 - 如果断流后没达到此超时时间流自动恢复,则不会报警。如果断流未超时,此时修改了监播地址,对前流也不会继续检测超时和报警。|10|'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-04T07:12:49.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveStreamMonitor'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveStreamMonitor', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MonitorId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\n445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + ], + 'CreateLiveStreamRecordIndexFiles' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '106896', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播放域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '播流所属应用名称。AppName名称与推流地址中的AppName名称对应,模板才能生效。若不限制AppName可填*,即可匹配所有AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'stream', - ], + 'schema' => ['description' => '播流名称。StreamName名称与推流地址中的StreamName名称对应,模板才能生效。若不限制StreamName可填*,即可匹配所有StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], [ - 'name' => 'BlockType', + 'name' => 'OssEndpoint', 'in' => 'query', - 'schema' => [ - 'description' => '封禁方式。'."\n" - .'- blacklist:黑名单。'."\n" - .'- whitelist:白名单。', - 'type' => 'string', - 'required' => false, - 'example' => 'blacklist', - ], + 'schema' => ['description' => 'OSS存储Endpoint名称。', 'type' => 'string', 'required' => true, 'example' => 'cn-oss-****.aliyuncs.com'], ], [ - 'name' => 'PageSize', + 'name' => 'OssBucket', 'in' => 'query', - 'schema' => [ - 'description' => '每页大小,最大100,取值:1~100之间的任意整数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - 'default' => '20', - ], + 'schema' => ['description' => 'OSS存储Bucket名称。', 'type' => 'string', 'required' => true, 'example' => 'liveBucket****'], ], [ - 'name' => 'PageNum', + 'name' => 'OssObject', 'in' => 'query', - 'schema' => [ - 'description' => '取得第几页,默认1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'OSS存储的录制文件名。', 'type' => 'string', 'required' => true, 'example' => '{AppName}/{StreamName}/{Date}/{Hour}/{Minute}_{Second}.m3u8'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '索引文件的开始时间。ts文件的上传时间在此之后则会被包含进索引文件。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '索引文件的结束时间。ts文件的上传时间在此之前则会被包含进索引文件。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z'], + ], + [ + 'name' => 'EndTimeIncluded', + 'in' => 'query', + 'schema' => ['description' => '是否包含结束时间。传true会尝试多包含一个ts文件,创建的索引文件会完整覆盖StartTime和EndTime。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ @@ -10420,484 +9098,324 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Count' => [ - 'description' => '符合条件的总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'PageNum' => [ - 'description' => '分页的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C7C69682-7F88-40DD-A198-10D0309E439B', - ], - 'StreamBlockList' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '550439A3-F8EC-4CA2-BB62-B9DB43EEEF30'], + 'RecordInfo' => [ + 'description' => '录制配置信息。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'StreamBlock' => [ - 'description' => '详细信息。', - 'type' => 'array', - 'items' => [ - 'description' => '详细信息。', - 'type' => 'object', - 'properties' => [ - 'AppName' => [ - 'description' => '封禁的应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'BlockType' => [ - 'description' => '封禁方式。'."\n" - .'- blacklist:黑名单。'."\n" - .'- whitelist:白名单。', - 'type' => 'string', - 'example' => 'blacklist', - ], - 'DomainName' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'LocationList' => [ - 'description' => '封禁区域,如CN,AS多个以逗号隔开。', - 'type' => 'string', - 'example' => 'CN', - ], - 'ReleaseTime' => [ - 'description' => '失效时间,UTC时间。', - 'type' => 'string', - 'example' => '2023-08-13T09:27Z', - ], - 'Status' => [ - 'description' => '封禁状态,0:未开始,1:正在封禁,2:成功,3:失败,4:过期,5:删除中。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'StreamName' => [ - 'description' => '封禁的流名称。', - 'type' => 'string', - 'example' => 'stream', - ], - 'UpdateTime' => [ - 'description' => '最后修改时间,UTC时间。', - 'type' => 'string', - 'example' => '2023-08-14T09:27Z', - ], - ], - ], - ], + 'RecordUrl' => ['description' => '索引文件地址。', 'type' => 'string', 'example' => 'http://*****/atestObject.m3u8'], + 'StreamName' => ['description' => '播流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'CreateTime' => ['description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2016-05-27T09:40:56Z'], + 'RecordId' => ['description' => '索引文件ID。', 'type' => 'string', 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****'], + 'Height' => ['description' => '视频高。', 'type' => 'integer', 'format' => 'int32', 'example' => '480'], + 'OssBucket' => ['description' => 'OSS存储Bucket名称。', 'type' => 'string', 'example' => 'liveBucket****'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'OssObject' => ['description' => 'OSS存储的录制文件名。', 'type' => 'string', 'example' => 'liveObject****.m3u8'], + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-12-01T07:40:00Z'], + 'AppName' => ['description' => '播流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'StartTime' => ['description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-12-01T07:36:00Z'], + 'Width' => ['description' => '视频宽。', 'type' => 'integer', 'format' => 'int32', 'example' => '640'], + 'Duration' => ['description' => '录制时长。单位:秒。', 'type' => 'number', 'format' => 'float', 'example' => '20'], + 'OssEndpoint' => ['description' => 'OSS存储Endpoint名称。', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com'], ], ], - 'TotalPage' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], + ['errorCode' => 'InvalidStartTime.Mismatch', 'errorMessage' => 'Specified StartTime does not math the current time.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'invalid params', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidOssEndpoint.Malformed', 'errorMessage' => 'Specified OssEndpoint is malformed.', 'description' => ''], + ['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified OssBucket is malformed.', 'description' => 'OSSBucket参数错误,请您确认该OSS BUCKET参数是否正确。'], + ['errorCode' => 'InvalidOssObject.Malformed', 'errorMessage' => 'Specified OssObject is malformed.', 'description' => ''], + ['errorCode' => 'InvalidStream.NotFound', 'errorMessage' => 'Speicified stream does not exist.', 'description' => ''], + ['errorCode' => 'InvalidConfig.Changed', 'errorMessage' => 'The oss bucket info between StartTime and EndTime has changed.', 'description' => 'ossbucket开始结束时间已经改变。'], + ['errorCode' => 'NoRecordContent', 'errorMessage' => 'The record content between StartTime and EndTime is empty.', 'description' => 'StartTime和EndTime之间的记录内容为空。'], + ['errorCode' => 'RecordContentExceed', 'errorMessage' => 'The record content between StartTime and EndTime is exceeded, please narrow down the range.', 'description' => ''], + ['errorCode' => 'OperationNotSupport', 'errorMessage' => 'The Operation is not support for flv/mp4 format or live to vod record.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidBucket.NotFound', 'errorMessage' => 'The bucket does not belong to you.', 'description' => '指定的bucket不属于当前用户。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => ''], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Count\\": 2,\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 5,\\n \\"RequestId\\": \\"C7C69682-7F88-40DD-A198-10D0309E439B\\",\\n \\"StreamBlockList\\": {\\n \\"StreamBlock\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"BlockType\\": \\"blacklist\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"LocationList\\": \\"CN\\",\\n \\"ReleaseTime\\": \\"2023-08-13T09:27Z\\",\\n \\"Status\\": 0,\\n \\"StreamName\\": \\"stream\\",\\n \\"UpdateTime\\": \\"2023-08-14T09:27Z\\"\\n }\\n ]\\n },\\n \\"TotalPage\\": 1\\n}","type":"json"}]', - 'title' => '查询直播流粒度封禁', - 'description' => '接口查询直播流粒度封禁信息。'."\n" + 'title' => '创建录制索引文件', + 'summary' => '创建某个时间范围的M3U8索引文件。', + 'description' => '您已配置OSS,具体操作,请参见[配置OSS](~~84932~~)。'."\n" + .'直播录制索引是将视频直播流以M3U8的格式进行录制,存储在OSS中后,对已存储的TS分片索引文件进行实时的剪辑处理。 '."\n" + ."\n" + .'> - 创建录制索引必保证直播流发生过推流行为,如果设置的时间内未发生过直播或直播流名称错误等会导致创建录制索引失败。'."\n" + .'> - 请确保DomainName/AppName/StreamName都是正确的,否则会返回InvalidStream.NotFound错误。'."\n" + .'> - StartTime和EndTime的间隔至少是一片TS的时长(默认为30s)。'."\n" + .'> - EndTime要大于StartTime,并且间隔最多不能超过4天。'."\n" + .'> - TS分片信息在视频直播系统中仅保存3个月,创建M3U8文件只能选择最近3个月的录制内容。'."\n" + .'> - TS分片文件存储在OSS中,保存时间由OSS的存储配置决定。详细信息,请参见[设置生命周期规则](~~31904~~)。'."\n" + .'> - 创建好的M3U8索引文件的信息在视频直播系统中仅保存6个月,若要查询仅能查询6个月内创建的索引文件的信息。'."\n" + .'> - M3U8索引文件存储在OSS中,保存时间由OSS的存储配置决定。'."\n" + .'> - 当M3U8和TS的bucket不同时,M3U8里的TS路径将会是 HTTP格式。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveShiftConfigs' => [ - 'summary' => '查询指定域名的时移配置。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为45次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-01-10T11:01:20.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveStreamRecordIndexFiles'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveStreamRecordIndexFiles', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"550439A3-F8EC-4CA2-BB62-B9DB43EEEF30\\",\\n \\"RecordInfo\\": {\\n \\"RecordUrl\\": \\"http://*****/atestObject.m3u8\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"CreateTime\\": \\"2016-05-27T09:40:56Z\\",\\n \\"RecordId\\": \\"c4d7f0a4-b506-43f9-8de3-07732c3f****\\",\\n \\"Height\\": 480,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssObject\\": \\"liveObject****.m3u8\\",\\n \\"EndTime\\": \\"2015-12-01T07:40:00Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"StartTime\\": \\"2015-12-01T07:36:00Z\\",\\n \\"Width\\": 640,\\n \\"Duration\\": 20,\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 550439A3-F8EC-4CA2-BB62-B9DB43EEEF30\\n \\n 2015-12-01T07:40:00Z\\n example.com\\n 2016-05-27T09:40:56Z\\n 2015-12-01T07:36:00Z\\n liveBucket****\\n 20\\n liveApp****\\n liveStream****\\n cn-oss-****.aliyuncs.com\\n http://*****/atestObject.m3u8\\n liveObject****.m3u8\\n 480\\n c4d7f0a4-b506-43f9-8de3-07732c3f****\\n 640\\n \\n","errorExample":""}]', + ], + 'CreateMessageApp' => [ + 'summary' => '调用CreateMessageApp创建互动消息应用。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveGDJYFA', - ], - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', + 'name' => 'AppName', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用名称,长度2~16个字符。', 'type' => 'string', 'required' => true, 'example' => 'test'], + ], + [ + 'name' => 'AppConfig', + 'in' => 'formData', + 'style' => 'json', 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', + 'description' => '应用配置。', + 'type' => 'object', 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'additionalProperties' => ['type' => 'string', 'description' => '应用的配置信息,用户自定义内容。', 'example' => '"appAlias":"localApp"'], ], ], [ - 'name' => 'DomainName', - 'in' => 'query', + 'name' => 'Extension', + 'in' => 'formData', + 'style' => 'json', 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'description' => '拓展字段。', + 'type' => 'object', + 'required' => false, + 'additionalProperties' => ['type' => 'string', 'description' => '拓展字段,按需传递,需要额外记录的应用属性。', 'example' => 'test001'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '时移配置信息。', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B49E6DDA-F413-422B-B58E-2FA23F286726', - ], - 'Content' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'Config' => [ - 'description' => '配置列表。', - 'type' => 'array', - 'items' => [ - 'description' => '配置列表。', - 'type' => 'object', - 'properties' => [ - 'AppName' => [ - 'description' => '配置的应用。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'Vision' => [ - 'description' => '配置的保存天数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '7', - ], - 'DomainName' => [ - 'description' => '配置的域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'StreamName' => [ - 'description' => '配置的流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'IgnoreTranscode' => [ - 'description' => '是否忽略对应转码流生成时移。取值:'."\n" - ."\n" - .'- **true**:转码流不生成时移。'."\n" - ."\n" - .'- **false**:转码流生成时移。'."\n" - ."\n" - .'默认选择为true。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], + 'AppId' => ['title' => '用于长连接建连的token', 'description' => '互动消息应用ID。', 'type' => 'string', 'example' => 'VKL3***'], ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => '%s.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidDataNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 'title' => '创建互动消息应用(旧版)', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateMessageApp'], ], - 409 => [ - [ - 'errorCode' => 'InvalidStreamNum', - 'errorMessage' => '%s, please check and try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B49E6DDA-F413-422B-B58E-2FA23F286726\\",\\n \\"Content\\": {\\n \\"Config\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"Vision\\": 7,\\n \\"DomainName\\": \\"example.com\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"IgnoreTranscode\\": true\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n B49E6DDA-F413-422B-B58E-2FA23F286726\\n \\n liveApp****\\n 7\\n example.com\\n liveStream****\\n true\\n \\n","errorExample":""}]', - 'title' => '查询域名时移配置', - 'description' => '先获取播流域名,再调用本接口查询指定域名的时移配置。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '### 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" - .'|------------|--------|---------|------|'."\n" - .'| InvalidParam | param error | 400 | 用户参数错误。 |'."\n" - .'| InvalidDataNotFound | data not found | 404 | 用户数据未找到。 |'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AppId\\": \\"VKL3***\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 7m***q\\n \\n","errorExample":""}]', ], - 'OpenLiveShift' => [ - 'summary' => '调用OpenLiveShift为指定域名(应用、直播流)开启时移服务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateMessageGroup' => [ + 'summary' => '调用CreateMessageGroup创建消息组。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeNodes' => [ - 'FEATUREliveGDJYFA', - ], - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。支持通配符*,代表该域名下所有的AppName。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], - ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流流名称。支持通配符*,代表该AppName下所有的StreamName。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', - ], - ], - [ - 'name' => 'Duration', - 'in' => 'query', - 'schema' => [ - 'description' => 'HLS的ts切片的长度。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'a494caec-***-695ef345db77'], ], [ - 'name' => 'Vision', - 'in' => 'query', - 'schema' => [ - 'description' => '表示数据保留时长。默认保留7天,单位:天。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'name' => 'CreatorId', + 'in' => 'formData', + 'schema' => ['description' => '创建人ID,仅支持英文和数字,最大长度36位。', 'type' => 'string', 'required' => true, 'example' => 'as****hs'], ], [ - 'name' => 'IgnoreTranscode', - 'in' => 'query', + 'name' => 'Extension', + 'in' => 'formData', + 'style' => 'json', 'schema' => [ - 'description' => '是否忽略对应转码流生成时移。取值:'."\n" - ."\n" - .'- **true**:转码流不生成时移。'."\n" - ."\n" - .'- **false**:转码流生成时移。'."\n" - ."\n" - .'默认选择为true。', - 'type' => 'boolean', + 'description' => '拓展字段。', + 'type' => 'object', 'required' => false, - 'example' => 'true', + 'additionalProperties' => ['type' => 'string', 'description' => '拓展字段,按需传递,需要额外记录的消息组属性。', 'example' => 'test001'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'Extension' => ['description' => '拓展字段。', 'type' => 'object', 'example' => 'test001'], + 'GroupId' => ['title' => '用于长连接建连的token', 'description' => '消息组ID。', 'type' => 'string', 'example' => 'AE35-****-T95F'], + ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => '%s Please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => '%s.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidDataNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 'title' => '创建消息组(旧版)', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2022-09-08T15:22:52.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateMessageGroup'], ], - 409 => [ - [ - 'errorCode' => 'InvalidStreamNum', - 'errorMessage' => '%s, please check and try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '开启时移服务', - 'description' => '直播时移和延迟转码目前暂不支持同时配置。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '### 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" - .'|------------|--------|---------|------|'."\n" - .'| InvalidParam | param error|400| 用户参数错误。|'."\n" - .'| InvalidDataNotFound | data not found |404| 用户数据未找到。|', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Extension\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"GroupId\\": \\"AE35-****-T95F\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n AE35-****-T95F\\n \\n","errorExample":""}]', ], - 'CloseLiveShift' => [ - 'summary' => '关闭指定域名(应用、直播流)的时移服务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateMixStream' => [ + 'summary' => '创建合流任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveGDJYFA', - ], + 'abilityTreeNodes' => ['FEATUREliveI16NIW'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。'."\n" + .'>目前仅支持华东2(cn-shanghai)和华北2(cn-beijing)两个区域的域名。'."\n" + .'>', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'AppName', + 'name' => 'LayoutId', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。支持通配符*,代表该域名下所有的AppName。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '布局ID。取值: '."\n" + .'- **MixStreamLayout-1-1**'."\n" + .'- **MixStreamLayout-2-1**'."\n" + .'- **MixStreamLayout-2-2**'."\n" + .'- **MixStreamLayout-2-3**'."\n" + .'- **MixStreamLayout-3-1**'."\n" + .'- **MixStreamLayout-3-2**'."\n" + .'- **MixStreamLayout-4-1**'."\n" + .'- **USERDEFINED**(非上述预设布局,固定取值**USERDEFINED**)'."\n" + .'> 更多信息请参见[合流预设布局参考](~~199359~~)', 'type' => 'string', 'required' => true, 'example' => 'MixStreamLayout-1-1'], ], [ - 'name' => 'StreamName', + 'name' => 'InputStreamList', 'in' => 'query', - 'schema' => [ - 'description' => '直播流流名称。支持通配符*,代表该AppName下所有的StreamName。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '合流输入列表。JSON数组。'."\n" + ."\n" + .'参考下方的**InputStreamConfig**。', 'type' => 'string', 'required' => true, 'example' => '[{"LayoutChildId":1,"ResourceType":"live","ResourceValue":"rtmp://example.net/live/f2139ec2b8d6a191068cd****ea9064d?auth_key=1600947017-0-0-0b5645fe35d21a65ab92b394bd4d****","LayoutConfig":{"FillMode":"fit","PositionRefer":"topLeft","FillPositionNormalized":[0,0],"FillSizeNormalized":[1,1]}}]'], + ], + [ + 'name' => 'OutputConfig', + 'in' => 'query', + 'schema' => ['description' => '合流输出配置。格式为JSON字符串。'."\n" + ."\n" + .'参考下方的**OutputConfig**。', 'type' => 'string', 'required' => true, 'example' => '{"AppName":"liveApp****","StreamName":"9a78fb3f5c508be0122746f677a3****","MixStreamTemplate":"lp_hd_v","ExpireDuration":"86400"}'], + ], + [ + 'name' => 'CallbackConfig', + 'in' => 'query', + 'schema' => ['description' => '回调地址。JSON数组。'."\n" + .'当事件产生时,直播服务端会向该地址发起HTTP POST请求,具体内容将通过HTTP Body送达。', 'type' => 'string', 'required' => false, 'example' => '{"CallbackUrl":"http://aliyundoc.com"}'], ], ], 'responses' => [ @@ -10905,578 +9423,461 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'MixStreamId' => ['description' => '合流任务ID。可作为查询合流任务列表和删除合流任务的请求参数。', 'type' => 'string', 'example' => '5b2a046e-74d7-385e-253f-8a5b87e4****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0D715397-2E66-4AE1-694h-C546628AD145'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], - 404 => [ - [ - 'errorCode' => 'InvalidDataNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], - 409 => [ - [ - 'errorCode' => 'InvalidStreamNum', - 'errorMessage' => '%s, please check and try again later.', - ], + 403 => [ + ['errorCode' => 'MixStreamAlreadyExist', 'errorMessage' => '%s, please check and try again later.', 'description' => '合流任务已存在,请检查后重试。'], + ['errorCode' => 'MixStreamNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => '合流任务不存在,请检查后重试。'], + ['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => '超出配额:%s。'], + ], + [ + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n","errorExample":""}]', - 'title' => '关闭时移服务', - 'description' => '先获取播流域名,再调用本接口关闭指定域名(应用、直播流)的时移服务。'."\n" + 'title' => '创建合流任务', + 'description' => '>云端合流属于收费功能,当前为公测阶段,您可以免费使用,公测结束后将正常收费,具体时间另行通知。>'."\n" + .'调用本接口创建合流任务,目前本接口支持的布局类型为预设布局和自定义布局。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', + 'requestParamsDescription' => '### InputStreamConfig'."\n" + ."\n" + .'|名称 |类型 |描述 |'."\n" + .'| ------------- |------------ | ----- |'."\n" + .'|ResourceType|String|资源类型。
**live**:直播流地址。
**url**:文件流地址。 |'."\n" + .'|ResourceValue|String|资源地址。
如果ResourceType为live,则为直播流地址。直播流地址支持RTMP、FLV和HLS协议,不支持ARTC协议。
如果ResourceType为url,则为文件流地址。 |'."\n" + .'|LayoutChildId|String|布局方格对应ID(也代表合流的叠加顺序)。 |'."\n" + .'|LayoutConfig |LayoutConfig[] |JSON数组,代表所在位置、填充方式等布局信息。
如果使用预设布局,则此参数可以不填。
如果设置了该值,则忽略LayoutChildId对应的预设布局信息。|'."\n" + ."\n" + .'### LayoutConfig'."\n" + ."\n" + .'|名称 |类型 |必选 |描述 |'."\n" + .'| ------------- |------------ |------------ | ----- |'."\n" + .'|FillSizeNormalized|JSON浮点数组|必选|表示该Layer元素需要填充的尺寸大小。
[w,h]:w、h取值范围[0-1]。其中宽高都是进行了归一化计算。
例如:[0.2,0.3]代表水平占比20%,垂直占比30%。 |'."\n" + .'|FillPositionNormalized|浮点数数组|必选|表示该Layer元素填充区位置归一化值。
[x,y]:x、y的取值范围[0-1]。
例如:[0.1,0.1]代表左上角水平偏移10%, 垂直偏移10%。 |'."\n" + .'|PositionRefer|字符串|可选|设置元素的position参考坐标值。
建议设置topLeft,代表左上角。|'."\n" + .'|FillMode|字符串|可选|设置元素填充方式。
**none**:不填充。
**fit**:缩放填充保证最长的边达到边界,而最短的边可能需要加黑边。
**fill**:先按照宽和高的最大比例值进行等比缩放,然后进行crop,保证全部填充。
建议设置为fit。 |'."\n" + ."\n" + .'### OutputConfig'."\n" + ."\n" + .'|名称 |类型 |必选 |描述 |'."\n" + .'| ------------- |------------ |------------ | ----- |'."\n" + .'|AppName |String |是 |输出App名。不支持#、?等特殊字符。 |'."\n" + .'|StreamName |String |是 |输出流名。不支持#、?等特殊字符。 |'."\n" + .'|MixStreamTemplate |String |是 |合流输出规格模板ID (在传参时仅传模板ID,例如lp_ld)。
支持:
lp_ld(分辨率:640x360),
lp_sd(分辨率:854x480),
lp_hd(分辨率:1280x720),
lp_ud(分辨率:1920x1080),
lp_ld_v(分辨率:640x360),
lp_sd_v(分辨率:854x480),
lp_hd_v(分辨率:1280x720),
lp_ud_v(分辨率:1920x1080) ,
lp_ld_v_optm(分辨率:640x360),
lp_sd_v_optm(分辨率:854x480),
lp_hd_v_optm(分辨率:1280x720),
lp_ud_v_optm(分辨率:1920x1080)。
_v表示竖屏模板,_optm表示低延迟模板,括号里表示模板的分辨率。|'."\n" + .'|ExpireDuration|Long|可选|任务过期时间。单位:秒。取值范围:**1**~**31536000**(1年)。
如果不设置默认7天过期清理任务。 |', 'responseParamsDescription' => ' ', - 'extraInfo' => '### 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" - .'|------------|--------|---------|------|'."\n" - .'| InvalidParam | param error | 400 | 用户参数错误。 |'."\n" - .'| InvalidDataNotFound | data not found | 404 | 用户数据未找到。 |', - ], - 'AddLiveStreamTranscode' => [ - 'summary' => '调用AddLiveStreamTranscode添加转码配置信息。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 增加合流事件回调示例'."\n" + .'- 合流创建成功'."\n" + .'```'."\n" + .'{'."\n" + .'"EventMessage":'."\n" + .' {'."\n" + .' "StreamName":"liveStream****",//合流输出流名'."\n" + .' "Message":"",'."\n" + .' "DomainName":"example.com",'."\n" + .' "MixstreamId":"5b2a046e-74d7-385e-253f-8a5b87e4****",//合流任务ID'."\n" + .' "Code":"Success",'."\n" + .' "AppName":"liveApp****"//合流输出App名'."\n" + .' },'."\n" + .'"EventType":"MixstreamStartCallback",'."\n" + .'"MessageMd5":"7c7b1d9480ae892lkasjdflkasjbd****",'."\n" + .'"CasterId":""}'."\n" + .' ```'."\n" + .'- 合流创建失败'."\n" + .'```'."\n" + .'{"EventMessage":'."\n" + .' {'."\n" + .' "StreamName":"liveStream****",'."\n" + .' "Message":"MixStreamAlreadyExist",'."\n" + .' "DomainName":"example.com",'."\n" + .' "Code":"Error",'."\n" + .' "AppName":"liveApp****"'."\n" + .' },'."\n" + .'"EventType":"MixstreamStartCallback",'."\n" + .'"MessageMd5":"7c7b1d9480ae892lkasjdflkasjbd****",'."\n" + .'"CasterId":""'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'### SDK示例'."\n" + .'详细示例,请参见[合流代码示例](https://help.aliyun.com/document_detail/199362.html)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateMixStream', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MixStreamId\\": \\"5b2a046e-74d7-385e-253f-8a5b87e4****\\",\\n \\"RequestId\\": \\"0D715397-2E66-4AE1-694h-C546628AD145\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5b2a046e-74d7-385e-253f-8a5b87e4****\\n 0D715397-2E66-4AE1-694h-C546628AD145\\n","errorExample":""}]', + ], + 'CreateRTCWhipStreamAddress' => [ + 'summary' => '调用CreateRTCWhipStreamAddress创建RTC频道WHIP推流地址', + 'path' => '', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'ClientToken', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'allowEmptyValue' => false, + 'schema' => ['title' => '幂等参数', 'description' => '幂等参数。'."\n" + .'> 用于区分多次请求是不是同一个请求的标识,针对本接口不建议填写。', 'type' => 'string', 'required' => false, 'example' => '58E73333-xxxx-xxxx-xxxx'], ], [ - 'name' => 'Domain', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['title' => '应用AppID', 'description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => '6a0**6dcc-xxxx-xxxx-xxxx-e**e3exxxxxx ', 'maxLength' => 64, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$'], ], [ - 'name' => 'App', + 'name' => 'ChannelId', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。'."\n" - ."\n" - .'- App取值必须与推流地址中的AppName名称一样,转码模板才能生效。取值不超过256字符,支持数字、大小写字母、短划线(-)、下划线(_)。'."\n" - ."\n" - .'- App也支持取值为单个星号(*)字符,表示匹配任意字符串(包括空字符串)。'."\n" - ."\n" - .'> 如果配置了App为单个星号(\\*)的转码模板:当用户拉流转码时,优先匹配和推流地址中AppName名称一样的转码模板;若不存在和推流地址中AppName名称一样的转码模板,则会匹配App为单个星号(*)的转码模板。 ', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['title' => '频道号', 'description' => '加入的频道ID。', 'type' => 'string', 'required' => true, 'example' => ' ch00000****001', 'maxLength' => 64, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$'], ], [ - 'name' => 'Template', + 'name' => 'UserId', 'in' => 'query', - 'schema' => [ - 'description' => '转码模版。取值:'."\n" - ."\n" - .'- 标准质量模板:'."\n" - ."\n" - .' - **lld**:流畅。'."\n" - ."\n" - .' - **lsd**:标清。'."\n" - ."\n" - .' - **lhd**:高清。'."\n" - ."\n" - .' - **lud** :超清。'."\n" - .' '."\n" - .'- 窄带高清™转码模板:'."\n" - ."\n" - .' - **ld**:流畅。'."\n" - .' '."\n" - .' - **sd**:标清。'."\n" - .' '."\n" - .' - **hd**:高清。'."\n" - .' '."\n" - .' - **ud**:超清。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsd', - ], + 'schema' => ['title' => '用户ID,不要与其他进频道的用户重合。', 'description' => '用户ID,不能与频道中的其他用户 ID 重复。', 'type' => 'string', 'required' => true, 'example' => 'zb0000****0001', 'maxLength' => 64, 'minLength' => 1, 'pattern' => '^[0-9a-zA-Z_-]+$'], ], [ - 'name' => 'EncryptParameters', + 'name' => 'DisplayName', 'in' => 'query', - 'schema' => [ - 'description' => '加密配置。JSON格式,各字段说明如下:'."\n" - ."\n" - .'- EncryptType:加密类型。固定取值**aliyun**。'."\n" - .'- KmsKeyID:用户KMS主密钥ID。'."\n" - .'- KmsKeyExpireInterval:换Key周期。取值范围:**60~3600**,单位:秒。', - 'type' => 'string', - 'required' => false, - 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}', - ], + 'schema' => ['title' => '在频道内显示的名称', 'description' => '在频道中显示的用户名称。'."\n" + .'> 支持填写中文等字符,为避免名称过长,大小建议小于32个byte。', 'type' => 'string', 'required' => true, 'example' => 'John', 'maxLength' => 40, 'minLength' => 1], ], [ - 'name' => 'Lazy', + 'name' => 'ExpireTime', 'in' => 'query', - 'schema' => [ - 'description' => '是否开启触发转码。取值:'."\n" - .'- **yes**:开启触发转码。'."\n" - .'- **no**:不开启触发转码。', - 'type' => 'string', - 'required' => false, - 'example' => 'yes', - 'default' => 'yes', - ], + 'schema' => ['description' => '推流有效时长,单位:秒,默认为43200秒。'."\n" + .'> 若超过设置的有效期,则正在使用由本接口所生成地址进行的推流不受影响,但是用该地址重新推流则会失败。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '43200', 'default' => '43200'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '请求ID。', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '58E7**D4-xxxx-xxxx-xxxx-6B5**6Cxxxxx'], + 'WhipAddress' => ['title' => 'whip协议推流服务地址', 'description' => 'WHIP协议URL。', 'type' => 'string', 'example' => 'https://xxxxxx.media-sh.xxxxx.com/xxxxxxxxxxxx/3723a3xxxxxxxxx223c606b***5f7a2bc7c56ea5cdd0xxxxe?auth_key=17495xxxxx-xxxx-0-f013003067c78c4053f9cd0xxxxxxx&qqzr=H4sIAAAAAAAC_6pWSlayUkrOMxxxxxxrPyCxQ0lFKQTCLlKyUjM2Nj**NDQ1TEy2Mjc3xxxxxxxxxxqRYAAAD__xxxxx__xxxxxxxx'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n\\t 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n","errorExample":""}]', - 'title' => '添加转码配置信息', - 'description' => '- 使用直播转码功能会产生转码费用,按转码标准、分辨率规格及对应总转码时长计费。计费规则详见[直播转码费用](~~90424~~)。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建RTC频道WHIP推流地址', + 'description' => '## 使用说明'."\n" + .'1. 通过调用CreateRTCWhipStreamAddress接口,创建在对应RTC房间(频道)的WhipAddress推流地址。'."\n" + .'2. 使用OBS工具,通过whip协议进行推流。'."\n" + .' - 运行OBS推流工具。'."\n" + .' - 在菜单栏中选择**文件>设置**。'."\n" + .' - 在设置页面选择**直播**,配置如下信息,单击**确定**。'."\n" ."\n" - .'- 先通过密钥管理服务KMS获取用户KMS主密钥ID,再调用本接口添加通用转码配置信息,目前本接口只支持标准质量模板和窄带高清™转码模板两种转码模板。'."\n" + .' | 参数 | 描述 | '."\n" + .' | ------ | ------| '."\n" + .' | 服务| 选择**WHIP**。| '."\n" + .' | 服务器 | 使用步骤1中通过接口生成的WhipAddress地址。| '."\n" + .' | Bearer Token| 串流密钥为空。 | '."\n" ."\n" - .'- 阿里云KMS免费提供默认密钥用于云产品服务端加密,无需购买实例。但若您需要构建自建应用密码方案、使用凭据功能或需要管理密钥生命周期等,则需付费购买软件或硬件密钥管理实例。计费详情,请参见[产品计费](~~600418~~)。'."\n" + .' ![](https://img.alicdn.com/imgextra/i3/O1CN01xaAEK61umh8yP8NFe_!!6000000006080-2-tps-1746-685.png)'."\n" + ."\n" + .'3. 其他用户,进入相应房间(频道)观看。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddCustomLiveStreamTranscode' => [ - 'summary' => '调用AddCustomLiveStreamTranscode添加自定义转码配置信息。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户 QPS 限制为 40 次/秒。超过限制,API 调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:CreateRTCWhipStreamAddress', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"58E7**D4-xxxx-xxxx-xxxx-6B5**6Cxxxxx\\",\\n \\"WhipAddress\\": \\"https://xxxxxx.media-sh.xxxxx.com/xxxxxxxxxxxx/3723a3xxxxxxxxx223c606b***5f7a2bc7c56ea5cdd0xxxxe?auth_key=17495xxxxx-xxxx-0-f013003067c78c4053f9cd0xxxxxxx&qqzr=H4sIAAAAAAAC_6pWSlayUkrOMxxxxxxrPyCxQ0lFKQTCLlKyUjM2Nj**NDQ1TEy2Mjc3xxxxxxxxxxqRYAAAD__xxxxx__xxxxxxxx\\"\\n}","type":"json"}]', + ], + 'CreateRoomRealTimeStreamAddress' => [ + 'summary' => '创建RTMP流在房间中的推流地址。', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '106833', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], + 'abilityTreeCode' => '198619', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域id。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '实时音视频应用ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourAppId'], ], [ - 'name' => 'Domain', + 'name' => 'ChannelId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['title' => '往哪个频道中推', 'description' => '要加入的房间ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourChannelId'], ], [ - 'name' => 'App', + 'name' => 'UserId', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['title' => 'rtmp在房间中的userid,请不要与房间中的其他用户重复', 'description' => '向RTMP地址推流的用户ID,不能和房间中的其他用户ID重复。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。'."\n", 'type' => 'string', 'required' => true, 'example' => 'rtmp-uuid', 'maxLength' => 64, 'minLength' => 1], ], [ - 'name' => 'KmsKeyID', + 'name' => 'DisplayName', 'in' => 'query', - 'schema' => [ - 'description' => '用户KMS主密钥ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'afce5722-81d2-43c3-9930-7601da11****', - ], + 'schema' => ['title' => 'rtmp在频道中的显示名称,长度1~40,必填', 'description' => 'RTMP流在房间中显示的名称,最大40字符。', 'type' => 'string', 'required' => true, 'example' => 'rtmp-dname', 'maxLength' => 40, 'minLength' => 1], ], [ - 'name' => 'KmsUID', + 'name' => 'ExpireTime', 'in' => 'query', - 'schema' => [ - 'description' => '用户KMS主账号ID。', - 'type' => 'string', - 'required' => false, - 'example' => '25346073170691****', - ], + 'schema' => ['title' => '地址有效时长,单位秒,默认10个小时', 'description' => 'RTMP地址有效时长,单位:秒,默认值36000,即10小时。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '43200', 'default' => '43200'], ], - [ - 'name' => 'KmsKeyExpireInterval', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '换Key周期。取值范围:60~3600,单位:秒。', - 'type' => 'string', - 'required' => false, - 'example' => '3600', + 'title' => 'Schema of Response', + 'description' => '返回参数。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'F8DB7E25-6A35-161A-AA41-B7A658AF****'], + 'RtmpAddress' => ['description' => 'RTMP推流地址。', 'type' => 'string', 'example' => 'rtmp://rtcpush****.rtmp.alivecdn.com/rtcdev****/H4sIAAAA****_6pWSlayUipJLS5R0lEqRTBTEMwiJSul1CRTMxNjsyQTM****-PUZCMz8yTDZLNkAwMDA6M0I0ulWgA****__wEAAP__a_e7YkkAAAA?auth_key=1700492701-6e33-0-c6d7e3a93dc2dbe3af42f6259ccd****'], + ], ], ], - [ - 'name' => 'Template', - 'in' => 'query', - 'schema' => [ - 'description' => '转码模板自定义名称。'."\n" - ."\n" - .'> 支持数字、大小写字母或短横线(-),且字段必须以大小写字母或数字开头,不能与标准的转码模板命名重复。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'LiveCusTranscode****', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], ], - [ - 'name' => 'TemplateType', - 'in' => 'query', - 'schema' => [ - 'description' => '自定义转码模版类型。取值:'."\n" - ."\n" - .'- **h264**:自定义H264标准模版。'."\n" - .'- **h264-nbhd**:自定义H264窄带高清™模版。'."\n" - .'- **h265**:自定义H265标准模版。'."\n" - .'- **h265-nbhd**:自定义H265窄带高清模版。'."\n" - .'- **audio**:纯音频模板。'."\n" - ."\n" - .'>**TemplateType**取值为视频类型时(例如**h264**、**h264-nbhd**、**h265**或 **h265-nbhd**),请求参数**Height**、**Width**、**FPS**和**VideoBitrate**的值必须填写。', - 'type' => 'string', - 'required' => true, - 'example' => 'h264', - ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], ], [ - 'name' => 'Height', - 'in' => 'query', - 'schema' => [ - 'description' => '转码视频高度。单位:像素。取值:'."\n" - .'需要同时满足如下三个条件:'."\n" - .'- **Height ≥ 100**:视频的高需要不小于100像素。'."\n" - .'- **max(Height,Width)≤ 2560**:视频的宽、高中较大的一个最大不能大于2560。'."\n" - .'- **min(Height,Width)≤ 1440**:视频的宽、高中较小的一个最大不能大于1440。'."\n" - ."\n" - .'>265窄带高清模板不得超过1280×720。'."\n" - ."\n\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '720', - ], + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], ], - [ - 'name' => 'Width', - 'in' => 'query', - 'schema' => [ - 'description' => '转码视频宽度。单位:像素。取值:'."\n" - ."\n" - .'需要同时满足如下三个条件:'."\n" - .'- **Width ≥ 100**:视频的宽需要不小于100像素。'."\n" - .'- **max(Height,Width)≤ 2560**:视频的宽、高中较大的一个最大不能大于2560。'."\n" - .'- **min(Height,Width)≤ 1440**:视频的宽、高中较小的一个最大不能大于1440。'."\n" - ."\n" - .'>265窄带高清模板不得超过1280×720。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '576', - ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建RTMP流在房间中的推流地址', + 'description' => '1. 调用此接口生成RTMP推流地址。'."\n" + .'2. 向RTMP地址推流,房间中的其他用户可以看到此路流。'."\n" + .'3. 停止推流,房间中的其他用户看到推RTMP流的用户离开房间。'."\n" + ."\n" + .'> - 在RTMP地址有效期内可以重复步骤2、3。'."\n" + .'>- 建议配合调用[DescribeChannelParticipants](~~2848193~~)查询频道用户列表,定时间隔的检查推RTMP流的用户是否还在房间中。如果不在,可能推流中断,建议停止推流再转到步骤2重推。'."\n" + ."\n" + .'## 注意事项'."\n" + ."\n" + .'在使用实时音视频时,需要通过阿里云ARTC SDK进行入会并推送RTC的流。但在部分特殊场景下,阿里云允许您使用RTMP协议推流(如OBS推流),并由阿里云将RTMP转换成RTC流进行推送和实现用户入会。您可以通过本接口实现该能力,本接口将为您生成RTMP推流地址,当您完成推流后阿里云将自动将流转换成RTC流。'."\n" + .'若您的业务是纯直播场景时,请勿使用该接口,您可以参见[生成推流地址和播放地址](~~198676~~)快速实现RTMP推流和直播播放。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRoomRealTimeStreamAddress'], ], + ], + 'ramActions' => [ [ - 'name' => 'FPS', - 'in' => 'query', - 'schema' => [ - 'description' => '转码视频帧率。单位:FPS,取值:**1~60**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:CreateRoomRealTimeStreamAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8DB7E25-6A35-161A-AA41-B7A658AF****\\",\\n \\"RtmpAddress\\": \\"rtmp://rtcpush****.rtmp.alivecdn.com/rtcdev****/H4sIAAAA****_6pWSlayUipJLS5R0lEqRTBTEMwiJSul1CRTMxNjsyQTM****-PUZCMz8yTDZLNkAwMDA6M0I0ulWgA****__wEAAP__a_e7YkkAAAA?auth_key=1700492701-6e33-0-c6d7e3a93dc2dbe3af42f6259ccd****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n F8DB7E25-6A35-161A-AA41-B7A658AF0635\\n rtmp://rtcpush****.rtmp.alivecdn.com/rtcdev****/H4sIAAAA****_6pWSlayUipJLS5R0lEqRTBTEMwiJSul1CRTMxNjsyQTM****-PUZCMz8yTDZLNkAwMDA6M0I0ulWgA****__wEAAP__a_e7YkkAAAA?auth_key=1700492701-6e33-0-c6d7e3a93dc2dbe3af42f6259ccd****\\n","errorExample":""}]', + ], + 'CreateRtcAsrTask' => [ + 'summary' => '创建一个新的实时字幕任务,用于实时转录音频流为文本。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'VideoBitrate', - 'in' => 'query', - 'schema' => [ - 'description' => '转码视频比特率。单位:kbps,取值:**1~6000**。'."\n" - ."\n" - .'> 转码视频会尽量接近您所设定的比特率,但转码视频的实际比特率不能保证和您所设定的完全一致,尤其是当您设定的比特率过大或过小时。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '720', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '219527', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR', 'FEATUREliveY7SMJ1'], + ], + 'parameters' => [ [ - 'name' => 'AudioBitrate', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '转码音频比特率。单位:kbps,取值:**1~1000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '512', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Gop', + 'name' => 'Mode', 'in' => 'query', 'schema' => [ - 'description' => '视频GOP(Group of Picture),单位可选帧或者秒。'."\n" - .'- 单位:帧,取值:**1~3000**。例如:设置GOP为2帧,则此参数传入2。'."\n" - .'- 单位:秒,取值:**1s~20s**。例如:设置GOP为1秒,则此参数传入1s。', + 'description' => '流模式,live或者rtc。live为正常直播流如rtmp。', 'type' => 'string', - 'required' => false, - 'example' => '1', + 'required' => true, + 'enumValueTitles' => ['rtc' => 'rtc模式', 'live' => 'live模式'], + 'example' => 'live', + 'enum' => ['rtc', 'live'], ], ], [ - 'name' => 'Profile', + 'name' => 'SDKAppID', 'in' => 'query', - 'schema' => [ - 'description' => '编码级别。视频支持的一组特定的编码功能,一般值越大得到的画面质量越好,同时编解码消耗的资源也越高。取值:'."\n" - ."\n" - .'- **1**:baseline(适合移动设备)。'."\n" - .'- **2**:main(适合标准分辨率设备)。'."\n" - .'- **3**:high(适合高分辨率设备)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['description' => 'ARTC应用ID。'."\n" + .'> 当参数Mode取值为rtc时,此参数必填,否则不生效。', 'type' => 'string', 'required' => false, 'example' => 'appId'], ], [ - 'name' => 'AudioProfile', + 'name' => 'ChannelID', 'in' => 'query', - 'schema' => [ - 'description' => '音频编码。取值:'."\n" - .'- **aac_low**'."\n" - .'- **aac_he**'."\n" - .'- **aac_he_v2**'."\n" - .'- **aac_ld**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'aac_low', - ], + 'schema' => ['description' => '房间号。'."\n" + .'> 参数Mode取值为rtc时,此参数必填,否则不生效。', 'type' => 'string', 'required' => false, 'example' => 'channelId'], ], [ - 'name' => 'AudioCodec', + 'name' => 'RtcUserId', 'in' => 'query', - 'schema' => [ - 'description' => '音频编码格式。取值:'."\n" - ."\n" - .'- **AAC**'."\n" - ."\n" - .'- **MP3**', - 'type' => 'string', - 'required' => false, - 'example' => 'AAC', - ], + 'schema' => ['description' => '推流用户ID。'."\n" + .'> 参数Mode取值为rtc时,此参数必填,且只能填写一个,否则不生效。', 'type' => 'string', 'required' => false, 'example' => 'user1'], ], [ - 'name' => 'AudioRate', + 'name' => 'StreamURL', 'in' => 'query', - 'schema' => [ - 'description' => '音频采样率。取值:**22050~96000**。'."\n" - ."\n" - .'>如果AudioProfile取值为**aac_ld**,则采样率不能超过44100。'."\n" - .'>', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '96000', - ], + 'schema' => ['description' => '直播流地址。'."\n" + .'> 参数Mode取值为live时,此参数必填,否则不生效。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://xxx'], ], [ - 'name' => 'AudioChannelNum', + 'name' => 'Language', 'in' => 'query', - 'schema' => [ - 'description' => '音频声道数。取值'."\n" - ."\n" - .'- **1**:单声道。'."\n" - .'- **2**:双声道。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['description' => '原音频语言,取值:'."\n" + .'- 日语:ja。'."\n" + .'- 粤语:yue。'."\n" + .'- 中英文自由说:fspk。'."\n" + .'- 英文:en。'."\n" + .'- 中文:cn。', 'type' => 'string', 'required' => true, 'example' => 'cn'], ], [ - 'name' => 'Lazy', + 'name' => 'CallbackURL', 'in' => 'query', - 'schema' => [ - 'description' => '是否开启触发转码。取值:'."\n" - .'- **yes**:开启触发转码。'."\n" - .'- **no**:不开启触发转码。', - 'type' => 'string', - 'required' => false, - 'example' => 'yes', - ], + 'schema' => ['description' => '回调地址。', 'type' => 'string', 'required' => true, 'example' => 'http://xxx.com'], ], [ - 'name' => 'EncryptParameters', + 'name' => 'AuthKey', 'in' => 'query', - 'schema' => [ - 'description' => '加密配置。JSON格式,各字段说明如下:'."\n" - ."\n" - .'- **EncryptType**:加密类型。固定取值aliyun。'."\n" - ."\n" - .'- **KmsKeyID**:用户KMS主密钥ID。'."\n" - ."\n" - .'- **KmsKeyExpireInterval**:换Key周期。取值范围:60~3600,单位:秒。'."\n" - ."\n" - .'> EncryptParameters参数若配置,则KmsKeyID、KmsUID、KmsKeyExpireInterval参数不能为空', - 'type' => 'string', - 'required' => false, - 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}', - ], + 'schema' => ['description' => '校验AuthKey,用于生成回调信息的MD5签名。'."\n" + .'> 回调时会在请求头中加两个鉴权字段,"SIG-TIME"表示当前时间戳,"ASR-SIG"表示md5鉴权字段,"ASR-SIG"字段的生成规则为md5(`${SIG-TIME}/${callbackurl}/${authKey}`)', 'type' => 'string', 'required' => false, 'example' => 'abcd'], ], [ - 'name' => 'ResWithSource', + 'name' => 'TranslateEnabled', 'in' => 'query', - 'schema' => [ - 'description' => '分辨率随源配置,若设置了该字段,分辨率以该字段为主。包含的字段如下:'."\n" - .'- **Type string** (必须添加):只可以传 short (短边自适应)、long(长边自适应) 、screen(横竖屏自适应) 。'."\n" - .'- **Value string**(必须添加):'."\n" - .' - 短边自适应取值可选:360、480、540、720、1080。'."\n" - .' - 长边自适应取值可选:640、848、960、1280、1920。'."\n" - .' - 横竖屏自适应取值可选:640\\*360、848\\*480、960\\*540、1280\\*720、1920\\*1080。', - 'type' => 'string', - 'required' => false, - 'example' => '{"Type":"short","Value":"1080"}', - ], + 'schema' => ['description' => '开启翻译。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'FpsWithSource', + 'name' => 'TargetLanguages', 'in' => 'query', - 'schema' => [ - 'description' => '帧率随源配置,若设置了该字段,帧率以该字段为主。包含的字段如下:'."\n" - .'- **UpLimit int**(必须添加):帧率上限,输入范围1-60的整数,且大于帧率下限。'."\n" - .'- **LowerLimit int** (必须添加):帧率下限,输入范围1-60的整数,且小于帧率上限。', - 'type' => 'string', - 'required' => false, - 'example' => '{"UpLimit":60,"LowerLimit":1}', - ], + 'schema' => ['description' => '目标翻译语种,取值:'."\n" + .'- 中文:cn。'."\n" + .'- 英文:en。'."\n" + .'- 日文:ja。', 'type' => 'string', 'required' => false, 'example' => 'en'], ], [ - 'name' => 'BitrateWithSource', + 'name' => 'AutoTerminateEnabled', 'in' => 'query', - 'schema' => [ - 'description' => '码率随源配置,若设置了该字段,码率以该字段为主。包含的字段如下:'."\n" - .'- **UpLimit int**(必须添加):码率上限,输入范围128-10000的整数,且大于码率下限。'."\n" - .'- **LowerLimit int** (必须添加):码率下限,输入范围128-10000的整数,且小于码率上限。'."\n" - .'- **Factor float** (必须添加):按源码率输出倍率,输入范围0.1-1,精确至小数点后一位,“1”为按源流输出。', - 'type' => 'string', - 'required' => false, - 'example' => '{"UpLimit":2500,"LowerLimit":800,"Factor":1}', - ], + 'schema' => ['description' => '断流最大延迟,超过则自动关闭任务。默认值:false。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'ExtWithSource', + 'name' => 'AutoTerminateDelay', 'in' => 'query', - 'schema' => [ - 'description' => '其他随源配置,包含的字段如下:'."\n" - .'- **KeyFrameOpen**:关键帧随源是否开启,开启后,转码输出流关键帧与原始流关键帧一致。取值yes或no。'."\n" - .'- **Copyts string** :pts随源是否开启,开启后,转码输出流pts与原始流pts一致。取值yes或no。'."\n" - .'- **SeiMode** :透传sei模式。取值有0(不透传)、 1(全部透传)。', - 'type' => 'string', - 'required' => false, - 'example' => '{"KeyFrameOpen":"yes","Copyts":"yes","SeiMode":1}', - ], + 'schema' => ['description' => '自动断流延时,单位秒,取值:1~10秒。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '5'], ], [ - 'name' => 'DeInterlaced', + 'name' => 'ReportInterval', 'in' => 'query', - 'schema' => [ - 'description' => '转码过程中是否自动检测并去除隔行处理(将隔行扫描内容转换为逐行扫描):'."\n" - ."\n" - .'- true:开启去隔行处理。'."\n" - ."\n" - .'- false:保持源格式,不做处理(默认)。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '回调上报间隔,单位毫秒,取值范围:-1~500毫秒。'."\n" + .'- -1:不接受中间结果,只接受整句回调。'."\n" + .'- 0或不设置:实时上报回调结果。'."\n" + .'- <=500毫秒:周期性间隔上报回调结果。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '5'], ], ], 'responses' => [ @@ -11484,359 +9885,372 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], + 'Description' => ['description' => '结果描述,为success时成功,有错误信息则返回。', 'type' => 'string', 'example' => 'success'], + 'RequestId' => ['description' => '网关请求ID。', 'type' => 'string', 'example' => '7FF5417D-06E9-5A2C-9A70-581F6149E6C1'], + 'RetCode' => ['description' => '状态码。返回2000表示成功,返回其他表示异常。', 'type' => 'integer', 'format' => 'int64', 'example' => '2000'], + 'TaskId' => ['description' => '生成的任务ID。', 'type' => 'string', 'example' => 'asr-a6ac15e0-9118-4b4c-9e64-306163a0****'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => '%s Please check and try again later.', - ], - [ - 'errorCode' => 'TemplateLimit', - 'errorMessage' => '%s Please check and try again later.', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"7FF5417D-06E9-5A2C-9A70-581F6149E6C1\\",\\n \\"RetCode\\": 2000,\\n \\"TaskId\\": \\"asr-a6ac15e0-9118-4b4c-9e64-306163a0****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n success\\n 7FF5417D-06E9-5A2C-9A70-581F6149E6C1\\n 2000\\n asr-a6ac15e0-9118-4b4c-9e64-306163a0****\\n","errorExample":""}]', + 'title' => '创建实时语音转文字或翻译', + 'description' => '本接口目前属于维护状态,建议通过智能工作流实现该能力,具体参考[智能工作流配置](~~2985843~~)。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '## 回调示例'."\n" + .'通过用户提供的 CallbackUrl,以 HTTP POST 请求的形式将 JSON 格式的数据放在请求体(Request Body)中回调至指定地址。回调参数Content详细说明及回调流程请参见:[交互流程与实现](~~2609586~~),示例如下所示:'."\n" + .'```'."\n" + .'{'."\n" + .' "task_id": "asr-cf8c70d7-3b8d-496c-98f8-4785******",'."\n" + .' "sdk_app_id": "",'."\n" + .' "channel_id": "",'."\n" + .' "rtc_user_id": "",'."\n" + .' "callback_time_stamp": 1723433155645,'."\n" + .' "language": "cn",'."\n" + .' "content": "{\\"header\\":{\\"nls_task_id\\":\\"af95c5cc332549f689f3153bc9******\\",\\"task_key\\":\\"tl_2977564_17234*****\\",\\"namespace\\":\\"SpeechTranscriber\\",\\"name\\":\\"TranscriptionResultChanged\\",\\"task_id\\":\\"413937911b874146b5796******\\",\\"message_id\\":\\"abfc9e9994e748a38499e1******\\",\\"status_text\\":\\"Success.\\",\\"status\\":20000000},\\"payload\\":{\\"result\\":\\"在这里与各位相聚\\",\\"confidence\\":0.0,\\"words\\":[{\\"startTime\\":0,\\"text\\":\\"在这\\",\\"endTime\\":510},{\\"startTime\\":510,\\"text\\":\\"里与\\",\\"endTime\\":1020},{\\"startTime\\":1020,\\"text\\":\\"各位\\",\\"endTime\\":1530},{\\"startTime\\":1530,\\"text\\":\\"相聚\\",\\"endTime\\":2040}],\\"index\\":0,\\"time\\":2040,\\"fixed_result\\":\\"\\",\\"unfixed_result\\":\\"\\",\\"status\\":0}}"'."\n" + .' }'."\n" + .'```', + 'changeSet' => [ + ['createdAt' => '2024-08-12T06:04:19.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRtcAsrTask'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateRtcAsrTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '添加自定义转码配置信息', - 'description' => '本接口目前支持以下自定义转码模版类型,取值:'."\n" - ."\n" - .'- h264:自定义H264标准模版。'."\n" - ."\n" - .'- h264-nbhd:自定义H264窄带高清™模版。'."\n" - ."\n" - .'- h265:自定义H265标准模版。'."\n" - ."\n" - .'- h265-nbhd:自定义H265窄带高清模版。'."\n" - ."\n" - .'- audio:纯音频模板。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'AddRtsLiveStreamTranscode' => [ - 'summary' => '调用AddRtsLiveStreamTranscode添加RTS自定义转码配置信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateRtcMPUEventSub' => [ + 'summary' => '创建混流转推事件订阅。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], + 'abilityTreeCode' => '219222', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '订阅的应用ID。'."\n" + .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourAppId'], ], [ - 'name' => 'Domain', + 'name' => 'ChannelIds', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '指定接收回调的混流任务的频道ID,可以同时填多个频道ID,多个频道ID之间采用英文逗号“,”隔开。'."\n" + .'>- 如果不填,则默认接收该AppId下所有混流转推任务的回调事件。'."\n" + .'- 同时填多个频道ID时,不能填写重复的频道ID,最多同时填20个频道ID。'."\n" + .'- 每个频道ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。'."\n", 'type' => 'string', 'required' => false, 'example' => 'yourChannelIds'], ], [ - 'name' => 'App', + 'name' => 'CallbackUrl', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。取值要求:'."\n" - ."\n" - .'- 该字段必须由大小写字母、数字、下划线(_)或短横线(-)组成。'."\n" - ."\n" - .'- 这些字符不必全含,建议取值大于3个字符,且字段的开头必须是字母(大小写)或数字。', - 'type' => 'string', - 'required' => true, - 'example' => 'aliyun-test', - ], + 'schema' => ['description' => '回调地址。地址格式请参见以下回调内容规范。'."\n" + .'> 回调地址协议头为HTTP、HTTPS等,仅可包含以下字符:a-z 、A-Z、0-9、-、_、?、%、=、#、.、/ 和 +,不超过2083个字符。', 'type' => 'string', 'required' => true, 'example' => 'http://****.com/callback'], ], - [ - 'name' => 'Template', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '转码模板自定义名称。取值要求:'."\n" - ."\n" - .'- 该字段必须由大小写字母、数字、下划线(_)或短横线(-)组成。'."\n" - ."\n" - .'- 这些字符不必全含,建议取值大于3个字符,且字段的开头必须是字母(大小写)或数字。'."\n" - ."\n" - .'>不能与标准的转码模板命名重复。', - 'type' => 'string', - 'required' => true, - 'example' => 'ld', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], + 'SubId' => ['description' => '订阅ID。', 'type' => 'string', 'example' => 'Sub-******9799B2C4500******'], + ], + 'description' => '', ], ], - [ - 'name' => 'TemplateType', - 'in' => 'query', - 'schema' => [ - 'description' => '自定义转码模版类型。目前支持:'."\n" - ."\n" - .'- **h264**:自定义H264标准模版。'."\n" - .'- **h264-nbhd**:自定义H264窄带高清™模版。'."\n" - .'- **h264-origin**:原画H264标准模版,转码参数尽量保持和片源相同。'."\n" - .'- **audio**:纯音频转码模板,转码出来文件只有声音没有图像。如果选择audio类型,必须同时设置请求参数AudioBitrate。'."\n" - ."\n" - .'> 如果选择h264或h264-nbhd或h264-origin类型,必须同时设置请求参数Height,Width,FPS,VideoBitrate和DeleteBframes。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'h264', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId无效,请检查后重试。'], ], - [ - 'name' => 'Height', - 'in' => 'query', - 'schema' => [ - 'description' => '转码视频高度。单位:像素。取值:'."\n" - .'>当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" - .'>'."\n" - ."\n" - .'需要**同时**满足如下三个条件:'."\n" - ."\n" - .'- **Height ≥ 100**:视频的高需要不小于100像素。'."\n" - .'- **max(Height,Width)≤ 2560**:视频的宽、高中较大的一个最大不能大于2560。'."\n" - .'- **min(Height,Width)≤ 1440**:视频的宽、高中较小的一个最大不能大于1440。'."\n" - ."\n" - .'例如:1560×1560(正方形视频)是不合法的。'."\n" - ."\n" - .'>原画模板由于需要保持片源的信息,分辨率最高支持到4K。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1280', - ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => '无权限,请检查后重试。'], ], - [ - 'name' => 'Width', - 'in' => 'query', - 'schema' => [ - 'description' => '转码视频宽度。单位:像素。取值:'."\n" - .'>当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" - .'>'."\n" - ."\n" - .'需要同时满足如下三个条件:'."\n" - ."\n" - .'- **Width≥ 100**:视频的宽需要不小于100像素。'."\n" - .'- **max(Height,Width)≤ 2560**:视频的宽、高中较大的一个最大不能大于2560。'."\n" - .'- **min(Height,Width)≤ 1440**:视频的宽、高中较小的一个最大不能大于1440。'."\n" - ."\n" - .'例如:1560×1560(正方形视频)是不合法的。'."\n" - ."\n" - .'>原画模板由于需要保持片源的信息,分辨率最高支持到4K。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '720', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''], ], - [ - 'name' => 'FPS', - 'in' => 'query', - 'schema' => [ - 'description' => '转码视频帧率。单位:FPS。取值:**1**~**60**。'."\n" - ."\n" - .'>当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" - .'>', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"SubId\\": \\"Sub-******9799B2C4500******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n Sub-******9799B2C4500******\\n","errorExample":""}]', + 'title' => '创建混流转推事件订阅', + 'description' => '本接口用于创建混流转推事件订阅。在创建订阅时,您可以配置回调地址、订阅应用与频道信息等参数。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '## 回调内容示例'."\n" + .'回调内容以**HTTP/HTTPS POST**请求发送到您的业务服务器,字符编码格式为**UTF-8**格式,请求体为**JSON**结构体,当您的业务服务器响应**HTTP状态码为200**时,认定为回调成功。回调内容示例如下:'."\n" + ."\n" + .'> 建议在判断混流转推是否正常时,不仅需要根据回调通知判断,也要同时配合接入的对应CDN厂商提供的在线流状态判断是否正常。'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "EventType": 1,'."\n" + .' "MsgId": "42bba8b5-94ab-468c-9dae-9b501dd****",'."\n" + .' "AppId": "rtcdev",'."\n" + .' "SubId": "Sub-9799B2C45009799B2*****",'."\n" + .' "TaskId": "mpucallbacktest",'."\n" + .' "CallbackTs": 1712656430476,'."\n" + .' "Payload": {'."\n" + .' "DstUrl": "rtmp://domain/app/stream?auth",'."\n" + .' "EventTs": 1712656430384,'."\n" + .' "EventCode": 1,'."\n" + .' "ErrorCode": 0,'."\n" + .' "ErrorMessage": ""'."\n" + .' }'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'### 回调信息'."\n" + .'回调信息的header包括如下字段:'."\n" + ."\n" + .'| 属性 | 描述 |'."\n" + .'| ------ | ----- |'."\n" + .'| Content-Type | 数据类型,固定值:application/json |'."\n" + .'| Ali-Rtc-Timestamp | 时间戳 |'."\n" + .'| Ali-Rtc-Signature | 签名值 |'."\n" + ."\n" + .'回调信息的回调内容包括如下字段:'."\n" + .'| 属性 | 类型| 描述 | 示例值 |'."\n" + .'| ------ | ----- | ----- | -----|'."\n" + .'| EventType | Integer| 回调事件类型,对于混流转推回调,类型为固定值:1| 1 |'."\n" + .'| MsgId| String| 回调ID,唯一表示本次回调 | \\*\\*\\*\\*\\*973C-4529-A334\\*\\*\\*\\*\\*|'."\n" + .'| AppId| String| 订阅的应用ID | yourAppId |'."\n" + .'| SubId| String| 订阅ID | Sub-\\*\\*\\*\\*\\*\\*9799B2C4500\\*\\*\\*\\*\\*\\* |'."\n" + .'| TaskId| String| 旁路任务ID | yourTaskId |'."\n" + .'| CallbackTs| Integer| 发起回调请求的毫秒时间戳 | 1712656430476 |'."\n" + .'| Payload| JSON Object| 回调事件信息 | - |'."\n" + ."\n" + .'* 回调事件信息(Payload)'."\n" + ."\n" + .'| 属性 | 类型| 描述 | 示例值 |'."\n" + .'| ------ | ----- | ----- | -----|'."\n" + .'| DstUrl | String | 转推目的URL地址 | rtmp://domain/app/stream?auth |'."\n" + .'| EventTs | Integer | 回调事件发生的毫秒时间戳 | 1712656430384 |'."\n" + .'| EventCode | Integer | 回调事件Code | 1 |'."\n" + .'| ErrorCode | Integer | 回调事件的错误码 | 10001 |'."\n" + .' | ErrorMessage | String| 回调事件的错误原因 | rtmp server init failed |'."\n" + ."\n" + .'## 回调事件Code'."\n" + .'| 字段名 | 值| 含义 | 回调频率 |'."\n" + .'| ------ | ----- | ----- | -----|'."\n" + .'| MPU_STATE_PREPARING | 0 | 旁路转推任务创建成功,任务被触发 | 仅回调1次 |'."\n" + .'| MPU_STATE_ESTABLISHING | 1 | 旁路转推任务建联中 | 每5秒回调1次 |'."\n" + .'| MPU_STATE_RUNNING | 2 | 旁路转推任务运行中 | 仅回调1次 |'."\n" + .'| MPU_STATE_RECOVERING | 3 | 旁路转推异常中断,正在恢复中 | 每5秒回调1次 |'."\n" + .'| MPU_STATE_TERMINATED | 4 | 旁路转推任务结束,包括正常停止、启动失败、异常退出等,通过ErrorCode与ErrorMessage区分 | 仅回调1次 |'."\n" + ."\n" + .'回调事件的状态转移示例如下:'."\n" + .'![](https://img.alicdn.com/imgextra/i2/O1CN01XYVSiA1oERjKdEOgt_!!6000000005193-0-tps-1277-328.jpg)'."\n" + .'**注意:** '."\n" + .'1. 回调信息有可能会乱序到达您的业务服务器,您可以根据 Payload 中的 EventTs 做事件排序,如果您只关心回调事件的最新状态,可以忽略后续到达的过期事件。'."\n" + .'2. 对于通过API[创建混流转推任务(新)](~~2848199~~)创建的混流转推任务,当房间内所有用户均离开房间后一段时间,任务会自动停止,停止时会发送一个MPU_STATE_TERMINATED的回调。'."\n" + .'3. 回调配置只影响增量任务,不影响存量任务。即:'."\n" + ."\n" + .' a. 开启回调配置前已启动的任务,不发送回调;'."\n" + ."\n" + .' b. 开启回调配置后启动的任务,会发送回调;'."\n" + ."\n" + .' c. 删除回调配置前已启动的任务,会继续发送回调直到任务结束;'."\n" + ."\n" + .' d. 删除回调配置后启动的任务,不发送回调。'."\n" + ."\n" + .'### 回调错误码'."\n" + .'当旁路转推任务结束时,通过ErrorCode与ErrorMessage标识结束的原因。'."\n" + ."\n" + .'| 错误码 | 错误信息 | 含义 |'."\n" + .'| ------ | ----- | ----- |'."\n" + .'| 0 | | 任务正常停止 |'."\n" + .'| 10001 | rtmp server init failed | 建联失败,任务异常结束 |'."\n" + .'| 10002 | rtmp server internal error| 服务内部错误,任务异常结束 |'."\n" + .'| 10003 | task idle timeout | 任务空闲超时后结束 |'."\n" + ."\n" + .'## 回调鉴权说明'."\n" + .'事件回调鉴权功能默认开启,鉴权逻辑如下所示:'."\n" + .'- 阿里云视频直播服务发起回调请求时,在HTTP(S)请求头中包含Ali-Rtc-Timestamp和Ali-Rtc-Signature字段,供回调消息接收服务端进行签名认证。Ali-Rtc-Signature值计算方式为:Ali-Rtc-Signature=MD5SUM(MD5CONTENT)。其中,MD5CONTENT=回调地址|Ali-Rtc-Timestamp取值|鉴权Key;回调地址指配置的完整回调URL,鉴权Key指用户创建AppId时生成的AppKey。'."\n" + .'- 回调消息接收服务端接收回调消息时,将回调地址、Ali-Rtc-Timestamp取值、鉴权Key进行拼接后计算MD5值,得到加密字符串,再将计算出的加密字符串与音视频通信服务发起的HTTP(S)请求头中的Ali-Rtc-Signature字段值进行对比,如果不一致,则请求非法。'."\n" + .'## 回调异常重试'."\n" + .'阿里云发起回调请求时,仅当您的业务服务器响应HTTP状态码为200时认定为回调成功。若回调失败,阿里云会重试7次,分别间隔1秒、2秒、5秒、10秒、1分钟、2分钟、5分钟。每次重试请求均会产生对应的回调记录。', + 'changeSet' => [ + ['createdAt' => '2024-07-04T06:14:37.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRtcMPUEventSub'], ], + ], + 'ramActions' => [ [ - 'name' => 'VideoBitrate', - 'in' => 'query', - 'schema' => [ - 'description' => '转码视频比特率。单位:kbps。取值:**1**~**6000**。'."\n" - ."\n" - .'>当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" - .'>'."\n" - ."\n" - .'>转码视频会尽量接近您所设定的比特率,但转码视频的实际比特率不能保证和您所设定的完全一致,尤其是当您设定的比特率过大或过小时。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2000', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateRtcMPUEventSub', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteCaster' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'AudioBitrate', - 'in' => 'query', - 'schema' => [ - 'description' => '转码音频比特率。'."\n" - .'单位:kbps。取值:**1**~**1000**。'."\n" - ."\n" - .'>当TemplateType(自定义转码模版类型)设为audio时,本参数必填。'."\n" - .'>'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '128', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeCode' => '106904', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], + ], + 'parameters' => [ [ - 'name' => 'Gop', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '视频GOP(Group of Picture)。主要用于控制关键帧间隔。单位:秒。取值:**1**~**3**。', - 'type' => 'string', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DeleteBframes', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '是否使用B帧进行转码。取值:'."\n" - .'>当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" - .'>'."\n" - ."\n" - .'- **true**:转码后的视频无B帧。'."\n" - ."\n" - .'- **false**:包含B帧,默认包含B帧。'."\n" - ."\n" - .'> 不传参数时默认为**false**。'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '导播台ID,请确保传入的CasterId是正确的。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], - [ - 'name' => 'Opus', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '音频转码是否使用opus进行转码(主要用户兼容原生webrtc问题)。取值:'."\n" - ."\n" - .'- **true**:音频转码为opus格式。'."\n" - ."\n" - .'- **false**:不使用opus格式转码。'."\n" - ."\n" - .'> 不传参数时默认为**false**。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'type' => 'object', + 'properties' => [ + 'CasterId' => ['description' => '导播台ID。可作为添加导播台视频资源、添加导播台布局、查询导播台布局列表、添加导播台组件和添加导播台节目单的请求参数。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvaildCaster.Delete', 'errorMessage' => 'Caster can not be deleted when ChargeType is Prepaid', 'description' => ''], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态为已开启,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '访问拒绝,请检查后重试。'], + ], [ - 'name' => 'Profile', - 'in' => 'query', - 'schema' => [ - 'description' => '编码级别。视频支持的一组特定的编码功能,一般值越大得到的画面质量越好,同时编解码消耗的资源也越高。取值:'."\n" - .'- **1**:baseline(适合移动设备)。'."\n" - .'- **2**:main(适合标准分辨率设备)。'."\n" - .'- **3**:high(适合高分辨率设备)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ], + ], + 'title' => '删除导播台', + 'summary' => '调用DeleteCaster删除导播台。', + 'description' => '- 只有在导播台关闭状态才能删除,否则会删除失败。'."\n" + .'- 删除导播台会把相关的场景、组件、布局一起删掉。'."\n" + .'- 删除之后不可恢复。 '."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-08-21T03:33:21.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCaster'], ], + ], + 'ramActions' => [ [ - 'name' => 'AudioProfile', - 'in' => 'query', - 'schema' => [ - 'description' => '音频编码级别。取值: '."\n" - .'- **aac_low**。'."\n" - .'- **aac_he**。'."\n" - .'- **aac_he_v2**。'."\n" - .'- **aac_ld**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'aac_low', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\na2b8e671-2fe5-4642-a2ec-bf93880e****\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e1a49\\"\\n}"}]', + ], + 'DeleteCasterComponent' => [ + 'summary' => '调用DeleteCasterComponent删除导播台组件。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'AudioCodec', - 'in' => 'query', - 'schema' => [ - 'description' => '音频编码器。取值:'."\n" - .'- **aac**。'."\n" - .'- **mp3**。'."\n" - ."\n" - .'>如果要使用opus编码,把Opus选项参数置为true即可。', - 'type' => 'string', - 'required' => false, - 'example' => 'aac', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], + ], + 'parameters' => [ [ - 'name' => 'AudioRate', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '音频采样率。取值:**22050~96000**,其中44100比较常用。单位:Hz。'."\n" - ."\n" - .'>如果音频编码AudioProfile是aac_ld,则采样率不能超过44100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '44100', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'AudioChannelNum', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '音频声道数。取值:'."\n" - .'- **1** :单声道。'."\n" - .'- **2**:立体声。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], [ - 'name' => 'Lazy', + 'name' => 'ComponentId', 'in' => 'query', - 'schema' => [ - 'description' => '是否开启触发转码。取值:'."\n" - .'- **yes**:开启触发转码。'."\n" - .'- **no**:不开启触发转码。', - 'type' => 'string', - 'required' => false, - 'example' => 'no', - ], + 'schema' => ['description' => '组件ID。如果您通过[AddCasterComponent接口](~~2848030~~)添加导播台组件,请查看AddCasterComponent接口调用返回的参数ComponentId值。', 'type' => 'string', 'required' => true, 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****'], ], ], 'responses' => [ @@ -11844,863 +10258,707 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'CasterId' => ['description' => '导播台ID。可作为查询导播台组件列表、添加导播台节目单、修改导播台组件的请求参数。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880****'], + 'ComponentId' => ['description' => '组件ID。可作为查询导播台组件列表、修改导播台组件的请求参数。', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => '%s Please check and try again later.', - ], - [ - 'errorCode' => 'TemplateLimit', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '待操作的组件不存在,请检查后重试。'], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n","errorExample":""}]', - 'title' => '添加RTS自定义转码配置信息', - 'description' => '## 使用说明'."\n" - .'调用本接口添加RTS自定义转码配置信息,本接口目前只支持h264、h264-nbhd、h264-origin、audio四种自定义转码模版类型。'."\n" + 'title' => '删除导播台组件', + 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口删除导播台组件。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => '### 特殊错误码'."\n" - .'|错误代码|描述|HTTP 状态码|语义|'."\n" - .'|--------|--------|----|----|'."\n" - .'|InvalidDomain.NotFound|The domain provided does not exist in our records.|404|域名不存在或不属于当前用户。|'."\n" - .'|IllegalOperation|Illegal domain operate is not permitted.|403|不支持当前操作,如:非直播类域名。|'."\n" - .'|InvalidParameters|Invalid parameters.|400|参数不合法,如高度过大、比特率过大等。|'."\n" - .'|ConfigAlreadyExists|Config has already exist.|400|配置已添加。|'."\n" - .'|InternalError|The request processing has failed due to some unknown error.|500|后台发生未知错误。|', - ], - 'UpdateCustomLiveStreamTranscode' => [ - 'summary' => '更新自定义转码配置信息。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCasterComponent'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterComponent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880****\\",\\n \\"ComponentId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880****\\n 21926b36-7dd2-4fde-ae25-51b5bc8e****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'DeleteCasterEpisode' => [ + 'summary' => '删除导播台节目。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '206837', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Domain', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名,不可修改。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], [ - 'name' => 'App', + 'name' => 'EpisodeId', 'in' => 'query', + 'schema' => ['description' => '节目ID。如果您通过[AddCasterEpisode接口](~~2848068~~)添加导播台节目,请查看AddCasterEpisode接口调用返回的参数EpisodeId值。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf932738****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '播流所属应用名称,不可修改。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', + 'type' => 'object', + 'properties' => [ + 'CasterId' => ['description' => '导播台ID。可作为修改导播台节目的请求参数。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'EpisodeId' => ['description' => '节目ID。可作为修改导播台节目的请求参数。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf932738****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数StartTime无效,请检查后重试。'], + ['errorCode' => 'IncorrectEpisodeStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '节目当前状态不可操作,请检查后重试。'], + ], [ - 'name' => 'Template', - 'in' => 'query', - 'schema' => [ - 'description' => '转码模板自定义名称,不可修改。', - 'type' => 'string', - 'required' => true, - 'example' => 'LiveCusTranscode****', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidEpisode.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '节目不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], + ], + 'title' => '删除导播台节目', + 'description' => '调用本接口删除导播台节目前必须先获取导播台ID和节目ID。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'TemplateType', - 'in' => 'query', - 'schema' => [ - 'description' => '自定义转码模版类型,不可修改。', - 'type' => 'string', - 'required' => true, - 'example' => 'h264', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterEpisode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"EpisodeId\\": \\"a2b8e671-2fe5-4642-a2ec-bf932738****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n a2b8e671-2fe5-4642-a2ec-bf932738****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'DeleteCasterEpisodeGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Height', - 'in' => 'query', - 'schema' => [ - 'description' => '转码视频高度。单位:像素。取值:'."\n" - ."\n" - .'需要同时满足如下三个条件:'."\n" - .'- Height ≥ 100:视频的高需要不小于100像素。'."\n" - .'- max(Height,Width)≤ 2560:视频的宽、高中较大的一个最大不能大于2560。'."\n" - .'- min(Height,Width)≤ 1440:视频的宽、高中较小的一个最大不能大于1440。'."\n" - .'> 265窄带高清模板不得超过1280×720。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '720', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], + ], + 'parameters' => [ [ - 'name' => 'Width', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '转码视频宽度。单位:像素。取值:'."\n" - ."\n" - .'需要同时满足如下三个条件:'."\n" - .'- Width ≥ 100:视频的宽需要不小于100像素。'."\n" - .'- max(Height,Width)≤ 2560:视频的宽、高中较大的一个最大不能大于2560。'."\n" - .'- min(Height,Width)≤ 1440:视频的宽、高中较小的一个最大不能大于1440。'."\n" - ."\n" - .'> 265窄带高清模板不得超过1280×720。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '576', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'FPS', + 'name' => 'ProgramId', 'in' => 'query', + 'schema' => ['description' => '节目单ID。如果您通过[AddCasterEpisodeGroup接口](~~2848071~~)添加导播台节目列表,请查看AddCasterEpisodeGroup接口调用返回的参数ProgramId值。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf932738****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '转码视频帧率。单位:FPS,取值:1~60。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ], [ - 'name' => 'VideoBitrate', - 'in' => 'query', - 'schema' => [ - 'description' => '转码视频比特率。单位:kbps,取值:1~6000。'."\n" - ."\n" - .'> 转码视频会尽量接近您所设定的比特率,但转码视频的实际比特率不能保证和您所设定的完全一致,尤其是当您设定的比特率过大或过小时。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '720', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'title' => '删除导播台节目列表', + 'summary' => '删除导播台节目列表。', + 'description' => '先通过[AddCasterEpisodeGroup接口](~~2848071~~)添加导播台节目列表,再调用本接口删除导播台节目列表。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCasterEpisodeGroup'], ], + ], + 'ramActions' => [ [ - 'name' => 'AudioBitrate', - 'in' => 'query', - 'schema' => [ - 'description' => '转码音频比特率。单位:kbps,取值:1~1000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '512', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterEpisodeGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + ], + 'DeleteCasterLayout' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Gop', - 'in' => 'query', - 'schema' => [ - 'description' => '视频GOP(Group of Picture),支持以帧或秒为单位,以帧为单位时,取值为{数字};以秒为单位时,取值为{数字}s。'."\n" - .'- 单位为帧时,取值:1~3000。'."\n" - .'- 单位为秒时,取值:1~20s。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], + ], + 'parameters' => [ [ - 'name' => 'Profile', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '编码级别。视频支持的一组特定的编码功能,一般值越大得到的画面质量越好,同时编解码消耗的资源也越高。取值:'."\n" - .'- 1:baseline(适合移动设备)。'."\n" - .'- 2:main(适合标准分辨率设备)。'."\n" - .'- 3:high(适合高分辨率设备)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'AudioProfile', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '音频编码。取值:'."\n" - .'- aac_low'."\n" - .'- aac_he'."\n" - .'- aac_he_v2'."\n" - .'- aac_ld', - 'type' => 'string', - 'required' => false, - 'example' => 'aac_low', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], [ - 'name' => 'AudioCodec', + 'name' => 'LayoutId', 'in' => 'query', - 'schema' => [ - 'description' => '音频编码格式。取值:'."\n" - .'- aac'."\n" - .'- mp3', - 'type' => 'string', - 'required' => false, - 'example' => 'aac', - ], + 'schema' => ['description' => '布局ID。如果您通过[AddCasterLayout接口](~~2848025~~)添加导播台布局,请查看AddCasterLayout接口调用返回的参数LayoutId值。', 'type' => 'string', 'required' => true, 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****'], ], - [ - 'name' => 'AudioRate', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '音频采样率。取值:22050,32000,44100,48000,96000。单位:Hz。'."\n" - ."\n" - .'> 如果**AudioProfile**取值为**aac_ld**,则采样率不能超过44100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '96000', + 'type' => 'object', + 'properties' => [ + 'CasterId' => ['description' => '导播台ID。可作为修改导播台布局、查询导播台布局列表、添加导播台组件、查询导播台组件列表的请求参数。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'LayoutId' => ['description' => '布局ID。可作为查询导播台布局列表的请求参数。', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], + ], + 'description' => '', ], ], - [ - 'name' => 'AudioChannelNum', - 'in' => 'query', - 'schema' => [ - 'description' => '音频声道数。取值'."\n" - .'- 1:单声道。'."\n" - .'- 2:双声道。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidLayoutId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId无效,请检查后重试。'], ], [ - 'name' => 'Lazy', - 'in' => 'query', - 'schema' => [ - 'description' => '是否开启触发转码。取值:'."\n" - .'- **yes**:开启触发转码。'."\n" - .'- **no**:不开启触发转码。', - 'type' => 'string', - 'required' => false, - 'example' => 'yes', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], - [ - 'name' => 'EncryptParameters', - 'in' => 'query', - 'schema' => [ - 'description' => '加密配置。JSON格式,各字段说明如下:'."\n" - .'- EncryptType:加密类型。固定取值aliyun。'."\n" - .'- KmsKeyID:用户KMS主密钥ID。'."\n" - .'- KmsKeyExpireInterval:换Key周期。取值范围:60~3600,单位:秒。'."\n" - ."\n" - .'> 当使用DRM加密时,KmsKeyID不可修改。', - 'type' => 'string', - 'required' => false, - 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}', - ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId不存在,请检查后重试。'], ], - [ - 'name' => 'ResWithSource', - 'in' => 'query', - 'schema' => [ - 'description' => '分辨率随源配置,若设置了该字段,分辨率以该字段为主。包含的字段如下:'."\n" - .'- **Type string** (必须添加):只可以传 short (短边自适应)、long(长边自适应) 、screen(横竖屏自适应) 。'."\n" - .'- **Value string**(必须添加): '."\n" - .' - 短边自适应取值可选:360、480、540、720、1080。'."\n" - .' - 长边自适应取值可选:640、848、960、1280、1920。'."\n" - .' - 横竖屏自适应取值可选:640\\*360、848\\*480、960\\*540、1280\\*720、1920\\*1080。', - 'type' => 'string', - 'required' => false, - 'example' => '{"Type":"short","Value":"1080"}', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], + ], + 'title' => '删除导播台布局数据', + 'summary' => '删除布局数据。', + 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口删除导播台布局数据。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'FpsWithSource', - 'in' => 'query', - 'schema' => [ - 'description' => '帧率随源配置,若设置了该字段,帧率以该字段为主。包含的字段如下:'."\n" - .'- **UpLimit int**(必须添加):帧率上限,输入范围1-60的整数,且大于帧率下限。'."\n" - .'- **LowerLimit int**(必须添加):帧率下限,输入范围1-60的整数,且小于帧率上限。', - 'type' => 'string', - 'required' => false, - 'example' => '{"UpLimit":60,"LowerLimit":1}', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterLayout', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n 21926b36-7dd2-4fde-ae25-51b5bc8e****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'DeleteCasterProgram' => [ + 'summary' => '删除导播台节目单。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'BitrateWithSource', - 'in' => 'query', - 'schema' => [ - 'description' => '码率随源配置,若设置了该字段,码率以该字段为主。包含的字段如下:'."\n" - .'- **UpLimit int**(必须添加):码率上限,输入范围128-10000的整数,且大于码率下限。'."\n" - .'- **LowerLimit int**(必须添加):码率下限,输入范围128-10000的整数,且小于码率上限。'."\n" - .'- **Factor float** (必须添加):按源码率输出倍率,输入范围0.1-1,精确至小数点后一位,“1”为按源流输出。', - 'type' => 'string', - 'required' => false, - 'example' => '{"UpLimit":2500,"LowerLimit":800,"Factor":1}', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], + ], + 'parameters' => [ [ - 'name' => 'ExtWithSource', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '其他随源配置,包含的字段如下:'."\n" - .'- **KeyFrameOpen**: yes或no。'."\n" - .'- **Copyts string** :yes或no。'."\n" - .'- **SeiMode** :取值有0(不透传)、 1( 透传但不是所有)、 2( 透传并且所有)。', - 'type' => 'string', - 'required' => false, - 'example' => '{"KeyFrameOpen":"yes","Copyts":"yes","SeiMode":1}', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DeInterlaced', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '转码过程中是否自动检测并去除隔行处理(将隔行扫描内容转换为逐行扫描):'."\n" - ."\n" - .'- true:开启去隔行处理。'."\n" - ."\n" - .'- false:保持源格式,不做处理(默认)。', - 'type' => 'boolean', - 'required' => false, - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'CasterId' => ['description' => '导播台ID。可作为添加导播台节目、删除导播台节目、修改导播台节目的请求参数。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => '%s Please check and try again later.', - ], - [ - 'errorCode' => 'TemplateLimit', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '更新自定义转码配置', - 'description' => '本接口目前支持以下自定义转码模版类型,取值:'."\n" - .'- h264:自定义H264标准模版。'."\n" - .'- h264-nbhd:自定义H264窄带高清™模版。'."\n" - .'- h265:自定义H265标准模版。 '."\n" - .'- h265-nbhd:自定义H265窄带高清模版。'."\n" - .'- audio:纯音频模板。'."\n" + 'title' => '删除导播台节目单', + 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口删除导播台节目单。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。', - ], - 'UpdateLiveStreamTranscode' => [ - 'summary' => '更新通用转码配置信息。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCasterProgram'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterProgram', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'DeleteCasterSceneConfig' => [ + 'summary' => '删除导播台场景配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '206836', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - 'FEATUREliveHVN9B2', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名,不可修改。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'App', - 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称,不可修改。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Template', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '转码模版,不可修改。', - 'type' => 'string', - 'required' => true, - 'example' => 'lsd', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'b4810848-bcf9-4aef-bd4a-e6bba2d9****'], ], [ - 'name' => 'EncryptParameters', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'description' => '加密配置。JSON格式,各字段说明如下:'."\n" - .'- **EncryptType**:加密类型。固定取值aliyun。'."\n" - .'- **KmsKeyID**:用户KMS主密钥ID。'."\n" - .'- **KmsKeyExpireInterval**:换Key周期。取值范围:60~3600,单位:秒。'."\n" - .'> 当使用DRM加密时,**KmsKeyID**不可修改。', - 'type' => 'string', - 'required' => false, - 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}', - ], + 'schema' => ['description' => '场景ID。', 'type' => 'string', 'required' => true, 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****'], ], [ - 'name' => 'Lazy', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '是否开启触发转码。取值:'."\n" - .'- **yes**:开启触发转码。'."\n" - .'- **no**:不开启触发转码。', - 'type' => 'string', - 'required' => false, - 'example' => 'yes', - 'default' => 'yes', - ], + 'schema' => ['description' => '场景配置类型。取值:'."\n" + ."\n" + .'- **Component**:组件配置。'."\n" + .'- **Layout**:布局配置。'."\n" + .'- **All**:组件和布局配置。', 'type' => 'string', 'required' => true, 'example' => 'Component'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB9*********'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'IncorrectSceneStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene已开启,请检查后重试。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SceneId无效,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.ConfigError', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene配置错误,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态为空闲,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene不存在,请检查后重试。'], + ['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], + ['errorCode' => 'InvalidVideo.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '视频资源不存在,请检查后重试。'], + ['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId不存在,请检查后重试。'], + ['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '待操作的组件不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '更新通用转码配置', - 'description' => '先通过密钥管理服务KMS获取用户KMS主密钥ID,再调用本接口添加转码配置信息,目前本接口只支持标准质量模板和窄带高清™转码模板两种转码模板。'."\n" + 'title' => '清除导播台的指定场景的配置信息', + 'description' => '调用本接口删除导播台场景配置。本接口目前支持的场景配置类型为组件配置、布局配置和组件和布局配置。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。', - ], - 'UpdateRtsLiveStreamTranscode' => [ - 'summary' => '更新RTS自定义转码配置信息。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterSceneConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB9*********\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'DeleteCasterVideoResource' => [ + 'summary' => '删除视频资源。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名,不可修改。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'App', - 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称,不可修改。', - 'type' => 'string', - 'required' => true, - 'example' => 'aliyun-test', - ], - ], - [ - 'name' => 'Template', - 'in' => 'query', - 'schema' => [ - 'description' => '转码模板自定义名称,不可修改。', - 'type' => 'string', - 'required' => true, - 'example' => 'ld', - ], - ], - [ - 'name' => 'TemplateType', - 'in' => 'query', - 'schema' => [ - 'description' => '自定义转码模版类型,不可修改。', - 'type' => 'string', - 'required' => true, - 'example' => 'h264', - ], - ], - [ - 'name' => 'Height', - 'in' => 'query', - 'schema' => [ - 'description' => '转码视频高度。单位:像素。取值:'."\n" - ."\n" - .'需要同时满足如下三个条件:'."\n" - .'- Height ≥ 100:视频的高需要不小于100像素。'."\n" - .'- max(Height,Width)≤ 2560:视频的宽、高中较大的一个最大不能大于2560。'."\n" - .'- min(Height,Width)≤ 1440:视频的宽、高中较小的一个最大不能大于1440。'."\n" - .'例如:1560×1560(正方形视频)是不合法的。'."\n" - .'> - 当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" - .'>- 原画模板由于需要保持片源的信息,分辨率最高支持到4K。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1280', - ], - ], - [ - 'name' => 'Width', - 'in' => 'query', - 'schema' => [ - 'description' => '转码视频宽度。单位:像素。取值:'."\n" - ."\n" - .'需要同时满足如下三个条件:'."\n" - .'- Width≥ 100:视频的宽需要不小于100像素。'."\n" - .'- max(Height,Width)≤ 2560:视频的宽、高中较大的一个最大不能大于2560。'."\n" - .'- min(Height,Width)≤ 1440:视频的宽、高中较小的一个最大不能大于1440。'."\n" - .'例如:1560×1560(正方形视频)是不合法的。'."\n" - ."\n" - .'> - 当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" - .'- 原画模板由于需要保持片源的信息,分辨率最高支持到4K。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '720', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'FPS', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '转码视频帧率。单位:FPS。取值:1~60。'."\n" - ."\n" - .'> 当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****'], ], [ - 'name' => 'VideoBitrate', + 'name' => 'ResourceId', 'in' => 'query', - 'schema' => [ - 'description' => '转码视频比特率。单位:kbps。取值:1~6000。'."\n" - ."\n" - .'> - 当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" - .'>- 转码视频会尽量接近您所设定的比特率,但转码视频的实际比特率不能保证和您所设定的完全一致,尤其是当您设定的比特率过大或过小时。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2000', - ], + 'schema' => ['description' => '资源ID。如果您通过[AddCasterVideoResource](~~2848020~~)接口添加导播台视频资源,请查看AddCasterVideoResource接口调用返回的参数ResourceId值。', 'type' => 'string', 'required' => true, 'example' => '05ab713c-676e-49c0-96ce-cc408da1****'], ], - [ - 'name' => 'AudioBitrate', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '转码音频比特率。'."\n" - .'单位:kbps。取值:1~1000。'."\n" - ."\n" - .'> 当TemplateType(自定义转码模版类型)设为audio时,本参数必填。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '128', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122C*******'], + ], + 'description' => '', ], ], - [ - 'name' => 'Gop', - 'in' => 'query', - 'schema' => [ - 'description' => '视频GOP(Group of Picture)。主要用于控制关键帧间隔。单位:秒。取值:1~3。', - 'type' => 'string', - 'required' => false, - 'example' => '2', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], ], [ - 'name' => 'DeleteBframes', - 'in' => 'query', - 'schema' => [ - 'description' => '是否使用B帧进行转码。取值:'."\n" - ."\n" - .'- true:转码后的视频无B帧。'."\n" - .'- false:包含B帧,默认包含B帧。'."\n" - ."\n" - .'> - 当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" - .'>- 不传参数时默认为false。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], - [ - 'name' => 'Opus', - 'in' => 'query', - 'schema' => [ - 'description' => '音频转码是否使用opus进行转码(主要用户兼容原生webrtc问题)。取值:'."\n" - .'- true:音频转码为opus格式。'."\n" - .'- false:不使用opus格式转码。'."\n" - ."\n" - .'> 不传参数时默认为false。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], ], - [ - 'name' => 'Profile', - 'in' => 'query', - 'schema' => [ - 'description' => '编码级别。视频支持的一组特定的编码功能,一般值越大得到的画面质量越好,同时编解码消耗的资源也越高。取值:'."\n" - .'- **1**:baseline(适合移动设备)。'."\n" - .'- **2**:main(适合标准分辨率设备)。'."\n" - .'- **3**:high(适合高分辨率设备)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], - [ - 'name' => 'AudioProfile', - 'in' => 'query', - 'schema' => [ - 'description' => '音频编码级别。取值:'."\n" - .'- aac_low。'."\n" - .'- aac_he。'."\n" - .'- aac_he_v2。'."\n" - .'- aac_ld。', - 'type' => 'string', - 'required' => false, - 'example' => 'aac_low', - ], + ], + 'title' => '删除导播台视频资源', + 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口删除导播台视频资源。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCasterVideoResource'], ], + ], + 'ramActions' => [ [ - 'name' => 'AudioCodec', - 'in' => 'query', - 'schema' => [ - 'description' => '音频编码器。取值:'."\n" - .'- aac。'."\n" - .'- mp3。'."\n" - ."\n" - .'> 如果要使用opus编码,把Opus选项参数置为true即可。', - 'type' => 'string', - 'required' => false, - 'example' => 'aac', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterVideoResource', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122C*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', + ], + 'DeleteChannel' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'AudioRate', - 'in' => 'query', - 'schema' => [ - 'description' => '音频采样率。取值:22050,32000,44100,48000,96000。其中44100比较常用。单位:Hz。'."\n" - ."\n" - .'> 如果音频编码AudioProfile是aac_ld,则采样率不能超过44100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '44100', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'abilityTreeCode' => '169448', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], + ], + 'parameters' => [ [ - 'name' => 'AudioChannelNum', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '音频声道数。取值:'."\n" - .'- **1** :单声道。'."\n" - .'- **2**:立体声。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['description' => '应用ID,仅支持传单个ID。', 'type' => 'string', 'required' => false, 'example' => 'eo85****'], ], [ - 'name' => 'Lazy', + 'name' => 'ChannelId', 'in' => 'query', - 'schema' => [ - 'description' => '是否开启触发转码。取值:'."\n" - .'- **yes**:开启触发转码。'."\n" - .'- **no**:不开启触发转码。', - 'type' => 'string', - 'required' => false, - 'example' => 'no', - ], + 'schema' => ['description' => '已入会的频道ID,仅支持传单个ID。', 'type' => 'string', 'required' => false, 'example' => 'testid'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '请求ID。', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => '%s Please check and try again later.', - ], - [ - 'errorCode' => 'TemplateLimit', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => '400', 'errorMessage' => 'InvalidInput', 'description' => ''], + ], + [ + ['errorCode' => '401', 'errorMessage' => 'InvalidAuth', 'description' => ''], + ], + 404 => [ + ['errorCode' => '404', 'errorMessage' => 'AppOrChannelNotExists', 'description' => ''], + ], + 500 => [ + ['errorCode' => '500', 'errorMessage' => 'ServerError, Check App And Channel Exists,Retry', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '更新RTS自定义转码配置', - 'description' => '本接口目前只支持h264、h264-nbhd、h264-origin、audio四种自定义转码模版类型。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。', - ], - 'DeleteLiveStreamTranscode' => [ - 'summary' => '删除转码配置信息。', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '关闭频道', + 'summary' => '关闭频道将使所有当前频道内的成员退出,但不影响后续重新使用该频道。', + 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2023-08-31T01:48:03.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteChannel'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DeleteChannel', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live:*:{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', + ], + 'DeleteCustomTemplate' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -12711,62 +10969,19 @@ 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], + 'abilityTreeCode' => '106913', + 'abilityTreeNodes' => ['FEATUREliveI16NIW'], ], 'parameters' => [ [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'App', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'Template', 'in' => 'query', - 'schema' => [ - 'description' => '转码模版。取值:'."\n" - ."\n" - .'- 标准质量模板:'."\n" - .' '."\n" - .' - lld:流畅。'."\n" - .' '."\n" - .' - lsd:标清。'."\n" - .' '."\n" - .' - lhd:高清。'."\n" - .' '."\n" - .' - lud :超清。'."\n" - ."\n" - .'- 窄带高清™转码模板:'."\n" - ."\n" - .' - ld:流畅。'."\n" - .' '."\n" - .' - sd:标清。'."\n" - .' '."\n" - .' - hd:高清。'."\n" - .' '."\n" - .' - ud:超清。 '."\n" - ."\n" - .'- 自定义模板:用户自定义命名。', - 'type' => 'string', - 'required' => true, - 'example' => 'lld', - ], + 'schema' => ['description' => '模板名String,需要删除的模板名。', 'type' => 'string', 'required' => true, 'example' => 'TestTemplate'], ], ], 'responses' => [ @@ -12774,693 +10989,320 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BC1E78D3-FA8B-4457-DEE2-6093E1232254'], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '删除转码配置', - 'description' => '本接口目前支持的转码模版类型为标准质量模板、窄带高清™转码模板和自定义模板。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'CustomTemplateInvalid', 'errorMessage' => '%s, please check and try again later.', 'description' => '自定义模板无效,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'title' => '删除合流自定义模板', + 'summary' => '删除合流自定义模板。', + 'description' => '先获取需要删除的模板名,再调用本接口删除合流自定义模板。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveStreamTranscodeInfo' => [ - 'summary' => '查询转码配置信息。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCustomTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC1E78D3-FA8B-4457-DEE2-6093E1232254\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BC1E78D3-FA8B-4457-DEE2-6093E1232254\\n","errorExample":""}]', + ], + 'DeleteEdgeTranscodeJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainTranscodeName', + 'name' => 'ClusterId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '机房ID。', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******'], ], [ - 'name' => 'AppName', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'myapp', - ], + 'schema' => ['description' => '边缘转码任务ID。', 'type' => 'string', 'required' => true, 'example' => '****20b48fb04483915d4f2cd8ac****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '转码配置信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '62136AE6-7793-45ED-B14A-60D19A9486D3', - ], - 'DomainTranscodeList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DomainTranscodeInfo' => [ - 'description' => '转码配置信息。', - 'type' => 'array', - 'items' => [ - 'description' => '转码配置信息。', - 'type' => 'object', - 'properties' => [ - 'TranscodeApp' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'TranscodeTemplate' => [ - 'description' => '转码模版。取值:'."\n" - ."\n" - .'- **标准质量模板**:'."\n" - ."\n" - .' - **lld**:流畅。'."\n" - .' '."\n" - .' - **lsd**:标清。'."\n" - .' '."\n" - .' - **lhd**:高清。'."\n" - .' '."\n" - .' - **lud** :超清。'."\n" - ."\n" - .'- **窄带高清™转码模板**: '."\n" - ."\n" - .' - **ld**:流畅。'."\n" - .' '."\n" - .' - **sd**:标清。'."\n" - .' '."\n" - .' - **hd**:高清。'."\n" - .' '."\n" - .' - **ud**:超清。', - 'type' => 'string', - 'example' => 'lld', - ], - 'IsLazy' => [ - 'description' => '是否开启强制转码。取值:'."\n" - .'- **true**:延迟转码。'."\n" - .'- **false**:强制转码。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'TranscodeName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'CustomTranscodeParameters' => [ - 'description' => '自定义转码配置。', - 'type' => 'object', - 'properties' => [ - 'BitrateWithSource' => [ - 'description' => '码率随源配置。', - 'type' => 'object', - 'example' => '{\\"UpLimit\\":2500,\\"LowerLimit\\":800,\\"Factor\\":1}', - ], - 'VideoProfile' => [ - 'description' => '视频的编码等级。取值:'."\n" - ."\n" - .'- **baseline**:适合移动设备。'."\n" - .'- **main**:适合标准分辨率设备。'."\n" - .'- **high**:适合高分辨率设备。', - 'type' => 'string', - 'example' => 'high', - ], - 'AudioBitrate' => [ - 'description' => '转码音频比特率。单位:kbps,取值范围:**1~1000**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '64', - ], - 'Height' => [ - 'description' => '转码视频高度。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1200', - ], - 'RtsFlag' => [ - 'description' => '低延时的标签。固定取值**true**。'."\n" - ."\n" - .'> 当转码为低延时转码时,才返回此参数。', - 'type' => 'string', - 'example' => 'true', - ], - 'TemplateType' => [ - 'description' => '自定义转码模版类型。取值:'."\n" - ."\n" - .'- **h264**:自定义H264标准模版。'."\n" - .'- **h264-nbhd**:自定义H264窄带高清™模版。'."\n" - .'- **h265**:自定义H265标准模版。'."\n" - .'- **h265-nbhd**:自定义H265窄带高清模版。'."\n" - .'- **audio**:纯音频模板。', - 'type' => 'string', - 'example' => 'h264', - ], - 'Bframes' => [ - 'description' => '去B帧。固定取值:**0**。', - 'type' => 'string', - 'example' => '0', - ], - 'ExtWithSource' => [ - 'description' => '其他随源配置。', - 'type' => 'object', - 'example' => '{\\"KeyFrameOpen\\":\\"yes\\",\\"Copyts\\":\\"yes\\",\\"SeiMode\\":1}', - ], - 'AudioRate' => [ - 'description' => '音频采样率。取值:**22050~96000**。'."\n" - ."\n" - .'>如果AudioProfile取值为**aac_ld**,则采样率不能超过44100。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '44100', - ], - 'FpsWithSource' => [ - 'description' => '帧率随源配置。', - 'type' => 'object', - 'example' => '{\\"UpLimit\\":60,\\"LowerLimit\\":1}', - ], - 'AudioCodec' => [ - 'description' => '音频编码格式。', - 'type' => 'string', - 'example' => 'ACC', - ], - 'FPS' => [ - 'description' => '转码视频帧率。单位:FPS。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - 'Gop' => [ - 'description' => '视频GOP(Group of Picture)。单位:帧,取值范围:**1~3000**。', - 'type' => 'string', - 'example' => '10', - ], - 'Width' => [ - 'description' => '转码视频宽度。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'VideoBitrate' => [ - 'description' => '转码视频比特率。单位:kbps。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3000', - ], - 'AudioChannelNum' => [ - 'description' => '音频声道数。取值:'."\n" - ."\n" - .'- **1**:单声道。'."\n" - .'- **2**:双声道。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'AudioProfile' => [ - 'description' => '音频编码等级。取值:'."\n" - .'- **aac_low**'."\n" - .'- **aac_he**'."\n" - .'- **aac_he_v2**'."\n" - .'- **aac_ld**'."\n", - 'type' => 'string', - 'example' => 'aac_low', - ], - 'ResWithSource' => [ - 'description' => '分辨率随源配置。', - 'type' => 'object', - 'example' => '{\\"Type\\":\\"short\\",\\"Value\\":\\"1080\\"}', - ], - 'DeInterlaced' => [ - 'description' => '转码过程中是否自动检测并去除隔行处理(将隔行扫描内容转换为逐行扫描):'."\n" - ."\n" - .'- true:开启去隔行处理。'."\n" - ."\n" - .'- false:保持源格式,不做处理(默认)。', - 'type' => 'boolean', - ], - ], - ], - 'EncryptParameters' => [ - 'description' => '加密配置。', - 'type' => 'object', - 'properties' => [ - 'EncryptType' => [ - 'description' => '加密类型。固定取值**aliyun**。', - 'type' => 'string', - 'example' => 'aliyun', - ], - 'KmsKeyID' => [ - 'description' => '用户KMS主密钥ID。', - 'type' => 'string', - 'example' => 'afce5722-81d2-43c3-9930-7601da11****', - ], - 'KmsKeyExpireInterval' => [ - 'description' => '换Key周期。取值范围:**60~3600**,单位:秒。', - 'type' => 'string', - 'example' => '3600', - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '操作拒绝,请检查后重试。'], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => '无权限,请检查后重试。'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"62136AE6-7793-45ED-B14A-60D19A9486D3\\",\\n \\"DomainTranscodeList\\": {\\n \\"DomainTranscodeInfo\\": [\\n {\\n \\"TranscodeApp\\": \\"liveApp****\\",\\n \\"TranscodeTemplate\\": \\"lld\\",\\n \\"IsLazy\\": true,\\n \\"TranscodeName\\": \\"example.com\\",\\n \\"CustomTranscodeParameters\\": {\\n \\"BitrateWithSource\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"VideoProfile\\": \\"high\\",\\n \\"AudioBitrate\\": 64,\\n \\"Height\\": 1200,\\n \\"RtsFlag\\": \\"true\\",\\n \\"TemplateType\\": \\"h264\\",\\n \\"Bframes\\": \\"0\\",\\n \\"ExtWithSource\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"AudioRate\\": 44100,\\n \\"FpsWithSource\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"AudioCodec\\": \\"ACC\\",\\n \\"FPS\\": 15,\\n \\"Gop\\": \\"10\\",\\n \\"Width\\": 1000,\\n \\"VideoBitrate\\": 3000,\\n \\"AudioChannelNum\\": 2,\\n \\"AudioProfile\\": \\"aac_low\\",\\n \\"ResWithSource\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"DeInterlaced\\": true\\n },\\n \\"EncryptParameters\\": {\\n \\"EncryptType\\": \\"aliyun\\",\\n \\"KmsKeyID\\": \\"afce5722-81d2-43c3-9930-7601da11****\\",\\n \\"KmsKeyExpireInterval\\": \\"3600\\"\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 62136AE6-7793-45ED-B14A-60D19A9486D3\\n \\n liveApp****\\n lld\\n true\\n example.com\\n \\n high\\n 64\\n 1200\\n true\\n h264\\n 0\\n 44100\\n ACC\\n 15\\n 10\\n 1000\\n 3000\\n 2\\n aac_low\\n \\n \\n aliyun\\n afce5722-81d2-43c3-9930-7601da11****\\n 3600\\n \\n \\n","errorExample":""}]', - 'title' => '查询转码配置信息', - 'description' => '先获取主播流域名,再调用本接口查询转码配置信息。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddTrancodeSEI' => [ - 'summary' => '添加转码SEI信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + ['errorCode' => 'JobNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '任务不存在,请检查后重试。'], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', + 'title' => '删除边缘转码任务', + 'summary' => '删除边缘转码任务。', + 'description' => '- 本接口用于删除边缘转码任务。'."\n" + ."\n" + .'- 用户需要具有访问边缘转码服务的权限,才能正常调用本接口。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEdgeTranscodeJob'], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], - ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。'."\n" - ."\n" - .'> 必须为源流名称,所有的转码流都会添加上SEI信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], - ], + 'ramActions' => [ [ - 'name' => 'Text', - 'in' => 'query', - 'schema' => [ - 'description' => 'SEI文本。长度限制:4000字节。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveSei****', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + ], + 'DeleteEventSub' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Pattern', - 'in' => 'query', - 'schema' => [ - 'description' => '追加到每一个关键帧或每一帧。取值:'."\n" - .'- **keyframe**:关键帧。'."\n" - .'- **frame**:每一帧。', - 'type' => 'string', - 'required' => true, - 'example' => 'keyframe', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'Repeat', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '重复次数。-1代表无限。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '-1', - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => '9qb1****'], ], [ - 'name' => 'Delay', + 'name' => 'SubscribeId', 'in' => 'query', - 'schema' => [ - 'description' => '接收到命令后的延迟时间。单位: 毫秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '100', - ], + 'schema' => ['description' => '订阅ID。您可通过[CreateEventSub](~~2848209~~)接口的返回参数查询订阅ID。', 'type' => 'string', 'required' => true, 'example' => 'ad53276431c****'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4E*****43-CB92E68F4CD8', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '760bad53276431c499e30dc36f6b26be'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4E*****43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4E*****43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '添加转码 SEI 信息', - 'description' => '先获取播流域名,再调用本接口添加转码SEI信息。其中播流名称必须为源流名称,所有的转码流都会添加上SEI信息。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除订阅房间消息回调', + 'summary' => '删除订阅房间消息的回调。', + 'description' => '调用本接口前,您必须已经调用[CreateEventSub](~~2848209~~)创建订阅房间消息的回调。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddLiveRecordVodConfig' => [ - 'summary' => '增加直播录制转点播配置,将录制内容保存到点播媒资库。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2023-11-21T05:55:02.000Z', 'description' => '错误码发生变更、请求参数发生变更、响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEventSub'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DeleteEventSub', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live:*:{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 760bad53276431c499e30dc36f6b26be\\n","errorExample":""}]', + ], + 'DeleteLiveAIProduceRules' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '106854', - 'abilityTreeNodes' => [ - 'FEATUREliveL04ZVK', - ], + 'abilityTreeCode' => '219079', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。'."\n" - .'> 请先确认与此播放域名直播中心相同区域的点播已开通服务。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'testName', - ], - ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => false, - 'example' => 'stream', - ], - ], - [ - 'name' => 'VodTranscodeGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '点播转码模板组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'e2d796d3bb5fd8049d32bff62f94****', - ], - ], - [ - 'name' => 'CycleDuration', - 'in' => 'query', - 'schema' => [ - 'description' => '周期录制时长。单位:秒。默认值为**3600**,取值范围:**300~21600**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '21600', - 'minimum' => '300', - 'example' => '300', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'AutoCompose', + 'name' => 'RulesId', 'in' => 'query', - 'schema' => [ - 'description' => '设置为**ON**表示开启自动合并,且必须同时设置请求参数ComposeVodTranscodeGroupId。不传入参数值表示关闭自动合并。'."\n" - ."\n" - .'>开启自动合并,会使用视频点播服务剪辑合成功能。该功能计费详情,请参见[剪辑合成计费](~~188310~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'ON', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '字幕规则ID。', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****'], ], [ - 'name' => 'StorageLocation', + 'name' => 'SuffixName', 'in' => 'query', - 'schema' => [ - 'description' => '存储地址。', - 'type' => 'string', - 'required' => false, - 'example' => '****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com', - ], + 'schema' => ['description' => '字幕后缀。'."\n" + .'> 传值为SubtitleName字幕模板名称设置的值。', 'type' => 'string', 'required' => false, 'example' => 'et'], ], [ - 'name' => 'ComposeVodTranscodeGroupId', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '对自动合成出来的新视频在点播服务中进行一次转码,所使用的点播转码模板组ID。'."\n" - ."\n" - .'> - 当AutoCompose(是否开启自动合并)设为ON时,本参数才必填。'."\n" - .'> - 自动合成和转码常见问题,请参见[直播转点播常见问题FAQ](~~99726~~)。'."\n" - .'> - 点播转码计费详情,请参见[媒资转码计费](~~188308~~)。', - 'type' => 'string', - 'required' => false, - 'example' => '*****', - ], + 'schema' => ['description' => '主播放域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'OnDemand', + 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => '按需录制,取值:'."\n" - .' '."\n" - .'- **0**(默认值):关闭。'."\n" - ."\n" - .'- **1**:不支持按需录制。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => '直播流应用名称。', 'type' => 'string', 'required' => true, 'example' => 'AppName'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b96****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], - [ - 'errorCode' => 'CommomLiveRcordConfigExisted', - 'errorMessage' => 'Commom liverecord config has already exist.', - ], - [ - 'errorCode' => 'InvalidAutoCompose.Malformed', - 'errorMessage' => 'Specified parameter AutoCompose is not valid.', - ], - [ - 'errorCode' => 'InvalidAutoComposeAndComposeVodTranscodeGroupId.Malformed', - 'errorMessage' => 'Specified parameter AutoCompose and ComposeVodTranscodeGroupId is not valid, must both empty or input', - ], - ], - 403 => [ - [ - 'errorCode' => 'InvalidRegion.Conflict', - 'errorMessage' => 'Specified parameter StorageLocation and Region is not match', - ], - ], - [ - [ - 'errorCode' => 'InvalidStorage.NotFound', - 'errorMessage' => 'Specified parameter StorageLocation is not exist', - ], - [ - 'errorCode' => 'InvalidTemplateGroupId.NotFound', - 'errorMessage' => 'Specified parameter vodTranscodeGroupId or composeVodTranscodeGroupId is not exist', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'IncorrectSubtitleStatus.%s', 'errorMessage' => '%s.', 'description' => '字幕模版状态异常'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n} "}]', - 'title' => '添加直播录制转点播配置', - 'description' => '调用本接口添加直播录制转点播配置,将录制内容保存到点播媒资库。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '删除字幕规则', + 'summary' => '删除字幕规则。', + 'description' => '本接口支持删除指定的字幕规则。'."\n" ."\n" - .'> 使用金融云账号不支持视频直播录制到点播。'."\n" + .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" + .'>'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdateLiveRecordVodConfig' => [ - 'summary' => '更新直播录制转点播配置。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-10-14T03:46:55.000Z', 'description' => '请求参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAIProduceRules'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAIProduceRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64- af62-20e91b96****\\n","errorExample":""}]', + ], + 'DeleteLiveAIStudio' => [ + 'summary' => '删除虚拟演播模板。', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -13468,119 +11310,125 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '181113', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '239775', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'StudioId', 'in' => 'query', + 'schema' => ['description' => '模板ID,由CreateLiveAIStudio接口返回', 'type' => 'string', 'required' => true, 'example' => '369ced1f-c33a-49e5-91da-bdaae3d6c1c2'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'title' => 'Schema of Response', + 'description' => '响应结构体', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求id', 'type' => 'string', 'example' => '40A4F36D-A7CC-473A-88E7-154F92242566'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '直播服务未开通,请检查后重试。'], + ['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PurchaseTime无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ExpireTime无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType仅支持后付费,请检查后重试。'], + ['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterTemplate无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '时间间隔无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ClientToken无效,请检查后重试。'], + ['errorCode' => 'IncorrectStudioStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Studio使用中,请检查后重试。'], + ], [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'testName', - ], + ['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台数量超限,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '访问拒绝,请检查后重试。'], ], [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => false, - 'example' => 'stream', - ], + ['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数NormType无效,请检查后重试。'], + ['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ], + 408 => [ + ['errorCode' => 'DeleteLiveAIStudio.Timeout', 'errorMessage' => '%s, please try again later.', 'description' => '调用DeleteLiveAIStudio超时,请稍后重试。'], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除虚拟演播模板', + 'description' => '删除虚拟演播模板,删除前必须解绑规则,否则报错'."\n" + ."\n\n" + .'>当前虚拟演播轻量化功能处于邀测阶段,单个用户最多可添加300个模板。>', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'VodTranscodeGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '点播转码模板组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'e2d796d3bb5fd8049d32bff62f94****', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAIStudio', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","type":"json"}]', + ], + 'DeleteLiveAISubtitle' => [ + 'summary' => '调用DeleteLiveAISubtitle删除指定字幕模板。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'CycleDuration', - 'in' => 'query', - 'schema' => [ - 'description' => '周期录制时长。单位:秒。默认值为**3600**,取值范围:**300~21600**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '21600', - 'minimum' => '300', - 'example' => '300', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '218856', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], + ], + 'parameters' => [ [ - 'name' => 'AutoCompose', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '是否开启自动合并。取值:'."\n" - ."\n" - .'- **ON**:开启。如果取值为ON,必须同时设置请求参数ComposeVodTranscodeGroupId。'."\n" - ."\n" - .'- **OFF**:关闭。', - 'type' => 'string', - 'required' => false, - 'example' => 'OFF', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ComposeVodTranscodeGroupId', + 'name' => 'SubtitleId', 'in' => 'query', - 'schema' => [ - 'description' => '对自动合成出来的新视频在点播服务中进行一次转码,所使用的点播转码模板组ID。'."\n" - ."\n" - .'> 通过 [查询转码配置列表](~~454928~~) 获取', - 'type' => 'string', - 'required' => false, - 'example' => '*****', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '字幕模板ID。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], [ - 'name' => 'OnDemand', + 'name' => 'SubtitleName', 'in' => 'query', - 'schema' => [ - 'description' => '按需录制,取值:'."\n" - ."\n" - .'- **0**(默认值):关闭。'."\n" - ."\n" - .'- **1**:通过HTTP回调方式。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'allowEmptyValue' => true, + 'schema' => ['description' => '字幕模板名称,仅支持数字、大小写字母或短横线-,短横线不和位于首位。', 'type' => 'string', 'required' => false, 'example' => 'sub01'], ], ], 'responses' => [ @@ -13588,71 +11436,55 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '61C96B9A-F203-4EC5-8E43-CB92E68F67DF', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], - [ - 'errorCode' => 'CommomLiveRcordConfigExisted', - 'errorMessage' => 'Commom liverecord config has already exist.', - ], - [ - 'errorCode' => 'InvalidAutoCompose.Malformed', - 'errorMessage' => 'Specified parameter AutoCompose is not valid.', - ], - [ - 'errorCode' => 'InvalidAutoComposeAndComposeVodTranscodeGroupId.Malformed', - 'errorMessage' => 'Specified parameter AutoCompose and ComposeVodTranscodeGroupId is not valid, must both empty or input', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], ], - 403 => [ - [ - 'errorCode' => 'InvalidRegion.Conflict', - 'errorMessage' => 'Specified parameter StorageLocation and Region is not match', - ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除字幕模板', + 'description' => '本接口支持删除直播指定的字幕模板。'."\n" + ."\n" + .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" + .'>'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2024-12-04T05:54:29.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAISubtitle'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidStorage.NotFound', - 'errorMessage' => 'Specified parameter StorageLocation is not exist', - ], - [ - 'errorCode' => 'InvalidTemplateGroupId.NotFound', - 'errorMessage' => 'Specified parameter vodTranscodeGroupId or composeVodTranscodeGroupId is not exist', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAISubtitle', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"61C96B9A-F203-4EC5-8E43-CB92E68F67DF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 61C96B9A-F203-4EC5-8E43-CB92E68F67DF\\n","errorExample":""}]', - 'title' => '更新直播录制转点播配置', - 'description' => '本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64-af62-20e91b96****\\n","errorExample":""}]', ], - 'DeleteLiveRecordVodConfig' => [ - 'summary' => '删除直播录制转点播配置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteLiveAppRecordConfig' => [ + 'summary' => '删除App级别录制配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13663,51 +11495,23 @@ 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveL04ZVK', - ], + 'abilityTreeNodes' => ['FEATUREliveL04ZVK'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '播流名称。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], ], ], 'responses' => [ @@ -13715,124 +11519,73 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '6EBD1AC4-C34D-4AE1-963E-B688A228BE31'], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + 400 => [ + ['errorCode' => 'InvalidRegion', 'errorMessage' => 'The current region does not support this operation.', 'description' => '当前区域不支持该操作。'], + ['errorCode' => 'Forbidden', 'errorMessage' => 'Ram Permission is forbidden.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '删除直播录制转点播配置', - 'description' => '先获取主播流域名,再调用本接口删除直播录制转点播配置。'."\n" - ."\n\n" + 'title' => '解除录制配置', + 'description' => '先获取主播流域名,再调用本接口删除App级别录制配置。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveRecordVodConfigs' => [ - 'summary' => '查询直播转点播配置列表。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAppRecordConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAppRecordConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"}]', + ], + 'DeleteLiveAppSnapshotConfig' => [ + 'summary' => '解除直播流下AppName的截图配置,重新推流后生效。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveL04ZVK', - ], + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], ], 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], - ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', - ], - ], - [ - 'name' => 'PageNum', - 'in' => 'query', - 'schema' => [ - 'description' => '分页的页码。默认值:**1**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页大小。默认值为**10**,取值范围:**5~100**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'minimum' => '5', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => '直播流应用名称。输入的AppName必须与需要转推的直播流AppName保持一致,方可生效。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], ], 'responses' => [ @@ -13840,417 +11593,164 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'PageNum' => [ - 'description' => '分页页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A', - ], - 'PageSize' => [ - 'description' => '分页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '总数。', - 'type' => 'string', - 'example' => '100', - ], - 'LiveRecordVodConfigs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LiveRecordVodConfig' => [ - 'description' => '配置信息列表。'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'StorageLocation' => [ - 'description' => '存储地址。', - 'type' => 'string', - 'example' => '****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com', - ], - 'AppName' => [ - 'description' => '直播流所属应用名称。'."\n", - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'AutoCompose' => [ - 'description' => '是否开启自动合并。取值:'."\n" - ."\n" - .'- **ON**:开启'."\n" - .'- **OFF**:关闭', - 'type' => 'string', - 'example' => 'ON', - ], - 'OnDemand' => [ - 'description' => '按需录制,取值:'."\n" - ."\n" - .'- **0**(默认值):关闭。'."\n" - ."\n" - .'- **1**:通过HTTP回调方式。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'StreamName' => [ - 'description' => '播流名称。'."\n", - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'CreateTime' => [ - 'description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'example' => '2015-12-01T17:37:00Z', - ], - 'VodTranscodeGroupId' => [ - 'description' => '点播转码组模板ID。'."\n", - 'type' => 'string', - 'example' => 'e2d796d3bb5fd8049d32bff62f94****', - ], - 'CycleDuration' => [ - 'description' => '周期录制时长。单位:秒。默认值为**3600**,取值范围:**300~21600**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '360', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'ComposeVodTranscodeGroupId' => [ - 'description' => '自动合并点播转码模板组ID。'."\n" - ."\n" - .'> 如果DescribeLiveRecordVodConfigs接口的AutoCompose设置为ON,则返回本参数。', - 'type' => 'string', - 'example' => 'dadfcaadde****', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 1,\\n \\"RequestId\\": \\"5056369B-D337-499E-B8B7-B761BD37B08A\\",\\n \\"PageSize\\": 1,\\n \\"Total\\": \\"100\\",\\n \\"LiveRecordVodConfigs\\": {\\n \\"LiveRecordVodConfig\\": [\\n {\\n \\"StorageLocation\\": \\"****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"AutoCompose\\": \\"ON\\",\\n \\"OnDemand\\": 0,\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"CreateTime\\": \\"2015-12-01T17:37:00Z\\",\\n \\"VodTranscodeGroupId\\": \\"e2d796d3bb5fd8049d32bff62f94****\\",\\n \\"CycleDuration\\": 360,\\n \\"DomainName\\": \\"example.com\\",\\n \\"ComposeVodTranscodeGroupId\\": \\"dadfcaadde****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 5056369B-D337-499E-B8B7-B761BD37B08A\\n 1\\n 100\\n \\n \\n ****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com\\n liveApp****\\n ON\\n 0\\n liveStream****\\n 2015-12-01T17:37:00Z\\n e2d796d3bb5fd8049d32bff62f94****\\n 360\\n example.com\\n dadfcaadde****\\n \\n \\n","errorExample":""}]', - 'title' => '查询直播录制转点播配置', - 'description' => '先获取播流域名,再调用本接口查询直播转点播配置列表。'."\n" + 'errorCodes' => [], + 'title' => '删除直播截图配置', + 'description' => '调用本接口解除播流下AppName的截图配置,重新推流后才生效。'."\n" ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AddLiveAppRecordConfig' => [ - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAppSnapshotConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAppSnapshotConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n\\t\\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\",\\n\\t\\"HostId\\": \\"live.aliyuncs.com\\",\\n\\t\\"Code\\": \\"InternalError\\",\\n\\t\\"Message\\": \\"The request processing has failed due to some unknown error.\\"\\n}"},{"type":"xml","example":"\\r\\n\\r\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n\\t","errorExample":""}]', + ], + 'DeleteLiveAudioAuditConfig' => [ + 'summary' => '删除直播语音审核配置信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'AppName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。AppName名称与推流地址中的AppName名称对应,模板才能生效。若不限制AppName可填*,即可匹配所有AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'OssEndpoint', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储的Endpoint名称。'."\n" - ."\n" - .'直播录制文件存储至OSS,需提前创建OSS Bucket,创建方法请参见[配置OSS](~~84932~~) 。', - 'type' => 'string', - 'required' => true, - 'example' => 'oss-cn-beijing.aliyuncs.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'OssBucket', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储的Bucket名称。'."\n" - ."\n" - .'直播录制文件存储至OSS,需提前创建OSS Bucket,创建方法请参见[配置OSS](~~84932~~) 。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveBucket****', - ], + 'schema' => ['description' => '播流所属的应用名称。'."\n" + ."\n" + .'> AppName取值为星号(*)时,代表该域名下所有的AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。StreamName名称与推流地址中的StreamName名称对应,模板才能生效。若不限制StreamName可填*,即可匹配AppName下所有StreamName。', - 'type' => 'string', - 'required' => false, - 'example' => 'teststream', - ], + 'schema' => ['description' => '播流名称。'."\n" + ."\n" + .'> StreamName取值为星号(*)时,代表该App下所有的StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], - [ - 'name' => 'StartTime', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '录制开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> 设置的时间必须是实际推流时间开始7天之内,只在流级别录制(StreamName不为空)有效。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-04-10T09:57:21Z', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E******'], + ], + 'description' => '', ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '录制结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> EndTime与StartTime相差不应超过7天,超过7天将按照7天计算。只在流级别录制(StreamName不为空)有效。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-04-16T09:57:21Z', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '存在无效参数,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], ], - [ - 'name' => 'OnDemand', - 'in' => 'query', - 'schema' => [ - 'description' => '按需/手动录制。取值:'."\n" - ."\n" - .'- **0**(默认值):关闭,即自动录制。'."\n" - .'- **1**:按需录制,通过HTTP回调方式。需要先通过[AddLiveRecordNotifyConfig](~~2847891~~)接口配置OnDemandUrl,否则默认不录制。'."\n" - .'- **2**:按需录制,通过解析推流参数。'."\n" - .'- **7**:手动录制,默认不录制,可以通过[RealTimeRecordCommand](~~2847882~~)接口手动控制录制开启或停止。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], - [ - 'name' => 'DelayTime', - 'in' => 'query', - 'schema' => [ - 'description' => '断流拼接时长。'."\n" - .'直播断流时长超过设定的拼接时长后,将会生成新文件,断流拼接时长支持15~21600秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '180', - ], + ], + 'title' => '删除直播语音审核配置', + 'description' => '- 先获取主播流域名,再调用本接口删除直播语音审核配置信息。'."\n" + ."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAudioAuditConfig'], ], + ], + 'ramActions' => [ [ - 'name' => 'RecordFormat', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '记录详情。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'SliceDuration' => [ - 'description' => '单个切片时长。单位:秒。'."\n" - ."\n" - .'>当RecordFormat.N.Format(格式)设为m3u8或cmaf时,本参数才有效。'."\n" - .'>'."\n" - ."\n" - .'不填则默认为30秒。取值范围:5s~30s。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', - ], - 'SliceOssObjectPrefix' => [ - 'description' => '切片名称。'."\n" - ."\n" - .'>当RecordFormat.N.Format(格式)设为m3u8或cmaf时,本参数才需要配置。'."\n" - .'>'."\n" - ."\n" - .'- 默认30秒一片,小于256字节,支持变量匹配,包含{AppName}、{StreamName}、{UnixTimestamp}、{Sequence}。'."\n" - .'- 参数值必须包含{UnixTimestamp}和{Sequence}变量。', - 'type' => 'string', - 'required' => false, - 'example' => 'record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}', - ], - 'CycleDuration' => [ - 'description' => '周期录制时长。单位:秒。'."\n" - ."\n" - .'> - 若不填则取默认值,不同录制格式的默认值不同:m3u8、cmaf 格式默认6小时,flv、mp4格式默认1小时。'."\n" - .'> - 如果在一个录制周期内,直播流发生了断流,但是在断流拼接时长内,该直播流又正常推流,那么仍会在同一个录制文件中继续录制。'."\n" - .'>- 一条直播流必须断流超过断流拼接时长,才会生成录制文件。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'OssObjectPrefix' => [ - 'description' => 'OSS存储的录制文件名。'."\n" - ."\n" - .'- 文件名小于256字节,支持变量匹配,包含 {AppName}、{StreamName}、{Sequence}、{StartTime}、{EndTime}、{EscapedStartTime}、{EscapedEndTime}。'."\n" - .'- 参数值必须要有{StartTime}或{EscapedStartTime}和{EndTime}或{EscapedEndTime}。'."\n" - ."\n\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}', - ], - 'Format' => [ - 'description' => '格式。目前支持M3U8、FLV、MP4、CMAF。取值:'."\n" - ."\n" - .'>RecordFormat和TranscodeRecordFormat两者至少需要设置一个。如果选择m3u8或cmaf格式,必须同时设置请求参数RecordFormat.N.SliceOssObjectPrefix和RecordFormat.N.SliceDuration。'."\n" - .'>'."\n" - ."\n" - .'- m3u8。'."\n" - .'- flv。'."\n" - .'- mp4。'."\n" - .'- cmaf。', - 'type' => 'string', - 'required' => false, - 'example' => 'm3u8', - ], - ], - 'required' => false, + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAudioAuditConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], - 'required' => false, - 'maxItems' => 3, ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'DeleteLiveAudioAuditNotifyConfig' => [ + 'summary' => '删除直播语音审核回调配置信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'TranscodeRecordFormat', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106923', + 'abilityTreeNodes' => ['FEATUREliveG4SX14', 'FEATUREliveUTGSNT'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '转码记录详情。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'SliceDuration' => [ - 'description' => '转码流录制单个切片时长,单位:秒。'."\n" - ."\n" - .'>当TranscodeRecordFormat.N.Format(转码流录制格式)设为m3u8或cmaf时,本参数才生效。'."\n" - .'>'."\n" - ."\n" - .'不填则默认为30秒。取值范围:5s~30s。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', - ], - 'SliceOssObjectPrefix' => [ - 'description' => '转码流录制切片名称。'."\n" - ."\n" - .'>当TranscodeRecordFormat.N.Format(转码流录制格式)设为m3u8或cmaf时,本参数才需要配置。'."\n" - .'>'."\n" - ."\n" - .'- 默认30秒一片,小于256字节,支持变量匹配,包含{AppName}、{StreamName}、{UnixTimestamp}、{Sequence}。'."\n" - .'- 参数值必须包含{UnixTimestamp}和{Sequence}变量。', - 'type' => 'string', - 'required' => false, - 'example' => 'record/{AppName}/{StreamName}/{UnixTimestamp}_{Sequence}', - ], - 'CycleDuration' => [ - 'description' => '转码流录制周期录制时长。单位:秒。'."\n" - .'> 若不填则取默认值,不同录制格式的默认值不同:m3u8、cmaf 格式默认6小时,flv、mp4格式默认1小时。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '21600', - ], - 'OssObjectPrefix' => [ - 'description' => '转码流录制OSS存储的录制文件名。'."\n" - .'- 文件名小于256字节,支持变量匹配,包含 {AppName}、{StreamName}、{Sequence}、{StartTime}、{EndTime}、{EscapedStartTime}、{EscapedEndTime}。'."\n" - .'- 参数值必须要有{StartTime}或{EscapedStartTime}和{EndTime}或{EscapedEndTime}。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'record/{AppName}/{StreamName}/{Sequence}_{EscapedStartTime}_{EscapedEndTime}', - ], - 'Format' => [ - 'description' => '转码流录制格式。目前支持M3U8、FLV、MP4、CMAF。取值:'."\n" - .'>如果选择m3u8或cmaf格式,必须同时设置请求参数TranscodeRecordFormat.N.SliceOssObjectPrefix和TranscodeRecordFormat.N.SliceDuration。'."\n" - .'>'."\n" - ."\n" - .'- m3u8。'."\n" - .'- flv。'."\n" - .'- mp4。'."\n" - .'- cmaf。', - 'type' => 'string', - 'required' => false, - 'example' => 'm3u8', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 3, - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'TranscodeTemplates', + 'name' => 'DomainName', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '转码流录制的转码模板组。', - 'type' => 'array', - 'items' => [ - 'description' => '- 转码流录制的[转码模板](~~45039~~),可进行多个设置,最多为10个。'."\n" - .'- 当设置TranscodeRecordFormat.N.xxx配置时,至少需要设置一个TranscodeTemplates。'."\n" - .'- 如需录制多个或全部的转码流,可设置TranscodeTemplates.1为*****即可。'."\n" - .'>TranscodeTemplates不允许传入`raw`,属于保留标识。
RepeatList表示为TranscodeTemplates.N中的N,可理解为递增进行多个设置,如:TranscodeTemplates.1=sd,TranscodeTemplates.2=hd。', - 'type' => 'string', - 'required' => false, - 'example' => 'sd', - ], - 'required' => false, - 'example' => 'sd', - 'maxItems' => 10, - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -14258,135 +11758,58 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidOssEndpoint.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidOssBucket.Malformed', - 'errorMessage' => 'Specified parameter OssBucket is not valid.', - ], - [ - 'errorCode' => 'InvalidOssBucket.NotFound', - 'errorMessage' => 'The parameter OssBucket does not exist.', - ], - [ - 'errorCode' => 'InvalidFormat.Malformed', - 'errorMessage' => 'Specified parameter Format is not valid.', - ], - [ - 'errorCode' => 'InvalidCycleDuration.Malformed', - 'errorMessage' => 'Specified CycleDuration Format is not valid.', - ], - [ - 'errorCode' => 'InvalidSliceDuration.Malformed', - 'errorMessage' => 'Specified SliceDuration Format is not valid.', - ], - [ - 'errorCode' => 'InvalidTemplateLength.Malformed', - 'errorMessage' => 'Specified record template length is not valid.', - ], - [ - 'errorCode' => 'InvalidTemplate.ForbidRaw', - 'errorMessage' => 'Template named raw is Forbidden.', - ], - [ - 'errorCode' => 'MissingTemplate', - 'errorMessage' => 'Template is mandatory for this action.', - ], - [ - 'errorCode' => 'MissingOssObjectPrefix', - 'errorMessage' => 'OssObjectPrefix is mandatory for this action.', - ], - [ - 'errorCode' => 'MissingSliceOssObjectPrefix', - 'errorMessage' => 'SliceOssObjectPrefix is mandatory for this action.', - ], - [ - 'errorCode' => 'InvalidOssObjectPrefix.Malformed', - 'errorMessage' => 'Specified parameter OssObjectPrefix is not valid.', - ], - [ - 'errorCode' => 'InvalidSliceOssObjectPrefix.Malformed', - 'errorMessage' => 'Specified parameter SliceOssObjectPrefix is not valid.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], - [ - 'errorCode' => 'InvalidFormat.IllegalOperation', - 'errorMessage' => 'Specified parameter Format can not be multiple.', - ], - [ - 'errorCode' => 'InvalidDelayTime', - 'errorMessage' => 'Specified Delaytime is invalid.', - ], - [ - 'errorCode' => 'Live2Vod.ConfigAlreadyExists', - 'errorMessage' => 'Had live2vod record config already.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified EndTime does not math the specified StartTime or current time.', - ], - [ - 'errorCode' => 'InvalidStartTime.Mismatch', - 'errorMessage' => 'Specified StartTime does not math the current time.', - ], + ['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '存在无效参数,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '添加录制配置', - 'summary' => '配置APP录制,输出内容保存到OSS中。', - 'description' => '- 请确保在使用该接口前,已充分了解直播录制的收费方式和价格。计费详情,请参见[直播录制费用](~~195287~~)。'."\n" - ."\n" - .'- 若采用录制存储至OSS方式进行直播录制功能配置,需要开通OSS服务以及创建Bucket,具体操作请参见[配置OSS](~~84932~~)。'."\n" - ."\n" - .'- 录制文件存储在OSS中,会产生存储费用,在OSS中计费详情请参见[存储费用](~~173534~~)。'."\n" - ."\n" - .'- 直播录制功能,可以将直播内容进行录制,保存至您指定的位置,在您需要回看直播内容时可以进行回看。存储至OSS的录制内容,支持多种保存格式(TS、MP4、FLV、CMAF),支持自定义录制策略(自动录制、按需录制、手动录制),调用此接口可进行录制模版设置。更多直播录制功能使用可参见[直播录制](~~199357~~)说明文档。'."\n" - .'- (DomainName,'."\n" - .' AppName, StreamName)三元组只能对应一个配置,如果该三元组已经存在一个配置了,再调用本接口添加配置会返回配置已存在错误。'."\n" - .'- 通过该接口设置的各项配置,需要在直播重新推流之后才能生效,并且长期有效。'."\n" + 'title' => '删除直播语音审核回调配置', + 'description' => '- 先获取主播流域名,再调用本接口删除直播语音审核回调配置信息。'."\n" ."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => '## 注意事项:'."\n" - ."\n" - .'视频直播支持触发拉流,当使用触发拉流域名对应的播放地址进行播放时,会自动触发阿里云视频直播服务进行拉流直播,无人播放时则不会回源站进行拉流。自动录制、按需录制、手动录制功能应用在触发拉流场景时,如果触发拉流无人播放,则不会回源站拉流,自动录制、按需录制、手动录制同样也不会进行录制。', - ], - 'RealTimeRecordCommand' => [ - 'summary' => '按需完成手动录制。例如动态启动录制、动态停止录制。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAudioAuditNotifyConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAudioAuditNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', + ], + 'DeleteLiveCenterTransfer' => [ + 'summary' => '调用DeleteLiveCenterTransfer删除直播中心转推配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14394,71 +11817,36 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'delete', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeNodes' => [ - 'FEATUREliveL04ZVK', - ], + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Command', - 'in' => 'query', - 'schema' => [ - 'description' => '操作行为。取值:'."\n" - ."\n" - .'- **start**:强制启动录制。必须作为首次操作调用,不可在未停止前重复调用。'."\n" - .'- **stop**:强制暂停录制,断流延迟时间(默认180秒)到达后,生成录制文件。 仅可在 start 或 restart 后调用;调用后如需立即出文件,可以调用 cancel_delay。'."\n" - .'- **cancel_delay**:立即终止等待并生成录制文件,完全停止录制。需要在 stop 后调用以提前生成文件。'."\n" - .'- **restart**:强制重新开始录制。如果restart之前在录制,立即生成文件。仅可在任务启动或停止状态下调用。', - 'type' => 'string', - 'required' => true, - 'example' => 'start', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '直播流应用名称。输入的AppName必须与需要转推的直播流AppName保持一致,方可生效。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'testapp'], ], [ 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。请确保StreamName正确,您可在[流管理](~~197397~~)页面查看StreamName。'."\n" - ."\n" - .'> 该接口仅支持单条流操作,不支持通配符。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => true, 'example' => 'teststream'], + ], + [ + 'name' => 'DstUrl', + 'in' => 'query', + 'schema' => ['description' => '转推的第三方直播地址。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://push.example2.aliyundoc.com/testapp1/teststream2'], ], ], 'responses' => [ @@ -14466,307 +11854,211 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7908F2FF-44F8-120F-9FD6-85A******'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MalformedParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'CodeConfigNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 409 => [ - [ - 'errorCode' => 'StreamNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'TaskAlreadyStarted', - 'errorMessage' => '%s, please do not start again.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '实时录制指令', - 'description' => '- 请确保在使用该接口前,已充分了解直播录制的收费方式和价格。计费详情,请参见[直播录制费用](~~195287~~)。'."\n" - .'- 该接口前只能控制录制配置生效的直播流,需要先完成[添加录制配置](~~2847881~~)。'."\n" - ."\n" - .'- 如果某条直播流正在录制(自动录制或手动录制启动),您可以调用此接口停止该直播流的录制;但如果在启动时调用该接口尝试启动录制,则会返回 TaskAlreadyStarted 错误,表示任务已启动。'."\n" - ."\n" - .'- 手动启动录制的直播流如果发生断流,即会停止录制。如果没有配置自动录制,重新推流后不会自动启动录制。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 注意事项: '."\n" - .'- 视频直播支持触发拉流,当使用触发拉流域名对应的播放地址进行播放时,会自动触发阿里云视频直播服务进行拉流直播,无人播放时则不会回源站进行拉流。自动录制、按需录制、手动录制功能应用在触发拉流场景时,如果触发拉流无人播放,则不会回源站拉流,自动录制、按需录制、手动录制同样也不会进行录制。', - ], - 'UpdateLiveAppRecordConfig' => [ - 'summary' => '更新配置APP录制,输出内容保存到OSS中。', - 'methods' => [ - 'post', - 'get', + 'title' => '删除直播中心转推', + 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveCenterTransfer'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveCenterTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85A******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', + ], + 'DeleteLiveDelayConfig' => [ + 'summary' => '调用DeleteLiveDelayConfig删除直播延播配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveL04ZVK', - ], + 'abilityTreeNodes' => ['FEATUREliveBP94ZY'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'AppName', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'OssEndpoint', + 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储的Endpoint名称。'."\n" - ."\n" - .'直播录制文件存储至OSS,需提前创建OSS Bucket,创建方法请参见[配置OSS](~~84932~~) 。', - 'type' => 'string', - 'required' => true, - 'example' => 'learn.developer.aliyundoc.com', - ], + 'schema' => ['description' => '直播流所属应用名称。支持通配符*,代表该域名下所有的AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'StreamName', + 'name' => 'Stream', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'teststream', - ], + 'schema' => ['description' => '直播流流名称。支持通配符*,代表该AppName下所有的StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], - [ - 'name' => 'StartTime', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '录制开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> 设置的时间必须是实际推流时间开始7天之内,只在流级别录制(StreamName不为空)有效。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-04-10T09:57:21Z', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + ], + 'description' => '', ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '录制结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> EndTime与StartTime相差不应超过7天,超过7天将按照7天计算。只在流级别录制(StreamName不为空)有效。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-04-16T09:57:21Z', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameters', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ], + ], + 'title' => '删除直播延播配置', + 'description' => '本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDelayConfig'], ], + ], + 'ramActions' => [ [ - 'name' => 'OnDemand', - 'in' => 'query', - 'schema' => [ - 'description' => '按需录制。取值:'."\n" - ."\n" - .'- **0**:关闭。'."\n" - .'- **1**:通过HTTP回调方式。'."\n" - .'- **2**:解析推流参数按需录制。'."\n" - .'- **7**:默认不录制,可以通过[RealTimeRecordCommand](~~2847882~~)接口手动控制录制开启或停止。'."\n" - ."\n" - .'>当OnDemand取值为**1**时,需要先通过[AddLiveRecordNotifyConfig](~~2847891~~)接口配置OnDemandUrl,否则默认不录制。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'DeleteLiveDetectNotifyConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DelayTime', - 'in' => 'query', - 'schema' => [ - 'description' => '断流拼接时长。'."\n" - .'直播断流时长超过设定的拼接时长后,将会生成新文件,断流拼接时长支持15~21600秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '180', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], + ], + 'parameters' => [ [ - 'name' => 'RecordFormat', + 'name' => 'DomainName', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '记录详情。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CycleDuration' => [ - 'description' => '周期录制时长。单位:秒。不填则默认为6小时。'."\n" - ."\n" - .'> - 如果在一个录制周期内,直播流发生了断流,但是在断流拼接时长内,该直播流又正常推流,那么仍会在同一个录制文件中继续录制。'."\n" - .'>- 一条直播流必须断流超过断流拼接时长,才会生成录制文件。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'Format' => [ - 'description' => '格式。目前支持M3U8、FLV、MP4、CMAF。取值:'."\n" - ."\n" - .'>RecordFormat和TranscodeRecordFormat两者至少需要设置一个。如果选择m3u8或cmaf格式,必须同时设置请求参数RecordFormat.N.SliceOssObjectPrefix和RecordFormat.N.SliceDuration。'."\n" - .'>'."\n" - ."\n" - .'- m3u8。'."\n" - .'- flv。'."\n" - .'- mp4。'."\n" - .'- cmaf。', - 'type' => 'string', - 'required' => false, - 'example' => 'm3u8', - ], - 'SliceDuration' => [ - 'description' => '单个切片时长。单位:秒。'."\n" - ."\n" - .'>当RecordFormat.N.Format(格式)设为m3u8或cmaf时,本参数才有效。'."\n" - .'>'."\n" - ."\n" - .'不填则默认为30秒。取值范围:5s~30s。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', - ], - ], - 'required' => false, + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], - 'required' => false, - 'maxItems' => 3, + 'description' => '', ], ], + ], + 'title' => '删除回调通知URL', + 'summary' => '删除直播审核回调配置。', + 'description' => '## 使用说明'."\n" + ."\n" + .'- 先获取主播流域名,再调用本接口删除直播审核回调配置。'."\n" + ."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-01-30T08:56:50.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDetectNotifyConfig'], + ], + ], + 'ramActions' => [ [ - 'name' => 'TranscodeRecordFormat', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '转码记录详情。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CycleDuration' => [ - 'description' => '转码流录制周期录制时长。单位:秒。不填则默认为6小时。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '21600', - ], - 'Format' => [ - 'description' => '转码流录制格式。目前支持M3U8、FLV、MP4、CMAF。取值:'."\n" - .'>这如果选择m3u8或cmaf格式,必须同时设置请求参数TranscodeRecordFormat.N.SliceOssObjectPrefix和TranscodeRecordFormat.N.SliceDuration。'."\n" - .'>'."\n" - ."\n" - .'- m3u8。'."\n" - .'- flv。'."\n" - .'- mp4。'."\n" - .'- cmaf。', - 'type' => 'string', - 'required' => false, - 'example' => 'm3u8', - ], - 'SliceDuration' => [ - 'description' => '转码流录制单个切片时长,单位:秒。'."\n" - ."\n" - .'>当TranscodeRecordFormat.N.Format(转码流录制格式)设为m3u8或cmaf时,本参数才生效。'."\n" - .'>'."\n" - ."\n" - .'不填则默认为30秒。取值范围:5s~30s。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', - ], - ], - 'required' => false, + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveDetectNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], - 'required' => false, - 'maxItems' => 3, ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'DeleteLiveDomain' => [ + 'summary' => '删除本条直播域名的全部相关记录。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106925', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ [ - 'name' => 'TranscodeTemplates', + 'name' => 'DomainName', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '转码流录制的转码模板组。', - 'type' => 'array', - 'items' => [ - 'description' => '- 转码流录制的[转码模板](~~45039~~),可进行多个设置,最多为10个。'."\n" - .'- 当设置TranscodeRecordFormat.N.xxx配置时,至少需要设置一个TranscodeTemplates。'."\n" - .'- 如需录制多个或全部的转码流,可设置TranscodeTemplates.1为*****即可。'."\n" - .'>TranscodeTemplates不允许传入`raw`,属于保留标识。
RepeatList表示为TranscodeTemplates.N中的N,可理解为递增进行多个设置,如:'."\n" - .'TranscodeTemplates.1=sd,'."\n" - .'TranscodeTemplates.2=hd。', - 'type' => 'string', - 'required' => false, - 'example' => 'sd', - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => '需要删除的推流或播流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], ], 'responses' => [ @@ -14774,167 +12066,80 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '94E3559F-7B6A-4A5E-AFFD-44E2A208A249'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidOssBucket.Malformed', - 'errorMessage' => 'Specified parameter OssBucket is not valid.', - ], - [ - 'errorCode' => 'InvalidOssBucket.NotFound', - 'errorMessage' => 'The parameter OssBucket does not exist.', - ], - [ - 'errorCode' => 'InvalidFormat.Malformed', - 'errorMessage' => 'Specified parameter Format is not valid.', - ], - [ - 'errorCode' => 'InvalidCycleDuration.Malformed', - 'errorMessage' => 'Specified CycleDuration Format is not valid.', - ], - [ - 'errorCode' => 'InvalidSliceDuration.Malformed', - 'errorMessage' => 'Specified SliceDuration Format is not valid.', - ], - [ - 'errorCode' => 'InvalidTemplateLength.Malformed', - 'errorMessage' => 'Specified record template length is not valid.', - ], - [ - 'errorCode' => 'InvalidTemplate.ForbidRaw', - 'errorMessage' => 'Template named raw is Forbidden.', - ], - [ - 'errorCode' => 'MissingTemplate', - 'errorMessage' => 'Template is mandatory for this action.', - ], - [ - 'errorCode' => 'MissingOssObjectPrefix', - 'errorMessage' => 'OssObjectPrefix is mandatory for this action.', - ], - [ - 'errorCode' => 'MissingSliceOssObjectPrefix', - 'errorMessage' => 'SliceOssObjectPrefix is mandatory for this action.', - ], - [ - 'errorCode' => 'InvalidOssObjectPrefix.Malformed', - 'errorMessage' => 'Specified parameter OssObjectPrefix is not valid.', - ], - [ - 'errorCode' => 'InvalidSliceOssObjectPrefix.Malformed', - 'errorMessage' => 'Specified parameter SliceOssObjectPrefix is not valid.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], - [ - 'errorCode' => 'InvalidFormat.IllegalOperation', - 'errorMessage' => 'Specified parameter Format can not be multiple.', - ], - [ - 'errorCode' => 'InvalidDelayTime', - 'errorMessage' => 'Specified Delaytime is invalid.', - ], - [ - 'errorCode' => 'Live2Vod.ConfigAlreadyExists', - 'errorMessage' => 'Had live2vod record config already.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified EndTime does not math the specified StartTime or current time.', - ], - [ - 'errorCode' => 'InvalidStartTime.Mismatch', - 'errorMessage' => 'Specified StartTime does not math the current time.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'Ram Permission is forbidden.', - ], - [ - 'errorCode' => 'InvalidOssEndpoint.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specific value of parameter DomainName is malformed.', 'description' => ''], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Delete live region parameters have error.', 'description' => ''], + ['errorCode' => 'InvalidOperation', 'errorMessage' => 'Delete domain until configure compete.', 'description' => ''], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]', - 'title' => '更新直播录制', - 'description' => '先获取主播流域名,再调用本接口更新录制配置。'."\n" + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '删除已添加的直播域名', + 'description' => '- DeleteLiveDomain调用成功后,将删除本条直播域名的全部相关记录,请谨慎操作。'."\n" + .'- 为了避免此域名不可访问,建议您在删除域名前到域名解析服务商处恢复域名A记录。如果您的域名注册商在阿里云,请登录[云解析DNS控制台](https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fdns.console.aliyun.com%2F%3Fspm%3Da2c4g.11186623.0.0.3cda841fcvk7Qs&lang=zh),导航到**域名解析**页面,找到域名后点击**解析设置**将CNAME修改为A记录。如果您的域名是在其他注册商,需前往域名所在注册商进行配置,配置方法与此相似。'."\n" + .'- 如果您仅需要暂停使用该直播域名,建议您使用[StopLiveDomain](~~2847799~~)接口。'."\n" + ."\n" + .'>'."\n" + ."\n\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteLiveAppRecordConfig' => [ - 'summary' => '删除App级别录制配置。', - 'methods' => [ - 'post', - 'get', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"94E3559F-7B6A-4A5E-AFFD-44E2A208A249\\"\\n}","type":"json"}]', + ], + 'DeleteLiveDomainMapping' => [ + 'summary' => '删除直播域名播流域名和推流域名的映射关系配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', 'systemTags' => [ 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveL04ZVK', - ], + 'abilityTreeCode' => '106927', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'AppName', + 'name' => 'PushDomain', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '推流域名。域名类型为:**liveEdge**。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'StreamName', + 'name' => 'PullDomain', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '播流域名。域名类型为:**liveVideo**。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -14942,47 +12147,56 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '6EBD1AC4-C34D-4AE1-963E-B688A228BE31', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidRegion', - 'errorMessage' => 'The current region does not support this operation.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'Ram Permission is forbidden.', - ], + ['errorCode' => 'InvalidPushDomain', 'errorMessage' => 'The PushDomain should be liveEdge type.', 'description' => ''], + ['errorCode' => 'InvalidPullDomain', 'errorMessage' => 'The PullDomain should be liveVideo type.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"}]', - 'title' => '解除录制配置', - 'description' => '先获取主播流域名,再调用本接口删除App级别录制配置。'."\n" + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '删除直播域名的映射关系', + 'description' => '先添加直播域名中播流域名和推流域名的映射关系配置,才能调用本接口删除直播域名中播流域名和推流域名的映射关系配置。使用API添加播流域名和推流域名的映射关系,请参见[添加播流域名和推流域名的映射关系](~~2847792~~)。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + ."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteLiveStreamRecordIndexFiles' => [ - 'summary' => '删除直播录制文件。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDomainMapping'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveDomainMapping', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\", \\n}"}]', + ], + 'DeleteLiveDomainPlayMapping' => [ + 'summary' => '删除主播流域名和子播流域名的映射关系配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14993,777 +12207,548 @@ 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveL04ZVK', - ], + 'abilityTreeCode' => '106928', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'RecordId', + 'name' => 'PlayDomain', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '索引文件ID组。', - 'type' => 'array', - 'items' => [ - 'description' => '索引文件ID。其中N最多支持配置20个。'."\n" - .'> 通过[查询所有录制索引文件](~~2847890~~)接口查询', - 'type' => 'string', - 'required' => false, - 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', - ], - 'required' => true, - 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', - 'maxItems' => 20, - ], + 'schema' => ['description' => '子播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com'], ], [ - 'name' => 'DomainName', + 'name' => 'PullDomain', 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + ], + 'description' => '', ], ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '删除播流域名的映射关系', + 'description' => '先添加主播流域名和子播流域名映射,才能调用本接口删除主播流域名和子播流域名的映射关系配置。使用API添加主播流域名和子播流域名映射,请参见[添加主播流域名和子播流域名映射](~~173091~~)。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-01-30T08:56:50.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDomainPlayMapping'], + ], + ], + 'ramActions' => [ [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveDomainPlayMapping', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n","errorExample":""}]', + ], + 'DeleteLiveEdgeTransfer' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ [ - 'name' => 'StreamName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'RemoveFile', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '是否同步删除OSS文件。取值:'."\n" - ."\n" - .'- **true**:同步删除OSS文件。'."\n" - ."\n" - .'- **false**:不同步删除OSS文件。', - 'type' => 'string', - 'required' => true, - 'example' => 'true', - ], + 'schema' => ['description' => '推流域名。一个域名只有一个直播转推配置。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '删除文件信息', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '状态定义码。若状态错误,请参考错误码信息。', - 'type' => 'string', - 'example' => 'OK', - ], - 'Message' => [ - 'description' => '状态解释。若状态错误,请参考错误码信息。', - 'type' => 'string', - 'example' => 'OK', - ], - 'RecordDeleteInfoList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RecordDeleteInfo' => [ - 'description' => '删除信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '删除信息列表。', - 'type' => 'object', - 'properties' => [ - 'Message' => [ - 'description' => '对每个FileId的处理结果。取值:'."\n" - ."\n" - .'- **OK**:删除成功。'."\n" - ."\n" - .'- **AccessDenied**:拒绝访问。'."\n" - ."\n" - .'- **FileNotFound**:文件未找到。', - 'type' => 'string', - 'example' => 'OK', - ], - 'RecordId' => [ - 'description' => '请求被删除的索引文件ID 。', - 'type' => 'string', - 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f**', - ], - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '939D19EE-59A0-18E9-B458-*****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'Failed to parse given parameters.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"OK\\",\\n \\"RecordDeleteInfoList\\": {\\n \\"RecordDeleteInfo\\": [\\n {\\n \\"Message\\": \\"OK\\",\\n \\"RecordId\\": \\"c4d7f0a4-b506-43f9-8de3-07732c3f**\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"939D19EE-59A0-18E9-B458-*****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n OK\\n OK\\n \\n OK\\n c4d7f0a4-b506-43f9-8de3-07732c3f**\\n \\n 939D19EE-59A0-18E9-B458-*****\\n","errorExample":""}]', - 'title' => '删除直播录制文件', - 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'title' => '删除直播转推配置', + 'summary' => '删除直播转推配置。', + 'description' => '调用DeleteLiveEdgeTransfer只会删除针对某一域名的直播边缘转推配置,对已经按照该配置进行的直播转推没有影响。以下为典型场景示例:'."\n" + ."\n" + .'| 场景 | 分析 | 结果 |'."\n" + .'| -------------- | -------------- | ------ |'."\n" + .'| 1. 调用SetLiveEdgeTransfer配置直播边缘转推后进行推流,过程中调用DeleteLiveEdgeTransfer删除配置。 | 推流时直播边缘转推配置存在。 | 推流不受影响,直播转推不会中断。 |'."\n" + .'| 2. 推流过程中调用DeleteLiveEdgeTransfer删除直播边缘转推配置,中断推流再重新推流。 | 重新推流时直播边缘转推配置已不存在。 | 不会启动直播边缘转推。 |'."\n" + .'| 3. 调用DeleteLiveEdgeTransfer后才开始直播推流。 | 此时直播边缘转推配置不存在。 | 不会启动直播边缘转推。 |'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveRecordConfig' => [ - 'summary' => '查询直播域名下所有APP录制配置。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveEdgeTransfer'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveEdgeTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'DeleteLiveLazyPullStreamInfoConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveL04ZVK', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', + 'schema' => ['description' => '播流所属应用名称。'."\n" + ."\n" + .'> 如果需要删除全部App对应配置,则取值**ali_all_app**。', 'type' => 'string', 'required' => true, 'example' => 'ali_all_app'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + ], + 'description' => '', ], ], + ], + 'title' => '删除触发拉流配置信息', + 'summary' => '删除触发拉流配置信息。', + 'description' => '本接口目前适用于触发拉流。调用本接口删除触发拉流配置信息。如果AppName取值为ali_all_app,则可以删除全部App对应的触发拉流配置信息。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' | 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" + .'| ------------- |------------ | ----- | ----- |'."\n" + .'| InternalError | The request processing has failed due to some unknown error.| 500 |后台发生未知错误。|'."\n" + .'|InvalidDomain.NotFound|The domain provided does not exist in our records. |404 |当前账户下未查到域名。|'."\n" + .'|IllegalOperation |Illegal domain operate is not permitted.| 404 |不支持当前操作,如:非直播类域名。|'."\n", + 'changeSet' => [ + ['createdAt' => '2022-08-17T11:23:25.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveLazyPullStreamInfoConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'DeleteLiveMessageGroup' => [ + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'PageNum', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '当前页码。默认值:**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'PageSize', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '每页大小。默认值:**10**,取值范围:**5~30**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '30', - 'minimum' => '5', - 'example' => '5', - 'default' => '10', - ], + 'schema' => ['description' => '要删除的群组ID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], [ - 'name' => 'Order', + 'name' => 'OperatorId', 'in' => 'query', - 'schema' => [ - 'description' => '按创建时间排序。取值:'."\n" - .'- **asc**(默认值):升序。'."\n" - .'- **desc**:降序。', - 'type' => 'string', - 'required' => false, - 'example' => 'asc', - 'default' => 'asc', - 'enum' => [ - 'asc', - 'desc', - ], - ], + 'schema' => ['description' => '操作者ID,由大小写字母、数字组成,长度不超过64字节,后台会记录操作者ID。', 'type' => 'string', 'required' => false, 'example' => 'uid1'], + ], + [ + 'name' => 'DataCenter', + 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'PageNum' => [ - 'description' => '分页的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A', - ], - 'Order' => [ - 'description' => '排序。', - 'type' => 'string', - 'example' => 'desc', - ], - 'TotalPage' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'PageSize' => [ - 'description' => '每页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalNum' => [ - 'description' => '符合条件的总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '12', - ], - 'LiveAppRecordList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LiveAppRecord' => [ - 'description' => '录制配置列表。', - 'type' => 'array', - 'items' => [ - 'description' => '录制配置列表。', - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => '计划录制结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2018-11-08T03:49:18Z', - ], - 'StartTime' => [ - 'description' => '计划录制开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2018-11-08T02:49:18Z', - ], - 'AppName' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'StreamName' => [ - 'description' => '直播流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'DelayTime' => [ - 'description' => '断流拼接时长。'."\n" - .'直播断流时长超过设定的拼接时长后,将会生成新文件,断流拼接时长支持15~21600秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '180', - ], - 'CreateTime' => [ - 'description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2016-05-20T09:33:38Z', - ], - 'OnDemond' => [ - 'description' => '按需录制。取值:'."\n" - ."\n" - .'- **0**:关闭。'."\n" - .'- **1**:通过HTTP回调方式。'."\n" - .'- **2**:通过推流参数方式。'."\n" - .'- **7**:默认不录制,可以通过[RealTimeRecordCommand](~~85907~~)接口手动控制录制开启或停止。'."\n" - ."\n" - .'>当OnDemand取值为**1**时,需要先通过[AddLiveRecordNotifyConfig](~~51831~~)接口配置OnDemandUrl,否则默认不录制。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'OssBucket' => [ - 'description' => 'OSS存储Bucket名称。', - 'type' => 'string', - 'example' => 'liveBucket****', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'OssEndpoint' => [ - 'description' => 'OSS存储的Endpoint名称。', - 'type' => 'string', - 'example' => 'cn-oss-****.aliyuncs.com', - ], - 'RecordFormatList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RecordFormat' => [ - 'description' => '格式列表。', - 'type' => 'array', - 'items' => [ - 'description' => '格式列表。', - 'type' => 'object', - 'properties' => [ - 'SliceDuration' => [ - 'description' => '转码流录制单个切片时长。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', - ], - 'CycleDuration' => [ - 'description' => '周期录制时间。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3600', - ], - 'SliceOssObjectPrefix' => [ - 'description' => '切片名称。', - 'type' => 'string', - 'example' => 'record/{liveApp****}/{liveStream****}/{UnixTimestamp}', - ], - 'OssObjectPrefix' => [ - 'description' => '录制文件名称。', - 'type' => 'string', - 'example' => 'record/{liveApp****}/{liveStream****}', - ], - 'Format' => [ - 'description' => '格式。', - 'type' => 'string', - 'example' => 'M3U8', - ], - ], - ], - ], - ], - ], - 'TranscodeRecordFormatList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RecordFormat' => [ - 'description' => '转码流录制格式列表。', - 'type' => 'array', - 'items' => [ - 'description' => '录制配置文件格式列表。', - 'type' => 'object', - 'properties' => [ - 'SliceDuration' => [ - 'description' => '转码流录制单个切片时长。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', - ], - 'CycleDuration' => [ - 'description' => '周期录制时间。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3600', - ], - 'SliceOssObjectPrefix' => [ - 'description' => '转码流录制切片名称。', - 'type' => 'string', - 'example' => 'record/{liveApp****}/{liveStream****}/{UnixTimestamp}', - ], - 'OssObjectPrefix' => [ - 'description' => '转码流录制文件名称。', - 'type' => 'string', - 'example' => 'record/{liveApp****}/{liveStream****}', - ], - 'Format' => [ - 'description' => '转码流录制格式。', - 'type' => 'string', - 'example' => 'M3U8', - ], - ], - ], - ], - ], - ], - 'TranscodeTemplates' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Templates' => [ - 'description' => '转码模板。', - 'type' => 'array', - 'items' => [ - 'description' => '转码流录制的转码模板。设置了录制所有转码流,则返回为\\["*"]。', - 'type' => 'string', - 'example' => '["sd","hd"]', - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****'], + 'GroupId' => ['description' => '已删除的或者不存在的群组ID。', 'type' => 'string', 'example' => 'grouptest'], ], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 5,\\n \\"RequestId\\": \\"5056369B-D337-499E-B8B7-B761BD37B08A\\",\\n \\"Order\\": \\"desc\\",\\n \\"TotalPage\\": 20,\\n \\"PageSize\\": 10,\\n \\"TotalNum\\": 12,\\n \\"LiveAppRecordList\\": {\\n \\"LiveAppRecord\\": [\\n {\\n \\"EndTime\\": \\"2018-11-08T03:49:18Z\\",\\n \\"StartTime\\": \\"2018-11-08T02:49:18Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"DelayTime\\": 180,\\n \\"CreateTime\\": \\"2016-05-20T09:33:38Z\\",\\n \\"OnDemond\\": 0,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"RecordFormatList\\": {\\n \\"RecordFormat\\": [\\n {\\n \\"SliceDuration\\": 30,\\n \\"CycleDuration\\": 3600,\\n \\"SliceOssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}/{UnixTimestamp}\\",\\n \\"OssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}\\",\\n \\"Format\\": \\"M3U8\\"\\n }\\n ]\\n },\\n \\"TranscodeRecordFormatList\\": {\\n \\"RecordFormat\\": [\\n {\\n \\"SliceDuration\\": 30,\\n \\"CycleDuration\\": 3600,\\n \\"SliceOssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}/{UnixTimestamp}\\",\\n \\"OssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}\\",\\n \\"Format\\": \\"M3U8\\"\\n }\\n ]\\n },\\n \\"TranscodeTemplates\\": {\\n \\"Templates\\": [\\n \\"[\\\\\\"sd\\\\\\",\\\\\\"hd\\\\\\"]\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\ndesc\\n12\\n20\\n10\\n5\\n5056369B-D337-499E-B8B7-B761BD37B08A\\n\\n \\n liveStream****\\n 2018-11-08T03:49:18Z\\n cn-oss-****.aliyuncs.com\\n example.com\\n 2016-05-20T09:33:38Z\\n 2018-11-08T02:49:18Z\\n liveBucket****\\n 0\\n liveApp****\\n \\n \\n M3U8\\n record/{liveApp****}/{liveStream****}/{UnixTimestamp}\\n 3600\\n 30\\n record/{liveApp****}/{liveStream****}\\n \\n \\n \\n \\n M3U8\\n record/{liveApp****}/{liveStream****}/{UnixTimestamp}\\n 3600\\n 30\\n record/{liveApp****}/{liveStream****}\\n \\n \\n \\n [\\"sd\\",\\"hd\\"]\\n \\n \\n\\n","errorExample":"{\\n \\"LiveAppRecordList\\":{\\n \\"LiveAppRecord\\":[{\\n \\"AppName\\":\\"aliyuntest\\",\\n \\"CreateTime\\":\\"2016-05-20T09:33:38Z\\",\\n \\"DomainName\\":\\"xxxxx\\",\\n \\"FormatList\\":{\\n \\"Format\\":[{\\n \\"Name\\":\\"m3u8\\",\\n \\"OssObjectPrefix\\":\\"xxx\\",\\n \\"SliceOssObjectPrefix\\":\\"xxx\\"\\n }]\\n },\\n \\"OssBucket\\":\\"chimang.bucket\\",\\n \\"OssEndpoint\\":\\"oss-cn-hangzhou.aliyuncs.com\\"\\n }]\\n },\\n \\"RequestId\\":\\"5056369B-D337-499E-B8B7-B761BD37B08A\\"\\n}"}]', - 'title' => '查询域名下所有App录制配置', - 'description' => '先获取主播流域名,再调用本接口查询直播域名下所有APP录制配置。'."\n" - ."\n\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除直播互动群组', + 'summary' => '调用DeleteLiveMessageGroup删除互动消息群组。', + 'description' => '- 调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + .'- 群组删除后,不再可用,正在群组中的所有人,会被通知群已结束。'."\n" + .'- 群组删除后,消息在一段时间之内还是可以查询的,当前为三十天。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveStreamRecordContent' => [ - 'summary' => '查询直播录制内容。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveMessageGroup'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\",\\n \\"GroupId\\": \\"grouptest\\"\\n}","errorExample":""},{"type":"xml","example":"\\n B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\n grouptest\\n","errorExample":""}]', + ], + 'DeleteLiveMessageGroupMessage' => [ + 'summary' => '调用DeleteLiveMessageGroupMessage删除(撤回)某条群组消息。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveL04ZVK', - ], - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'AppName', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '群组ID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], [ - 'name' => 'StreamName', + 'name' => 'MessageId', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '要删除的消息ID,与发送消息中的MsgTid对应。由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'required' => true, 'example' => 'a74a8fbd3cfe4b2daa8517e4e3******'], ], [ - 'name' => 'StartTime', + 'name' => 'DataCenter', 'in' => 'query', - 'schema' => [ - 'description' => '开始时间。仅能查询6个月内的记录。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-21T08:00:00Z', - ], + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], [ - 'name' => 'EndTime', + 'name' => 'DeleterId', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。与StartTime的间隔时间不能超过4天。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-22T08:00:00Z', - ], + 'schema' => ['description' => '发起删除消息的用户ID,由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'required' => false, 'example' => '169830****'], + ], + [ + 'name' => 'DeleterInfo', + 'in' => 'query', + 'schema' => ['description' => '发起删除消息的用户扩展信息,长度不超过512字节。', 'type' => 'string', 'required' => false, 'example' => 'testname'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '62136AE6-7793-45ED-B14A-60D19A9486D3', - ], - 'RecordContentInfoList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RecordContentInfo' => [ - 'description' => '录制内容列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'example' => '2015-12-01T07:46:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'example' => '2015-12-01T07:36:00Z', - ], - 'Duration' => [ - 'description' => '录制时长。单位:秒。', - 'type' => 'number', - 'format' => 'float', - 'example' => '10', - ], - 'OssBucket' => [ - 'description' => 'OSS存储的Bucket名称。', - 'type' => 'string', - 'example' => 'liveBucket****', - ], - 'OssObjectPrefix' => [ - 'description' => 'OSS存储的录制文件名的规则。', - 'type' => 'string', - 'example' => 'record/{Date}/{UnixTimestamp}_{Sequence}', - ], - 'OssEndpoint' => [ - 'description' => 'OSS存储的Endpoint名称。', - 'type' => 'string', - 'example' => 'cn-oss-****.aliyuncs.com', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****'], + 'GroupId' => ['description' => '群组ID。', 'type' => 'string', 'example' => 'grouptest'], + 'MessageId' => ['description' => '已删除的或者不存在的消息ID。', 'type' => 'string', 'example' => 'a74a8fbd3cfe4b2daa8517e4e3******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidStartTime.Mismatch', - 'errorMessage' => 'Specified StartTime does not math the current time.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"62136AE6-7793-45ED-B14A-60D19A9486D3\\",\\n \\"RecordContentInfoList\\": {\\n \\"RecordContentInfo\\": [\\n {\\n \\"EndTime\\": \\"2015-12-01T07:46:00Z\\",\\n \\"StartTime\\": \\"2015-12-01T07:36:00Z\\",\\n \\"Duration\\": 10,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"OssObjectPrefix\\": \\"record/{Date}/{UnixTimestamp}_{Sequence}\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n62136AE6-7793-45ED-B14A-60D19A9486D3\\n\\n \\n 2015-12-01T07:46:00Z\\n cn-oss-****.aliyuncs.com\\n 2015-12-01T07:36:00Z\\n liveBucket****\\n 10\\n record/{Date}/{UnixTimestamp}_{Sequence}\\n \\n\\n","errorExample":"{\\n \\"RecordContentInfoList\\":{\\n \\"RecordContentInfo\\":[{\\n \\"Duration\\":14638.0,\\n \\"EndTime\\":\\"2016-05-25T09:41:09Z\\",\\n \\"OssBucket\\":\\"livevideo-test\\",\\n \\"OssEndpoint\\":\\"oss-cn-hangzhou.aliyuncs.com\\",\\n \\"OssObjectPrefix\\":\\"record/{Date}/{UnixTimestamp}_{Sequence}\\",\\n \\"StartTime\\":\\"2016-05-25T05:37:11Z\\"\\n }]\\n },\\n \\"RequestId\\":\\"62136AE6-7793-45ED-B14A-60D19A9486D3\\"\\n}"}]', - 'title' => '查询直播流录制内容', - 'description' => '先获取主播流域名,再调用本接口查询直播录制内容。'."\n" - ."\n" - .'本接口的直播录制内容是以一次录制任务维度的,具体录制文件请使用[查询所有录制索引文件](~~2847890~~)和[查询单个录制索引文件](~~2847889~~)接口查询'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' > 访问OSS资源的URL地址组成,请参见[如何获取单个或多个文件的URL?](~~39607~~)', - 'extraInfo' => ' ', - ], - 'CreateLiveStreamRecordIndexFiles' => [ - 'summary' => '创建某个时间范围的M3U8索引文件。', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除(撤回)某条群组消息', + 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveMessageGroupMessage'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveMessageGroupMessage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"MessageId\\": \\"a74a8fbd3cfe4b2daa8517e4e3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\n grouptest\\n a74a8fbd3cfe4b2daa8517e4e3******\\n","errorExample":""}]', + ], + 'DeleteLiveMessageUserMessage' => [ + 'summary' => '调用DeleteLiveMessageUserMessage删除(撤回)某条单聊消息。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '106896', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'AppName', + 'name' => 'ReceiverId', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。AppName名称与推流地址中的AppName名称对应,模板才能生效。若不限制AppName可填*,即可匹配所有AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '接收删除消息的用户ID,由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'required' => true, 'example' => '169830****'], ], [ - 'name' => 'StreamName', + 'name' => 'MessageId', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。StreamName名称与推流地址中的StreamName名称对应,模板才能生效。若不限制StreamName可填*,即可匹配所有StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '要删除的消息ID,与发送消息中的MsgTid对应。由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'required' => true, 'example' => '**********'], ], [ - 'name' => 'OssEndpoint', + 'name' => 'DeleterId', 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储Endpoint名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-oss-****.aliyuncs.com', - ], + 'schema' => ['description' => '发起删除消息的用户ID,由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'required' => false, 'example' => '169830****'], ], [ - 'name' => 'OssBucket', + 'name' => 'DeleterInfo', 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储Bucket名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveBucket****', - ], + 'schema' => ['description' => '发起删除消息的用户扩展信息,长度不超过512字节。', 'type' => 'string', 'required' => false, 'example' => 'username'], ], [ - 'name' => 'OssObject', + 'name' => 'DataCenter', 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致, 当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'OSS存储的录制文件名。', - 'type' => 'string', - 'required' => true, - 'example' => '{AppName}/{StreamName}/{Date}/{Hour}/{Minute}_{Second}.m3u8', + 'title' => 'Schema of Response', + 'description' => '返回参数。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '索引文件的开始时间。ts文件的上传时间在此之后则会被包含进索引文件。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-21T08:00:00Z', + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除(撤回)某条单聊消息', + 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveMessageUserMessage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6CFDE7AB-571A-14EA-B072-989FF753****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 6CFDE7AB-571A-14EA-B072-989FF753****\\n","errorExample":""}]', + ], + 'DeleteLivePackageConfig' => [ + 'summary' => '删除直播封装配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveJAENGU'], + ], + 'parameters' => [ [ - 'name' => 'EndTime', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '索引文件的结束时间。ts文件的上传时间在此之前则会被包含进索引文件。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-22T08:00:00Z', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'EndTimeIncluded', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '是否包含结束时间。传true会尝试多包含一个ts文件,创建的索引文件会完整覆盖StartTime和EndTime。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '直播域名(主播放域名)。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => 'App名,`*`表示匹配所有名称。', 'type' => 'string', 'required' => true, 'example' => 'AppName'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流名,`*`表示匹配AppName下所有流。', 'type' => 'string', 'required' => true, 'example' => 'StreamName'], ], ], 'responses' => [ @@ -15771,756 +12756,374 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '550439A3-F8EC-4CA2-BB62-B9DB43EEEF30', - ], - 'RecordInfo' => [ - 'description' => '录制配置信息。', - 'type' => 'object', - 'properties' => [ - 'RecordUrl' => [ - 'description' => '索引文件地址。', - 'type' => 'string', - 'example' => 'http://*****/atestObject.m3u8', - ], - 'StreamName' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'CreateTime' => [ - 'description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2016-05-27T09:40:56Z', - ], - 'RecordId' => [ - 'description' => '索引文件ID。', - 'type' => 'string', - 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', - ], - 'Height' => [ - 'description' => '视频高。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '480', - ], - 'OssBucket' => [ - 'description' => 'OSS存储Bucket名称。', - 'type' => 'string', - 'example' => 'liveBucket****', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'OssObject' => [ - 'description' => 'OSS存储的录制文件名。', - 'type' => 'string', - 'example' => 'liveObject****.m3u8', - ], - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-12-01T07:40:00Z', - ], - 'AppName' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'StartTime' => [ - 'description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-12-01T07:36:00Z', - ], - 'Width' => [ - 'description' => '视频宽。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '640', - ], - 'Duration' => [ - 'description' => '录制时长。单位:秒。', - 'type' => 'number', - 'format' => 'float', - 'example' => '20', - ], - 'OssEndpoint' => [ - 'description' => 'OSS存储Endpoint名称。', - 'type' => 'string', - 'example' => 'cn-oss-****.aliyuncs.com', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '72ABAD7B-B14C-52DE-B6C6-C639FECAF5AD'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Mismatch', - 'errorMessage' => 'Specified StartTime does not math the current time.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'invalid params', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidOssEndpoint.Malformed', - 'errorMessage' => 'Specified OssEndpoint is malformed.', - ], - [ - 'errorCode' => 'InvalidOssBucket.Malformed', - 'errorMessage' => 'Specified OssBucket is malformed.', - ], - [ - 'errorCode' => 'InvalidOssObject.Malformed', - 'errorMessage' => 'Specified OssObject is malformed.', - ], - [ - 'errorCode' => 'InvalidStream.NotFound', - 'errorMessage' => 'Speicified stream does not exist.', - ], - [ - 'errorCode' => 'InvalidConfig.Changed', - 'errorMessage' => 'The oss bucket info between StartTime and EndTime has changed.', - ], - [ - 'errorCode' => 'NoRecordContent', - 'errorMessage' => 'The record content between StartTime and EndTime is empty.', - ], - [ - 'errorCode' => 'RecordContentExceed', - 'errorMessage' => 'The record content between StartTime and EndTime is exceeded, please narrow down the range.', - ], - [ - 'errorCode' => 'OperationNotSupport', - 'errorMessage' => 'The Operation is not support for flv/mp4 format or live to vod record.', - ], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'InvalidParams', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数无效,请检查后重试。'], + ['errorCode' => 'InvalidProtocol', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数Protocol无效,请检查后重试。'], + ['errorCode' => 'InvalidSegmentNum', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SegmentNum无效,请检查后重试。'], + ['errorCode' => 'InvalidSegmentDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SegmentDuration无效,请检查后重试。'], + ['errorCode' => 'InvalidPartDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PartDuration无效,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'InvalidBucket.NotFound', - 'errorMessage' => 'The bucket does not belong to you.', - ], + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again.', 'description' => '配置不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalErr', 'errorMessage' => '%s, please try again.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"550439A3-F8EC-4CA2-BB62-B9DB43EEEF30\\",\\n \\"RecordInfo\\": {\\n \\"RecordUrl\\": \\"http://*****/atestObject.m3u8\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"CreateTime\\": \\"2016-05-27T09:40:56Z\\",\\n \\"RecordId\\": \\"c4d7f0a4-b506-43f9-8de3-07732c3f****\\",\\n \\"Height\\": 480,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssObject\\": \\"liveObject****.m3u8\\",\\n \\"EndTime\\": \\"2015-12-01T07:40:00Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"StartTime\\": \\"2015-12-01T07:36:00Z\\",\\n \\"Width\\": 640,\\n \\"Duration\\": 20,\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 550439A3-F8EC-4CA2-BB62-B9DB43EEEF30\\n \\n 2015-12-01T07:40:00Z\\n example.com\\n 2016-05-27T09:40:56Z\\n 2015-12-01T07:36:00Z\\n liveBucket****\\n 20\\n liveApp****\\n liveStream****\\n cn-oss-****.aliyuncs.com\\n http://*****/atestObject.m3u8\\n liveObject****.m3u8\\n 480\\n c4d7f0a4-b506-43f9-8de3-07732c3f****\\n 640\\n \\n","errorExample":""}]', - 'title' => '创建录制索引文件', - 'description' => '您已配置OSS,具体操作,请参见[配置OSS](~~84932~~)。'."\n" - .'直播录制索引是将视频直播流以M3U8的格式进行录制,存储在OSS中后,对已存储的TS分片索引文件进行实时的剪辑处理。 '."\n" + 'title' => '删除直播封装配置', + 'description' => '调用本接口删除直播封装配置,重新推流后才生效。'."\n" ."\n" - .'> - 创建录制索引必保证直播流发生过推流行为,如果设置的时间内未发生过直播或直播流名称错误等会导致创建录制索引失败。'."\n" - .'> - 请确保DomainName/AppName/StreamName都是正确的,否则会返回InvalidStream.NotFound错误。'."\n" - .'> - StartTime和EndTime的间隔至少是一片TS的时长(默认为30s)。'."\n" - .'> - EndTime要大于StartTime,并且间隔最多不能超过4天。'."\n" - .'> - TS分片信息在视频直播系统中仅保存3个月,创建M3U8文件只能选择最近3个月的录制内容。'."\n" - .'> - TS分片文件存储在OSS中,保存时间由OSS的存储配置决定。详细信息,请参见[设置生命周期规则](~~31904~~)。'."\n" - .'> - 创建好的M3U8索引文件的信息在视频直播系统中仅保存6个月,若要查询仅能查询6个月内创建的索引文件的信息。'."\n" - .'> - M3U8索引文件存储在OSS中,保存时间由OSS的存储配置决定。'."\n" - .'> - 当M3U8和TS的bucket不同时,M3U8里的TS路径将会是 HTTP格式。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为45次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveStreamRecordIndexFile' => [ - 'summary' => '查询单个录制索引文件。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为300次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLivePackageConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLivePackageConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"72ABAD7B-B14C-52DE-B6C6-C639FECAF5AD\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72ABAD7B-B14C-52DE-B6C6-C639FECAF5AD\\n","errorExample":""}]', + ], + 'DeleteLivePrivateLine' => [ + 'summary' => '解绑全球加速实例与直播链路。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107095', - 'abilityTreeNodes' => [ - 'FEATUREliveL04ZVK', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '应用名称。', 'type' => 'string', 'required' => true, 'example' => 'live'], ], [ 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '直播流名称。', 'type' => 'string', 'required' => true, 'example' => 'testStream'], ], [ - 'name' => 'RecordId', + 'name' => 'AccelerationType', 'in' => 'query', 'schema' => [ - 'description' => '索引文件ID。'."\n" - ."\n" - .'> 通过[查询所有录制索引文件](~~2847890~~)接口查询', + 'description' => '加速类型,取值:'."\n" + .'- play:播流加速。'."\n" + .'- publish:推流加速。', 'type' => 'string', 'required' => true, - 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', + 'example' => 'play', + 'enum' => ['play', 'publish'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5EBF2AC3-4B73-40A5-8B32-83F49D5F035E', - ], - 'RecordIndexInfo' => [ - 'description' => '录制配置。', - 'type' => 'object', - 'properties' => [ - 'RecordUrl' => [ - 'description' => '索引文件地址。', - 'type' => 'string', - 'example' => 'http://****/atestObject****.m3u8', - ], - 'StreamName' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'CreateTime' => [ - 'description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2016-05-27T09:40:56Z', - ], - 'RecordId' => [ - 'description' => '索引文件ID。', - 'type' => 'string', - 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', - ], - 'Height' => [ - 'description' => '视频高。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '480', - ], - 'OssBucket' => [ - 'description' => 'OSS存储的Bucket名称。', - 'type' => 'string', - 'example' => 'liveBucket****', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'OssObject' => [ - 'description' => 'OSS存储的录制文件名。', - 'type' => 'string', - 'example' => 'liveObject****', - ], - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2016-05-25T05:47:11Z', - ], - 'AppName' => [ - 'description' => '流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'StartTime' => [ - 'description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-12-01T05:36:00Z', - ], - 'Width' => [ - 'description' => '视频宽。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '640', - ], - 'Duration' => [ - 'description' => '录制时长。单位:秒。', - 'type' => 'number', - 'format' => 'float', - 'example' => '588.849', - ], - 'OssEndpoint' => [ - 'description' => 'OSS存储的Endpoint名称。', - 'type' => 'string', - 'example' => 'cn-oss-****.aliyuncs.com', - ], - 'Format' => [ - 'description' => '视频格式。', - 'type' => 'string', - 'example' => 'mp4', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7908F2FF-44F8-120F-9FD6-85AE4******'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5EBF2AC3-4B73-40A5-8B32-83F49D5F035E\\",\\n \\"RecordIndexInfo\\": {\\n \\"RecordUrl\\": \\"http://****/atestObject****.m3u8\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"CreateTime\\": \\"2016-05-27T09:40:56Z\\",\\n \\"RecordId\\": \\"c4d7f0a4-b506-43f9-8de3-07732c3f****\\",\\n \\"Height\\": 480,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssObject\\": \\"liveObject****\\",\\n \\"EndTime\\": \\"2016-05-25T05:47:11Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"StartTime\\": \\"2015-12-01T05:36:00Z\\",\\n \\"Width\\": 640,\\n \\"Duration\\": 588.849,\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"Format\\": \\"mp4\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 2016-05-25T05:47:11Z\\n example.com\\n 2016-05-27T09:40:56Z\\n 2015-12-01T05:36:00Z\\n liveBucket****\\n 588.849\\n liveApp****\\n liveStream****\\n cn-oss-****.aliyuncs.com\\n http://****/atestObject****.m3u8\\n liveObject****\\n 480\\n c4d7f0a4-b506-43f9-8de3-07732c3f****\\n 640\\n mp4\\n \\n 5EBF2AC3-4B73-40A5-8B32-83F49D5F035E\\n","errorExample":""}]', - 'title' => '查询单个录制索引文件', - 'description' => '创建好的M3U8索引文件的信息在视频直播系统中仅保存6个月,若要查询仅能查询6个月内创建的索引文件的信息。M3U8索引文件存储在OSS中,保存时间由OSS的存储配置决定。'."\n" - ."\n\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], + ], + ], + 'title' => '删除全球加速实例和直播链路的绑定关系', + 'description' => '解绑后,您的直播推拉流链路不再借助GA回源。解绑后加速实例仍然存在,如需释放加速实例需要在全球加速控制台上进行删除。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveStreamRecordIndexFiles' => [ - 'summary' => '查询某个时间段内的所有录制索引文件。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLivePrivateLine'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLivePrivateLine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', + ], + 'DeleteLivePullStreamInfoConfig' => [ + 'summary' => '删除拉流配置信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107096', - 'abilityTreeNodes' => [ - 'FEATUREliveL04ZVK', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '播流所属应用名称。您可调用[DescribeLivePullStreamConfig](~~2847818~~)查询。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ 'name' => 'StreamName', 'in' => 'query', + 'schema' => ['description' => '播流名称。您可调用[DescribeLivePullStreamConfig](~~2847818~~)查询。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], + ], + ], + 'title' => '删除直播拉流配置', + 'description' => '本接口目前适用于固定拉流。调用本接口可以删除固定拉流的配置信息。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-21T08:00:00Z', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLivePullStreamInfoConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'DeleteLivePullToPush' => [ + 'summary' => '调用DeleteLivePullToPush删除拉流转推任务。', + 'methods' => ['get'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。与StartTime间隔时间不能超过4天。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-22T08:00:00Z', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '238152', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], + ], + 'parameters' => [ [ - 'name' => 'PageNum', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '当前页码。默认值为**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'PageSize', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '每页大小。取值范围:**5~30**,默认值为**10**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '30', - 'minimum' => '5', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => '任务ID。', 'type' => 'string', 'required' => true, 'example' => '3efb43c5-18ff-49eb-92a6-005f6521****'], ], [ - 'name' => 'Order', + 'name' => 'Region', 'in' => 'query', 'schema' => [ - 'description' => '按创建时间排序。取值:'."\n" + 'description' => '指定任务启动所在区域,取值:'."\n" ."\n" - .'- **asc**(默认值):升序。'."\n" - .'- **desc**:降序。', + .'- ap-southeast-1(新加坡)'."\n" + .'- ap-southeast-5(印度尼西亚)'."\n" + .'- cn-beijing(北京)'."\n" + .'- cn-shanghai(上海)', 'type' => 'string', - 'required' => false, - 'example' => 'asc', - 'default' => 'asc', - 'enum' => [ - 'asc', - 'desc', - ], + 'required' => true, + 'enumValueTitles' => ['cn-shenzhen' => '深圳', 'cn-qingdao' => '青岛', 'preregion' => '预发', 'cn-beijing' => '北京', 'cn-shanghai' => '上海', 'ap-southeast-1' => '新加坡', 'eu-central-1' => '德国-法兰克福', 'ap-northeast-1' => '日本-东京', 'ap-southeast-5' => '印度尼西亚', 'me-central-1' => '沙特-利雅得'], + 'example' => 'cn-shanghai', + 'enum' => ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-5', 'eu-central-1', 'me-central-1', 'cn-beijing', 'cn-shanghai', 'cn-shenzhen', 'cn-qingdao', 'preregion'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'PageNum' => [ - 'description' => '分页的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DE24625C-7C0F-4020-8448-9C31A50C1556', - ], - 'Order' => [ - 'description' => '排序。', - 'type' => 'string', - 'example' => 'asc', - ], - 'TotalPage' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'PageSize' => [ - 'description' => '每页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'TotalNum' => [ - 'description' => '符合条件的总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '12', - ], - 'RecordIndexInfoList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RecordIndexInfo' => [ - 'description' => '录制配置列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'RecordUrl' => [ - 'description' => '索引文件地址。', - 'type' => 'string', - 'example' => 'http://****/atestObject****.m3u8', - ], - 'StreamName' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'CreateTime' => [ - 'description' => '创建时间。', - 'type' => 'string', - 'example' => '2016-05-27T09:40:56Z', - ], - 'RecordId' => [ - 'description' => '索引文件ID。', - 'type' => 'string', - 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', - ], - 'Height' => [ - 'description' => '视频高。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '480', - ], - 'OssBucket' => [ - 'description' => 'OSS存储Bucket名称。', - 'type' => 'string', - 'example' => 'liveBucket****', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'OssObject' => [ - 'description' => 'OSS存储的录制文件名。', - 'type' => 'string', - 'example' => 'liveObject****', - ], - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'example' => '2015-12-01T07:46:00Z', - ], - 'AppName' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'StartTime' => [ - 'description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'example' => '2015-12-01T07:36:00Z', - ], - 'Width' => [ - 'description' => '视频宽。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '640', - ], - 'Duration' => [ - 'description' => '录制时长。单位:秒。', - 'type' => 'number', - 'format' => 'float', - 'example' => '588.849', - ], - 'OssEndpoint' => [ - 'description' => 'OSS存储的Endpoint名称。', - 'type' => 'string', - 'example' => 'cn-oss-****.aliyuncs.com', - ], - 'Format' => [ - 'description' => '视频格式。', - 'type' => 'string', - 'example' => 'HLS', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68*****'], + 'RetCode' => ['description' => '返回码。'."\n" + ."\n" + .'> - 正常情况返回“0”。'."\n" + .'> - 异常情况请参考下文错误码列表。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Description' => ['description' => '错误描述。', 'type' => 'string', 'example' => 'OK'], ], ], ], + [], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidStartTime.Mismatch', - 'errorMessage' => 'Specified StartTime does not math the current time.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'Ram Permission is forbidden.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => '这个aluid没有直播域名'], + ['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => '任务不存在。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 10,\\n \\"RequestId\\": \\"DE24625C-7C0F-4020-8448-9C31A50C1556\\",\\n \\"Order\\": \\"asc\\",\\n \\"TotalPage\\": 20,\\n \\"PageSize\\": 5,\\n \\"TotalNum\\": 12,\\n \\"RecordIndexInfoList\\": {\\n \\"RecordIndexInfo\\": [\\n {\\n \\"RecordUrl\\": \\"http://****/atestObject****.m3u8\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"CreateTime\\": \\"2016-05-27T09:40:56Z\\",\\n \\"RecordId\\": \\"c4d7f0a4-b506-43f9-8de3-07732c3f****\\",\\n \\"Height\\": 480,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssObject\\": \\"liveObject****\\",\\n \\"EndTime\\": \\"2015-12-01T07:46:00Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"StartTime\\": \\"2015-12-01T07:36:00Z\\",\\n \\"Width\\": 640,\\n \\"Duration\\": 588.849,\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"Format\\": \\"HLS\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n asc\\n 12\\n 20\\n 5\\n 10\\n DE24625C-7C0F-4020-8448-9C31A50C1556\\n \\n \\n 2015-12-01T07:46:00Z\\n example.com\\n 2016-05-27T09:40:56Z\\n 2015-12-01T07:36:00Z\\n liveBucket****\\n 588.849\\n liveApp****\\n liveStream****\\n cn-oss-****.aliyuncs.com\\n http://****/atestObject****.m3u8\\n liveObject****\\n 480\\n c4d7f0a4-b506-43f9-8de3-07732c3f****\\n 640\\n mp4\\n \\n \\n","errorExample":""}]', - 'title' => '查询某个时间段内的所有录制索引文件', - 'description' => '- 创建好的M3U8索引文件的信息在视频直播系统中仅保存6个月,若要查询仅能查询6个月内创建的索引文件的信息。'."\n" - .' - M3U8索引文件存储在OSS中,保存时间由OSS的存储配置决定。'."\n" - .'- 录制默认返回的是HTTP地址,如需HTTPS可以自行配置证书并将HTTP修改成HTTPS。'."\n" - ."\n\n" - .'## QPS限制'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68*****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68*****\\n 0\\n OK\\n","errorExample":""}]', + 'title' => '删除拉流转推任务', + 'description' => '- 调用本接口删除拉流转推任务。'."\n" + .'- 删除任务即清理任务,任务运行中会被立刻停止,任务无法重新启动。'."\n" ."\n" - .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddLiveRecordNotifyConfig' => [ - 'summary' => '添加域名级别录制回调配置。', - 'methods' => [ - 'post', - 'get', + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLivePullToPush'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLivePullToPush', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteLiveRealTimeLogLogstore' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATURElive066BXV'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'NotifyUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '录制回调(包括录制事件和状态回调) URL地址。'."\n" - ."\n" - .'> 必须以`http://`或者`https://`开头。更多详情,请参见 [录制事件回调](~~55016~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://demo.aliyundoc.com/examplecallback.action', - ], - ], - [ - 'name' => 'NeedStatusNotify', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '是否需要录制任务状态回调。取值:'."\n" - ."\n" - .'- true:是。如果NeedStatusNotify(是否需要录制任务状态回调)选择为**true**,则返回结果为录制状态回调示例。'."\n" - .'- false(默认值):否。'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'OnDemandUrl', + 'name' => 'Project', 'in' => 'query', - 'schema' => [ - 'description' => '按需录制回调URL地址。'."\n" - ."\n" - .'> 必须以`http://`或者`https://`开头。更多详情,请参见[按需录制回调文档](~~85910~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://learn.aliyundoc.com/ondemandcallback.action', - ], + 'schema' => ['description' => '实时投递SLS的ProjectName。', 'type' => 'string', 'required' => true, 'example' => 'project_example'], ], [ - 'name' => 'NotifyReqAuth', + 'name' => 'Logstore', 'in' => 'query', - 'schema' => [ - 'description' => '回调鉴权开关。取值:'."\n" - ."\n" - .'- **yes**:开启。'."\n" - ."\n" - .'- **no**(默认):关闭。'."\n" - ."\n" - .'>当填yes时NotifyAuthKey必填。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'yes', - 'default' => 'false', - ], + 'schema' => ['description' => '实时投递SLS的LogStoreName。', 'type' => 'string', 'required' => true, 'example' => 'logstore_example'], ], [ - 'name' => 'NotifyAuthKey', + 'name' => 'Region', 'in' => 'query', - 'schema' => [ - 'description' => '回调鉴权密钥,长度为16~32个字符,只允许填大小写字母和数字。'."\n" - .'>当NotifyReqAuth参数值为**yes**时该参数必填。', - 'type' => 'string', - 'required' => false, - 'example' => 'chenhuanxin249088', - 'maxLength' => 64, - 'minLength' => 16, - ], + 'schema' => ['description' => '实时投递SLS的Region。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -16528,60 +13131,57 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9732E117-8A37-49FD-A36F-ABBB*******'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidNotifyUrl.Malformed', - 'errorMessage' => 'Specified NotifyUrl is invalid.', - ], - [ - 'errorCode' => 'InvalidNotifyUrl.Unsafe', - 'errorMessage' => 'Specified NotifyUrl is not safe.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], - [ - 'errorCode' => 'InvalidOnDemandUrl.Malformed', - 'errorMessage' => 'Specified OnDemandUrl is invalid.', - ], - [ - 'errorCode' => 'InvalidOnDemandUrl.Unsafe', - 'errorMessage' => 'Specified OnDemandUrl is not safe.', - ], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'LogstoreNotExist', 'errorMessage' => 'Logstore does not exist', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t394966CA-5940-44D7-A1C5-24211C7B07A9\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '添加域名级别录制回调配置', - 'description' => '先查询直播录制回调配置,才能调用本接口添加域名级别录制回调配置。使用API查询直播录制回调配置,请参见[查询直播录制回调配置](~~2847893~~)。'."\n" + 'title' => '删除实时日志推送的logstore', + 'summary' => '调用DeleteLiveRealTimeLogLogstore删除实时日志推送的logstore。', + 'description' => '- 您可调用本接口删除实时日志推送的logstore,无其他特殊使用说明,调用时请保证参数设置符合要求。'."\n" ."\n" - .'## QPS限制'."\n" + .'- 您可调用[DescribeLiveDomainRealtimeLogDelivery](~~2848121~~)查询Project、Logstore、Region参数信息。'."\n" ."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteLiveRecordNotifyConfig' => [ - 'summary' => '删除域名级别录制回调配置。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 特定错误码'."\n" + .'| HttpCode| 错误码 | 错误信息|描述 |'."\n" + .'|--------------------------|----------------------|---------------------|-----------|'."\n" + .'| 403| Unauthorized | RealtimeLogDelivery Service Not Authorized | 没有开启实时投递授权。 |'."\n" + .'| 404| LogstoreNotExist | Logstore does not exist | 未找到对应Logstore信息。 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveRealTimeLogLogstore', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', + ], + 'DeleteLiveRealtimeLogDelivery' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -16592,20 +13192,35 @@ 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveL04ZVK', - ], + 'abilityTreeNodes' => ['FEATURElive066BXV'], ], 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流域名。'."\n" + ."\n" + .'多个域名使用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com,example.aliyundoc.com'], + ], + [ + 'name' => 'Project', + 'in' => 'query', + 'schema' => ['description' => '实时投递SLS的ProjectName。', 'type' => 'string', 'required' => true, 'example' => 'project_example'], + ], + [ + 'name' => 'Logstore', + 'in' => 'query', + 'schema' => ['description' => '实时投递SLS的LogStoreName。', 'type' => 'string', 'required' => true, 'example' => 'logstore_example'], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => ['description' => '实时投递SLS的Region。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -16613,74 +13228,78 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'Ram Permission is forbidden.', - ], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''], ], 404 => [ - [ - 'errorCode' => 'InvalidConfig.NotFound', - 'errorMessage' => 'Config does not exist.', - ], + ['errorCode' => 'LogstoreNotExist', 'errorMessage' => 'Logstore does not exist', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '删除直播录制回调配置', - 'description' => '先获取主播流域名,再调用本接口删除域名级别录制回调配置。'."\n" - ."\n\n" + 'title' => '删除域名实时日志推送', + 'summary' => '调用DeleteLiveRealtimeLogDelivery删除域名实时日志推送。', + 'description' => '- 目前仅支持配置播流域名,如需配置上行实时日志(即配置推流域名),请[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)配置。目前仅支持配置播流域名,如需配置上行实时日志(即配置推流域名),请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)配置。'."\n" + ."\n" + .'- 您可调用[DescribeLiveDomainRealtimeLogDelivery](~~2848121~~)查询Project、Logstore、Region参数信息。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveRecordNotifyConfig' => [ - 'summary' => '查询域名级别录制回调配置。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 特定错误码'."\n" + ."\n" + .'| HttpCode| 错误码 | 描述 |'."\n" + .'|--------------------------|-------------------------------------------|-----------|'."\n" + .'| 403| Unauthorized | 没有开启实时投递授权。 |'."\n" + .'| 404| LogstoreNotExist | 未找到对应Logstore信息。 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveRealtimeLogDelivery'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', + ], + 'DeleteLiveRecordNotifyConfig' => [ + 'summary' => '删除域名级别录制回调配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveL04ZVK'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -16688,179 +13307,86 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A', - ], - 'LiveRecordNotifyConfig' => [ - 'description' => '域名录制回调配置。', - 'type' => 'object', - 'properties' => [ - 'NotifyReqAuth' => [ - 'description' => '回调鉴权开关。取值:'."\n" - ."\n" - .'- **yes**:开启。'."\n" - ."\n" - .'- **no**:关闭。', - 'type' => 'boolean', - 'example' => 'no', - ], - 'NotifyAuthKey' => [ - 'description' => '回调鉴权密钥。', - 'type' => 'string', - 'example' => 'KbT8mN2pQ9rS4vX7wZ1aB3cE5fG6hJ8kL', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'NotifyUrl' => [ - 'description' => '录制回调地址。', - 'type' => 'string', - 'example' => 'http://learn.aliyundoc.com/examplecallback.action', - ], - 'NeedStatusNotify' => [ - 'description' => '是否需要录制任务状态回调。取值:'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**(默认值):否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'OnDemandUrl' => [ - 'description' => '按需录制回调URL地址。', - 'type' => 'string', - 'example' => 'http://guide.aliyundoc.com/ondemandcallback.action', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'Ram Permission is forbidden.', 'description' => ''], + ], 404 => [ - [ - 'errorCode' => 'InvalidConfig.NotFound', - 'errorMessage' => 'Config does not exist.', - ], + ['errorCode' => 'InvalidConfig.NotFound', 'errorMessage' => 'Config does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5056369B-D337-499E-B8B7-B761BD37B08A\\",\\n \\"LiveRecordNotifyConfig\\": {\\n \\"NotifyReqAuth\\": true,\\n \\"NotifyAuthKey\\": \\"KbT8mN2pQ9rS4vX7wZ1aB3cE5fG6hJ8kL\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"NotifyUrl\\": \\"http://learn.aliyundoc.com/examplecallback.action\\",\\n \\"NeedStatusNotify\\": false,\\n \\"OnDemandUrl\\": \\"http://guide.aliyundoc.com/ondemandcallback.action\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n5056369B-D337-499E-B8B7-B761BD37B08A\\n\\n false\\n http://guide.aliyundoc.com/ondemandcallback.action\\n example.com\\n http://learn.aliyundoc.com/examplecallback.action\\n\\n","errorExample":"{\\n \\"LiveRecordNotifyConfig\\":{\\n \\"DomainName\\":\\"xxxx\\",\\n \\"NeedStatusNotify\\":false,\\n \\"NotifyUrl\\":\\"http://xxx\\"\\n },\\n \\"RequestId\\":\\"5056369B-D337-499E-B8B7-B761BD37B08A\\"\\n}"}]', - 'title' => '查询域名级别录制回调配置', - 'description' => '先获取主播流域名,再调用本接口查询域名级别录制回调配置。'."\n" + 'title' => '删除直播录制回调配置', + 'description' => '先获取主播流域名,再调用本接口删除域名级别录制回调配置。'."\n" + ."\n\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateLiveRecordNotifyConfig' => [ - 'summary' => '更新域名级别录制回调配置。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveRecordNotifyConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveRecordNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + ], + 'DeleteLiveRecordVodConfig' => [ + 'summary' => '删除直播录制转点播配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107282', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveL04ZVK'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'NotifyUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '录制回调(包括事件回调和状态回调)URL地址。'."\n" - ."\n" - .'> - 必须以`http://`或`https://`开头。'."\n" - .'>- 为了正常识别输入的汉字、空格以及其他特殊字符,需要做URLEncoder编码。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://learn.aliyundoc.com/examplecallback.action', - ], - ], - [ - 'name' => 'OnDemandUrl', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '按需回调URL地址。'."\n" - ."\n" - .'> - 必须以`http://`或`https://`开头。'."\n" - .'>- 为了正常识别输入的汉字、空格以及其他特殊字符,需要做URLEncoder编码。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://guide.aliyundoc.com/ondemandcallback.action', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'NeedStatusNotify', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '是否需要录制任务状态回调。取值:'."\n" - ."\n" - .'- **true**:需要录制任务状态回调。'."\n" - .'- **false**(默认值):不需要录制任务状态回调。'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'NotifyReqAuth', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '回调鉴权开关。取值:'."\n" - ."\n" - .'- **yes**:开启。'."\n" - ."\n" - .'- **no**:关闭。'."\n" - ."\n" - .'>默认值为**no**,当填**yes**时NotifyAuthKey必填。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'no', - ], + 'schema' => ['description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'NotifyAuthKey', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '回调鉴权密钥,长度为16~32个字符,只允许填大小写字母和数字。'."\n" - .'>当NotifyReqAuth参数值为**yes**时该参数必填。', - 'type' => 'string', - 'required' => false, - 'example' => 'testkeyyourkey12', - 'maxLength' => 64, - 'minLength' => 16, - ], + 'schema' => ['description' => '播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], ], ], 'responses' => [ @@ -16868,343 +13394,263 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566'], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidNotifyUrl.Malformed', - 'errorMessage' => 'Specified NotifyUrl is invalid.', - ], - [ - 'errorCode' => 'InvalidNotifyUrl.Unsafe', - 'errorMessage' => 'Specified NotifyUrl is not safe.', - ], - [ - 'errorCode' => 'InvalidOnDemandUrl.Malformed', - 'errorMessage' => 'Specified OnDemandUrl is invalid.', - ], - [ - 'errorCode' => 'InvalidOnDemandUrl.Unsafe', - 'errorMessage' => 'Specified OnDemandUrl is not safe.', - ], - [ - 'errorCode' => 'InvalidDomain.NotFound', - 'errorMessage' => 'Specified Domain is invalid.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'Ram Permission is forbidden.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidConfig.NotFound', - 'errorMessage' => 'Config does not exist.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '更新域名级别录制回调配置', - 'description' => '更新域名级别录制回调配置时,您可以修改以下内容:'."\n" - .'- 录制回调(包括录制文件生成事件回调、录制任务状态回调)URL地址。更多详情,请参见[录制事件回调](~~55016~~)。'."\n" - .'- 按需录制回调URL地址。更多详情,请参见[按需录制回调](~~85910~~)。'."\n" - .'- 是否需要录制任务状态回调。'."\n" - ."\n" + 'title' => '删除直播录制转点播配置', + 'description' => '先获取主播流域名,再调用本接口删除直播录制转点播配置。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveRecordNotifyRecords' => [ - 'summary' => '查询直播录制存储至OSS的回调记录。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'security' => [ + 'ramActions' => [ [ - 'AK' => [], + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveRecordVodConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], ], - 'operationType' => 'read', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + ], + 'DeleteLiveSnapshotDetectPornConfig' => [ + 'summary' => '删除直播审核的配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveL04ZVK', - ], + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], ], 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', + 'schema' => ['description' => '播流所属的应用名称。您可通过[DescribeLiveSnapshotDetectPornConfig](~~2847918~~)接口查询AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E6*******'], + ], + 'description' => '', ], ], + ], + 'title' => '删除直播审核配置', + 'description' => '- 先获取主播流域名,再调用本接口删除直播审核的配置。'."\n" + ."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-01-30T08:56:48.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveSnapshotDetectPornConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E6*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'DeleteLiveSnapshotNotifyConfig' => [ + 'summary' => '删除截图回调配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], + ], + 'parameters' => [ [ - 'name' => 'PageSize', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '每页大小。默认20,最大500,取值:1~500之前的任意整数。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'PageNumber', + 'name' => 'DomainName', 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'www.yourdomain***.com'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '当前页码。默认值为1。取值范围为:1~100000。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '32A96B9A-F203-4EC5-8E43-CB92E68F4I79E'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'title' => '删除截图回调配置', + 'description' => '本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveSnapshotNotifyConfig'], + ], + ], + 'ramActions' => [ [ - 'name' => 'Status', - 'in' => 'query', - 'schema' => [ - 'description' => '回调是否成功。'."\n" - .'- success:成功。'."\n" - .'- failed:失败。', - 'type' => 'string', - 'required' => false, - 'example' => 'success', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveSnapshotNotifyConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"32A96B9A-F203-4EC5-8E43-CB92E68F4I79E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 32A96B9A-F203-4EC5-8E43-CB92E68F4I79E\\n","errorExample":""}]', + ], + 'DeleteLiveSpecificStagingConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'StartTime', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> 支持查询最近7天内的数据。', - 'type' => 'string', - 'required' => true, - 'example' => '2023-02-10T21:03:47Z', - ], + 'schema' => ['description' => '加速域名。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'developer.aliyundoc.com'], ], [ - 'name' => 'EndTime', + 'name' => 'ConfigId', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。结束时间需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2023-02-10T21:03:47Z', - ], + 'schema' => ['description' => '配置ID,多个用英文逗号(,)分隔。获取配置ID,请参见[DescribeLiveDomainStagingConfig](~~2848231~~)。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '6295'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '回调记录。', 'type' => 'object', 'properties' => [ - 'CallbackList' => [ - 'description' => '回调记录。', - 'type' => 'array', - 'items' => [ - 'description' => '回调记录。', - 'type' => 'object', - 'properties' => [ - 'AppName' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'Description' => [ - 'description' => '结果描述,为success时成功,失败则返回错误信息。', - 'type' => 'string', - 'example' => 'success', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'NotifyContent' => [ - 'description' => '回调的具体内容。', - 'type' => 'string', - 'example' => '7月26日 16:14{"domain":"al.xxxx.com","stream":"livestream01","pull _stream_result":true,"cdn":"al"}', - ], - 'NotifyResult' => [ - 'description' => '回调结果。'."\n" - .'- success:成功。'."\n" - .'- failed:失败。', - 'type' => 'string', - 'example' => 'success', - ], - 'NotifyTime' => [ - 'description' => '回调时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2022-10-19T19:09:28Z', - ], - 'NotifyType' => [ - 'description' => '回调种类。'."\n" - .'- file_created:录制文件创建成功。'."\n" - .'- record_error:录制错误。'."\n" - .'- record_started:录制已经成功开始。'."\n" - .'- record_paused:录制已经成功暂停。'."\n" - .'- record_resumed:录制已经成功恢复继续录制。'."\n" - .'- record_force_transcode_fail:录制任务触发转码失败。'."\n" - .'- transformat_error:直播流内容解析出错。', - 'type' => 'string', - 'example' => 'record_started', - ], - 'NotifyUrl' => [ - 'description' => '录制回调地址。', - 'type' => 'string', - 'example' => 'http://learn.aliyundoc.com/examplecallback.action', - ], - 'NotifyHeader' => [ - 'description' => '回调请求header', - 'type' => 'string', - 'example' => '{'."\n" - .' "Content-Type": ['."\n" - .' "application/json; charset=utf-8"'."\n" - .' ]'."\n" - .'}', - ], - 'StreamName' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'NotifyResponse' => [ - 'description' => '用户端接受回调后返回的响应结果。', - 'type' => 'string', - 'example' => '{"Code":0,"Msg":"Success"}', - ], - ], - ], - ], - 'Code' => [ - 'description' => '错误码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Msg' => [ - 'description' => '提示信息。', - 'type' => 'string', - 'example' => 'ok', - ], - 'PageNum' => [ - 'description' => '分页页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '180FA0D2-1A02-5158-A36B-115DBF7B218D', - ], - 'TotalNum' => [ - 'description' => '符合条件的总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'TotalPage' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'Invalid JSON', - ], - [ - 'errorCode' => 'MissingParams', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MalformedParams', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CallbackList\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"Description\\": \\"success\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"NotifyContent\\": \\"7月26日 16:14{\\\\\\"domain\\\\\\":\\\\\\"al.xxxx.com\\\\\\",\\\\\\"stream\\\\\\":\\\\\\"livestream01\\\\\\",\\\\\\"pull _stream_result\\\\\\":true,\\\\\\"cdn\\\\\\":\\\\\\"al\\\\\\"}\\",\\n \\"NotifyResult\\": \\"success\\",\\n \\"NotifyTime\\": \\"2022-10-19T19:09:28Z\\",\\n \\"NotifyType\\": \\"record_started\\",\\n \\"NotifyUrl\\": \\"http://learn.aliyundoc.com/examplecallback.action\\",\\n \\"NotifyHeader\\": \\"{\\\\n \\\\\\"Content-Type\\\\\\": [\\\\n \\\\\\"application/json; charset=utf-8\\\\\\"\\\\n ]\\\\n}\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"NotifyResponse\\": \\"{\\\\\\"Code\\\\\\":0,\\\\\\"Msg\\\\\\":\\\\\\"Success\\\\\\"}\\"\\n }\\n ],\\n \\"Code\\": 0,\\n \\"Msg\\": \\"ok\\",\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"180FA0D2-1A02-5158-A36B-115DBF7B218D\\",\\n \\"TotalNum\\": 20,\\n \\"TotalPage\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n \\n liveApp****\\n success\\n example.com\\n 7月26日 16:14{\\"domain\\":\\"al.xxxx.com\\",\\"stream\\":\\"livestream01\\",\\"pull _stream_result\\":true,\\"cdn\\":\\"al\\"}\\n success\\n 2022-10-19T19:09:28Z\\n record_started\\n http://learn.aliyundoc.com/examplecallback.action\\n liveStream****\\n \\n 0\\n ok\\n 1\\n 20\\n 180FA0D2-1A02-5158-A36B-115DBF7B218D\\n 20\\n 20\\n","errorExample":""}]', - 'title' => '查询直播录制回调记录', - 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'AddLiveAppSnapshotConfig' => [ - 'summary' => '配置截图信息。输出内容保存到OSS中,重新推流即生效。', - 'methods' => [ - 'post', - 'get', + 'title' => '删除灰度环境下的域名配置', + 'summary' => '调用 DeleteLiveSpecificStagingConfig 删除灰度环境下的域名配置。', + 'description' => '## 使用说明'."\n" + .'先通过[DescribeLiveDomainStagingConfig接口](~~297374~~)获得配置ID,再调用本接口删除灰度环境下的域名配置。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveSpecificStagingConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveSpecificStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n04F0F334-1335-436C-A1D7-6C044FE73368\\r\\n","errorExample":""}]', + ], + 'DeleteLiveStreamBlock' => [ + 'summary' => '调用DeleteLiveStreamBlock删除直播流粒度封禁。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17212,111 +13658,118 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeNodes' => ['FEATUREliveOLG5VH'], ], 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播放域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。'."\n" - .'AppName名称与推流地址中的AppName名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '直播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'TimeInterval', + 'name' => 'StreamName', 'in' => 'query', + 'schema' => ['description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '截图周期,每个间隔周期截一次图片。单位:秒。取值范围:**5~3600**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '3600', - 'minimum' => '5', - 'example' => '5', + 'type' => 'object', + 'properties' => [ + 'Description' => ['description' => '成功:ok,失败:失败详情。', 'type' => 'string', 'example' => 'ok'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B908FF89-B03C-4831-B55B-48D2A7DA0A68'], + 'Status' => ['description' => '任务状态。取值:'."\n" + .'- ok:成功。'."\n" + .'- fail:失败。'."\n" + ."\n" + .'> 只要有一条任务创建失败即为失败。', 'type' => 'string', 'example' => 'ok'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], + ], + ], + 'title' => '删除直播流粒度封禁', + 'description' => '调用本接口可删除直播流粒度的封禁配置。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveStreamBlock'], + ], + ], + 'ramActions' => [ [ - 'name' => 'OssEndpoint', - 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储的Endpoint名称。'."\n" - ."\n" - .'配置完成后,您可以根据配置回调信息,在OSS控制台查找指定的配置内容。OSS Endpoint需要提前创建,创建方法请参考[配置OSS](~~84932~~) 。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-oss-****.aliyuncs.com', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamBlock', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"ok\\",\\n \\"RequestId\\": \\"B908FF89-B03C-4831-B55B-48D2A7DA0A68\\",\\n \\"Status\\": \\"ok\\"\\n}","type":"json"}]', + ], + 'DeleteLiveStreamMerge' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'OssBucket', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveBLHP6S'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储的Bucket名称。'."\n" - ."\n" - .'配置完成后,您可以根据配置回调信息,在OSS控制台查找指定的配置内容。OSS Bucket需要提前创建,创建方法请参考[配置OSS](~~84932~~) 。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveBucket****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'OverwriteOssObject', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '覆盖截图存储文件名。每次截图都覆盖此文件。'."\n" - ."\n" - .'- 小于256 Byte。'."\n" - .'- 目前仅支持生成JPG图片。'."\n" - .'- 支持变量匹配,包含{AppName}、{StreamName}。', - 'type' => 'string', - 'required' => false, - 'example' => '{AppName}/{StreamName}.jpg', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'SequenceOssObject', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '实时截图存储文件名。'."\n" - ."\n" - .'每次截图都递增存储,调用[DescribeLiveStreamSnapshotInfo](~~2847902~~)接口可以查询某一段时间的截图文件。'."\n" - ."\n" - .'- 小于256 Byte。'."\n" - .'- 目前仅支持生成JPG图片。'."\n" - .'- 支持变量匹配,包含{AppName}、{StreamName}、{UnixTimestamp}、{Sequence},其中 {UnixTimestamp}、{Sequence} 必填一个。', - 'type' => 'string', - 'required' => false, - 'example' => 'snapshot/{AppName}/{StreamName}/{UnixTimestamp}.jpg', - ], + 'schema' => ['description' => '合流输出App名称。您可在[主备合流配置](~~606583~~)页面查看。', 'type' => 'string', 'required' => true, 'example' => 'app'], ], [ - 'name' => 'Callback', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '截图回调地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://learn.aliyundoc.com', - ], + 'schema' => ['description' => '合流输出Stream名称。您可在[主备合流配置](~~606583~~)页面查看。', 'type' => 'string', 'required' => true, 'example' => 'StreamName'], ], ], 'responses' => [ @@ -17324,106 +13777,72 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB9*********'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidOverwriteOssObjectOrSequenceOssObject.Malformed', - 'errorMessage' => 'Specified paramters OverwriteOssObject or SequenceOssObject should have one.', - ], - [ - 'errorCode' => 'InvalidOssBucket.Malformed', - 'errorMessage' => 'Specified parameter OssBucket is not valid.', - ], - [ - 'errorCode' => 'InvalidOssEndpoint.Malformed', - 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', - ], - [ - 'errorCode' => 'InvalidOverwriteOssObject.Malformed', - 'errorMessage' => 'Specified parameter OverwriteOssObject is not valid.', - ], - [ - 'errorCode' => 'InvalidSequenceOssObject.Malformed', - 'errorMessage' => 'Specified parameter SequenceOssObject is not valid.', - ], - [ - 'errorCode' => 'InvalidOssBucket.NotFound', - 'errorMessage' => 'The parameter OssBucket does not exist.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'QuotaExceeded.Merge', 'errorMessage' => 'Exceed max merge count limit', 'description' => ''], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '添加直播截图配置', - 'description' => '- 请确保在使用该接口前,已充分了解直播截图的收费方式和价格。计费详情,请参见[直播截图费用](~~195286~~)。'."\n" - ."\n" - .'- 视频直播截图功能需要将截图文件存放在Bucket中,因此需要开通OSS服务并且拥有至少一个Bucket用于存储这些截图文件。具体操作请参见[配置OSS](~~84932~~)。'."\n" - ."\n\n" - .'- 直播截图存储在OSS中,会产生存储费用,在OSS中计费详情请参见[存储费用](~~173534~~)。'."\n" - .'- OSS Bucket必须与播流域名的直播中心同地域,不支持跨地域截图。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteLiveAppSnapshotConfig' => [ - 'summary' => '解除直播流下AppName的截图配置,重新推流后生效。', - 'methods' => [ - 'post', - 'get', + 'title' => '删除在线流合流', + 'summary' => '删除在线流合流。', + 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveStreamMerge'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamMerge', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB9*********\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'DeleteLiveStreamMonitor' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'systemTags' => [ 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeNodes' => ['FEATUREliveSM955S'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'AppName', + 'name' => 'MonitorId', 'in' => 'query', - 'schema' => [ - 'description' => '直播流应用名称。输入的AppName必须与需要转推的直播流AppName保持一致,方可生效。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '监播室ID。'."\n" + .'>可查看[CreateLiveStreamMonitor](~~2848129~~)接口返回参数值获取**MonitorId**。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], ], 'responses' => [ @@ -17431,36 +13850,61 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n\\t\\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\",\\n\\t\\"HostId\\": \\"live.aliyuncs.com\\",\\n\\t\\"Code\\": \\"InternalError\\",\\n\\t\\"Message\\": \\"The request processing has failed due to some unknown error.\\"\\n}"},{"type":"xml","example":"\\r\\n\\r\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n\\t","errorExample":""}]', - 'title' => '删除直播截图配置', - 'description' => '调用本接口解除播流下AppName的截图配置,重新推流后才生效。'."\n" - ."\n\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidMonitorId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数MonitorId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'StreamMonitorNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => '监播室不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'title' => '删除监播室', + 'summary' => '删除监播室。', + 'description' => '通过创建监播室[CreateLiveStreamMonitor](~~2848129~~)接口返回参数获取**MonitorId**,再调用本接口删除监播室。'."\n" + .'>启动状态下的监播室不可以删除,删除时返回400报错。'."\n" + .'>'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteSnapshotFiles' => [ - 'summary' => '删除指定截图文件。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamMonitor', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + ], + 'DeleteLiveStreamRecordIndexFiles' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17471,279 +13915,177 @@ 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeNodes' => ['FEATUREliveL04ZVK'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CreateTimestampList', + 'name' => 'RecordId', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '需要删除的截图产生的时间戳列表。', + 'description' => '索引文件ID组。', 'type' => 'array', - 'items' => [ - 'description' => '需要删除的截图产生的毫秒级时间戳。'."\n" - ."\n" - .'通过调用[DescribeLiveStreamSnapshotInfo](~~2847902~~)接口返回的CreateTimestamp参数值即为该参数取值。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1653641526637', - ], + 'items' => ['description' => '索引文件ID。其中N最多支持配置20个。'."\n" + .'> 通过[查询所有录制索引文件](~~2847890~~)接口查询', 'type' => 'string', 'required' => false, 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****'], 'required' => true, - 'example' => '1653641526637', - 'maxItems' => 200, + 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****', + 'maxItems' => 20, ], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '播流名称。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], [ 'name' => 'RemoveFile', 'in' => 'query', - 'schema' => [ - 'description' => '是否同步删除OSS文件,取值:'."\n" - ."\n" - .'- **true**:同步删除OSS文件。'."\n" - ."\n" - .'- **false**:不同步删除OSS文件。'."\n" - ."\n" - .'> 同步删除OSS文件需要具有OSS文件操作权限。', - 'type' => 'boolean', - 'required' => true, - 'example' => 'true', - ], + 'schema' => ['description' => '是否同步删除OSS文件。取值:'."\n" + ."\n" + .'- **true**:同步删除OSS文件。'."\n" + ."\n" + .'- **false**:不同步删除OSS文件。', 'type' => 'string', 'required' => true, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '删除文件信息', 'type' => 'object', 'properties' => [ - 'FailureCount' => [ - 'description' => '删除截图失败的数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '90F60327-ABEC-5A93-BF1F-****', - ], - 'SnapshotDeleteInfoList' => [ + 'Code' => ['description' => '状态定义码。若状态错误,请参考错误码信息。', 'type' => 'string', 'example' => 'OK'], + 'Message' => ['description' => '状态解释。若状态错误,请参考错误码信息。', 'type' => 'string', 'example' => 'OK'], + 'RecordDeleteInfoList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'SnapshotDeleteInfo' => [ - 'description' => '快照删除信息列表。', + 'RecordDeleteInfo' => [ + 'description' => '删除信息列表。', 'type' => 'array', 'items' => [ - 'description' => '快照删除信息列表。', + 'description' => '删除信息列表。', 'type' => 'object', 'properties' => [ - 'CreateTimestamp' => [ - 'description' => '请求被删除的截图生成毫秒级时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1653641526637', - ], - 'Message' => [ - 'description' => '对每个截图的处理结果。取值:'."\n" - ."\n" - .'- **OK**:删除成功。'."\n" - ."\n" - .'- **FileNotFound**:未找到该截图文件。', - 'type' => 'string', - 'example' => 'OK', - ], + 'Message' => ['description' => '对每个FileId的处理结果。取值:'."\n" + ."\n" + .'- **OK**:删除成功。'."\n" + ."\n" + .'- **AccessDenied**:拒绝访问。'."\n" + ."\n" + .'- **FileNotFound**:文件未找到。', 'type' => 'string', 'example' => 'OK'], + 'RecordId' => ['description' => '请求被删除的索引文件ID 。', 'type' => 'string', 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f**'], ], ], ], ], + 'description' => '', ], - 'SuccessCount' => [ - 'description' => '删除截图成功的数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '939D19EE-59A0-18E9-B458-*****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'Cannot find task', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParams', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'OSSAccessDenied', - 'errorMessage' => 'OSS bucket not authorised', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'Failed to parse given parameters.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'Server internal error', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"FailureCount\\": 1,\\n \\"RequestId\\": \\"90F60327-ABEC-5A93-BF1F-****\\",\\n \\"SnapshotDeleteInfoList\\": {\\n \\"SnapshotDeleteInfo\\": [\\n {\\n \\"CreateTimestamp\\": 1653641526637,\\n \\"Message\\": \\"OK\\"\\n }\\n ]\\n },\\n \\"SuccessCount\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n OK\\n 1653641526637\\n \\n \\n Not Found\\n 1656936778524\\n \\n\\n90F60327-ABEC-5A93-BF1F-****\\n1\\n","errorExample":""}]', - 'title' => '删除直播截图文件', - 'description' => '调用本接口仅支持删除一年内的截图文件。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'title' => '删除直播录制文件', + 'summary' => '删除直播录制文件。', + 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => '| HttpCode | 错误码|错误信息| 描述|'."\n" - .'|-------|-------|-------|-------|'."\n" - .'| 400| InvalidParams|invalid JSON| 无法解析请求。|'."\n" - .'| 400| Cannot find task|Stream not found| 请检查截图配置对应的domain app stream和推流情况。|'."\n" - .'| 400| InvalidParams|Invalid request: missing| 缺失必要参数。|'."\n" - .'| 403| OSSAccessDenied|OSS bucket not authorised| 文件对应的OSS bucket未向视频云账号授权。|'."\n" - .'| 500|InternalError|Server internal error| 请检查截图配置对应的domain app stream和推流情况。|', - ], - 'DescribeLiveSnapshotConfig' => [ - 'summary' => '查询播流域名下的截图配置。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamRecordIndexFiles', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"OK\\",\\n \\"Message\\": \\"OK\\",\\n \\"RecordDeleteInfoList\\": {\\n \\"RecordDeleteInfo\\": [\\n {\\n \\"Message\\": \\"OK\\",\\n \\"RecordId\\": \\"c4d7f0a4-b506-43f9-8de3-07732c3f**\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"939D19EE-59A0-18E9-B458-*****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n OK\\n OK\\n \\n OK\\n c4d7f0a4-b506-43f9-8de3-07732c3f**\\n \\n 939D19EE-59A0-18E9-B458-*****\\n","errorExample":""}]', + ], + 'DeleteLiveStreamTranscode' => [ + 'summary' => '删除转码配置信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], - ], - [ - 'name' => 'PageNum', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '分页的页码。默认值:**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'PageSize', + 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => '每页大小。取值范围:**5~30**,默认值:**10**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '30', - 'minimum' => '5', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'Order', + 'name' => 'Template', 'in' => 'query', - 'schema' => [ - 'description' => '排序。取值:'."\n" - ."\n" - .'- **asc**(默认值):升序。'."\n" - .'- **desc**:降序。', - 'type' => 'string', - 'required' => false, - 'example' => 'asc', - 'default' => 'asc', - 'enum' => [ - 'asc', - 'desc', - ], - ], + 'schema' => ['description' => '转码模版。取值:'."\n" + ."\n" + .'- 标准质量模板:'."\n" + .' '."\n" + .' - lld:流畅。'."\n" + .' '."\n" + .' - lsd:标清。'."\n" + .' '."\n" + .' - lhd:高清。'."\n" + .' '."\n" + .' - lud :超清。'."\n" + ."\n" + .'- 窄带高清™转码模板:'."\n" + ."\n" + .' - ld:流畅。'."\n" + .' '."\n" + .' - sd:标清。'."\n" + .' '."\n" + .' - hd:高清。'."\n" + .' '."\n" + .' - ud:超清。 '."\n" + ."\n" + .'- 自定义模板:用户自定义命名。', 'type' => 'string', 'required' => true, 'example' => 'lld'], ], ], 'responses' => [ @@ -17751,233 +14093,163 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'PageNum' => [ - 'description' => '分页的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A3136B58-5876-4168-83CA-B562781981A0', - ], - 'Order' => [ - 'description' => '排序。', - 'type' => 'string', - 'example' => 'asc', - ], - 'TotalPage' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageSize' => [ - 'description' => '每页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '11', - ], - 'TotalNum' => [ - 'description' => '符合条件的总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '6', - ], - 'LiveStreamSnapshotConfigList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LiveStreamSnapshotConfig' => [ - 'description' => '截图配置列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'OverwriteOssObject' => [ - 'description' => '覆盖截图存储文件名。', - 'type' => 'string', - 'example' => '{liveApp****}/{liveStream****}.jpg', - ], - 'TimeInterval' => [ - 'description' => '截图周期。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'AppName' => [ - 'description' => '直播流所属的应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'CreateTime' => [ - 'description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'example' => '2016-05-20T01:33:38Z', - ], - 'OssBucket' => [ - 'description' => 'OSS存储Bucket名称。', - 'type' => 'string', - 'example' => 'liveBucket****', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Callback' => [ - 'description' => '截图回调地址。', - 'type' => 'string', - 'example' => 'https://learn.aliyundoc.com', - ], - 'SequenceOssObject' => [ - 'description' => '实时截图存储文件名。', - 'type' => 'string', - 'example' => 'snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp}.jpg', - ], - 'OssEndpoint' => [ - 'description' => 'OSS存储的Endpoint名称。', - 'type' => 'string', - 'example' => 'cn-oss-****.aliyuncs.com', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 2,\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"Order\\": \\"asc\\",\\n \\"TotalPage\\": 10,\\n \\"PageSize\\": 11,\\n \\"TotalNum\\": 6,\\n \\"LiveStreamSnapshotConfigList\\": {\\n \\"LiveStreamSnapshotConfig\\": [\\n {\\n \\"OverwriteOssObject\\": \\"{liveApp****}/{liveStream****}.jpg\\",\\n \\"TimeInterval\\": 10,\\n \\"AppName\\": \\"liveApp****\\",\\n \\"CreateTime\\": \\"2016-05-20T01:33:38Z\\",\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Callback\\": \\"https://learn.aliyundoc.com\\",\\n \\"SequenceOssObject\\": \\"snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp}.jpg\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\nasc\\n6\\n10\\n11\\n2\\nA3136B58-5876-4168-83CA-B562781981A0\\n\\n \\n {liveApp****}/{liveStream****}.jpg\\n snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp}.jpg\\n https://learn.aliyundoc.com\\n cn-oss-****.aliyuncs.com\\n 10\\n example.com\\n 2016-05-20T01:33:38Z\\n liveBucket****\\n liveApp****\\n \\n\\n","errorExample":"{\\n \\"LiveStreamSnapshotConfigList\\":{\\n \\"LiveStreamSnapshotConfig\\":[{\\n \\"AppName\\":\\"xxx\\",\\n \\"CreateTime\\":\\"2016-05-20T01:33:38Z\\",\\n \\"DomainName\\":\\"xxx\\",\\n \\"OssBucket\\":\\"bucket\\",\\n \\"OssEndpoint\\":\\"endpoint\\",\\n \\"OverwriteOssObject\\":\\"object\\",\\n \\"SequenceOssObject\\":\\"object\\",\\n \\"TimeInterval\\":10\\n }]\\n },\\n \\"Order\\":\\"asc\\",\\n \\"PageNum\\":1,\\n \\"PageSize\\":10,\\n \\"RequestId\\":\\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"TotalNum\\":100,\\n \\"TotalPage\\":10\\n}"}]', - 'title' => '查询域名下的截图配置', - 'description' => '先获取主播流域名,再调用本接口查询播流域名下的截图配置。'."\n" + 'title' => '删除转码配置', + 'description' => '本接口目前支持的转码模版类型为标准质量模板、窄带高清™转码模板和自定义模板。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateLiveAppSnapshotConfig' => [ - 'summary' => '更新直播流下的截图配置。输出内容保存到OSS中,重新推流后生效。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-03-15T07:04:27.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + ], + 'DeleteLiveStreamWatermark' => [ + 'summary' => '调用DeleteLiveStreamWatermark删除指定⽔印模板。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeNodes' => ['FEATUREliveCT0GRQ'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'AppName', + 'name' => 'TemplateId', 'in' => 'query', + 'schema' => ['description' => '水印模板ID。'."\n" + .'>可查看[AddLiveStreamWatermark](~~2848096~~)接口返回参数值获取TemplateId。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b******'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], + ], + ], + 'title' => '删除⽔印模板', + 'description' => '本接口支持删除直播指定TemplateId的⽔印模板。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'TimeInterval', - 'in' => 'query', - 'schema' => [ - 'description' => '截图周期。取值范围:**5~3600**。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '3600', - 'minimum' => '5', - 'example' => '5', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamWatermark', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b******\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5c6a2a0df228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + ], + 'DeleteLiveStreamWatermarkRule' => [ + 'summary' => '调用DeleteLiveStreamWatermarkRule删除水印规则。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'OssEndpoint', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveCT0GRQ'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储的Endpoint名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-oss-****.aliyuncs.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'OssBucket', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储Bucket名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveBucket****', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com'], ], [ - 'name' => 'OverwriteOssObject', + 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => '覆盖截图存储文件名。每次截图都覆盖此文件。'."\n" - ."\n" - .'- 小于256 Byte。'."\n" - .'- 目前仅支持生成JPG图片。'."\n" - .'- 支持变量匹配,包含 {AppName}、{StreamName}。'."\n" - .'- 传入短划线(-),表示删除此字段。', - 'type' => 'string', - 'required' => false, - 'example' => '{liveApp****}/{liveStream****}.jpg', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ - 'name' => 'SequenceOssObject', + 'name' => 'Stream', 'in' => 'query', - 'schema' => [ - 'description' => '实时截图存储文件名。每次截图都递增存储,调用[DescribeLiveStreamSnapshotInfo](~~2847902~~)接口,可以查询某一段时间的文件。'."\n" - ."\n" - .'- 小于256 Byte。'."\n" - .'- 目前仅支持生成JPG图片。'."\n" - .'- 支持变量匹配,包含 {AppName}、{StreamName}、{UnixTimestamp}、{Sequence},其中 {UnixTimestamp}、{Sequence} 必填一个。'."\n" - .'- 传入短划线(-),表示删除此字段。', - 'type' => 'string', - 'required' => false, - 'example' => 'snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp****}.jpg', - ], + 'schema' => ['description' => '流名称。规则如下:'."\n" + ."\n" + .'- 直接写流名称则仅匹配该流名称。示例:liveStreamA。'."\n" + ."\n" + .'- 可进行模糊匹配,`*`匹配所有流。'."\n" + ."\n" + .'- 可进行前匹配和后匹配。'."\n" + ."\n" + .'>- 模糊匹配格式说明:模糊匹配下的`*`要求有且仅有一个,只能在最前或最后,且匹配项需要`()`包围,多个匹配项用竖线`|`分隔。'."\n" + .'>- 示例:`*(t1|t2) `匹配所有后缀为`t1`或`t2`的流` (abc|123)*`匹配所有前缀为`abc`或者`123`的流。', 'type' => 'string', 'required' => false, 'example' => 'liveStreamA'], ], [ - 'name' => 'Callback', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '截图回调地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://learn.aliyundoc.com', - ], + 'schema' => ['description' => '水印规则ID。'."\n" + .'>可查看[AddLiveStreamWatermarkRule](~~2848100~~)接口返回参数值获取RuleId。', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****'], ], ], 'responses' => [ @@ -17985,311 +14257,223 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91******'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidOverwriteOssObjectOrSequenceOssObject.Malformed', - 'errorMessage' => 'Specified paramters OverwriteOssObject or SequenceOssObject should have one.', - ], - [ - 'errorCode' => 'InvalidOssEndpoint.Malformed', - 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', - ], - [ - 'errorCode' => 'InvalidOssBucket.Malformed', - 'errorMessage' => 'Specified parameter OssBucket is not valid.', - ], - [ - 'errorCode' => 'InvalidOssBucket.NotFound', - 'errorMessage' => 'The parameter OssBucket does not exist.', - ], - [ - 'errorCode' => 'InvalidOverwriteOssObject.Malformed', - 'errorMessage' => 'Specified parameter OverwriteOssObject is not valid.', - ], - [ - 'errorCode' => 'InvalidSequenceOssObject.Malformed', - 'errorMessage' => 'Specified parameter SequenceOssObject is not valid.', - ], - [ - 'errorCode' => 'InvalidConfig.NotFound', - 'errorMessage' => 'The speicified config does not exist.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '更新直播截图配置', - 'description' => '调用本接口更新播流下的截图配置。输出内容保存到OSS中,重新推流后生效。'."\n" - ."\n" + 'title' => '删除水印规则', + 'description' => '本接口支持删除指定RuleId的水印规则。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveStreamSnapshotInfo' => [ - 'summary' => '查询某一段时间内截图内容。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveStreamWatermarkRule'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamWatermarkRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91******\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0df228-4a64- af62-20e91b9676b3\\r\\n","errorExample":""}]', + ], + 'DeleteLiveStreamsNotifyUrlConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'AppName', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '推流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], - [ - 'name' => 'StreamName', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566'], + ], + 'description' => '', ], ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-21T08:00:00Z', - ], + ], + 'title' => '删除直播推流回调配置', + 'summary' => '删除推流回调配置。', + 'description' => '先获取推流域名,再调用本接口删除推流回调配置。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-08-17T09:42:34.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveStreamsNotifyUrlConfig'], ], + ], + 'ramActions' => [ [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。EndTime和StartTime之间的间隔不能超过**1**天。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-22T08:00:00Z', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamsNotifyUrlConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t4C747C97-7ECD-4C61-8A92-67AD806331FF\\n","errorExample":"{\\n \\"RequestId\\":\\"4C747C97-7ECD-4C61-8A92-67AD806331FF\\"\\n}"}]', + ], + 'DeleteMessageApp' => [ + 'summary' => '调用DeleteMessageApp删除互动消息应用。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Limit', - 'in' => 'query', - 'schema' => [ - 'description' => '一次调用获取的数量。取值范围:**1~100**, 默认值:**10**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'Order', - 'in' => 'query', - 'schema' => [ - 'description' => '排序。取值:'."\n" - ."\n" - .'- **asc**(默认值):升序。'."\n" - .'- **desc**:降序。', - 'type' => 'string', - 'required' => false, - 'example' => 'asc', - 'default' => 'asc', - 'enum' => [ - 'asc', - 'desc', - ], - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '需要删除的互动消息应用ID,仅支持配置单个应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'NextStartTime' => [ - 'description' => '下一个起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> 当此时间范围内的内容超出了Limit的取值范围,则返回此参数,为下一个文件的创建时间。可以将此时间当做StartTime,重新调用此接口获取下一段内容,不传则表示未超出Limit取值范围。', - 'type' => 'string', - 'example' => '2015-12-01T17:36:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '62136AE6-7793-45ED-B14A-60D19A9486D3', - ], - 'LiveStreamSnapshotInfoList' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'LiveStreamSnapshotInfo' => [ - 'description' => '截图内容列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'OssObject' => [ - 'description' => 'OSS存储的文件名。', - 'type' => 'string', - 'example' => '{liveApp****}/{liveStream****}.jpg', - ], - 'OssBucket' => [ - 'description' => 'OSS存储Bucket名称。', - 'type' => 'string', - 'example' => 'liveBucket****', - ], - 'CreateTime' => [ - 'description' => '截图产生时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-12-01T17:36:00Z', - ], - 'OssEndpoint' => [ - 'description' => 'OSS存储的Endpoint名称。', - 'type' => 'string', - 'example' => 'cn-oss-****.aliyuncs.com', - ], - 'IsOverlay' => [ - 'description' => '截图方式。取值:'."\n" - ."\n" - .'- **true**:覆盖截图。'."\n" - ."\n\n" - .'- **false**:序列截图。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'CreateTimestamp' => [ - 'description' => '截图文件创建的毫秒级时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1653641526637', - ], - ], - ], - ], + 'Success' => ['description' => '删除是否成功,取值:'."\n" + ."\n" + .'- true:成功删除。'."\n" + ."\n" + .'- false:删除失败。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified parameter StartTime is not valid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified parameter EndTime is not valid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidStream.NotFound', - 'errorMessage' => 'Speicified stream does not exist.', + 'title' => '删除互动消息应用(旧版)', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2022-09-08T15:22:52.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteMessageApp'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextStartTime\\": \\"2015-12-01T17:36:00Z\\",\\n \\"RequestId\\": \\"62136AE6-7793-45ED-B14A-60D19A9486D3\\",\\n \\"LiveStreamSnapshotInfoList\\": {\\n \\"LiveStreamSnapshotInfo\\": [\\n {\\n \\"OssObject\\": \\"{liveApp****}/{liveStream****}.jpg\\",\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"CreateTime\\": \\"2015-12-01T17:36:00Z\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"IsOverlay\\": false,\\n \\"CreateTimestamp\\": 1653641526637\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2015-12-01T17:36:00Z\\n 62136AE6-7793-45ED-B14A-60D19A9486D3\\n \\n {liveApp****}/{liveStream****}.jpg\\n liveBucket****\\n 2015-12-01T17:36:00Z\\n cn-oss-****.aliyuncs.com\\n false\\n 1653641526637\\n \\n","errorExample":""}]', - 'title' => '查询一段时间内截图内容', - 'description' => '调用本接口仅支持查询一年内的截图数据。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', ], - 'DescribeLiveSnapshotNotifyConfig' => [ - 'summary' => '获取截图回调配置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteMixStream' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeNodes' => ['FEATUREliveI16NIW'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'www.yourdomain***.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => 'App名称。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '合流任务的流名。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], + ], + [ + 'name' => 'MixStreamId', + 'in' => 'query', + 'schema' => ['description' => '合流任务ID。如果您通过[CreateMixStream接口](~~2848087~~)创建合流任务,请查看CreateMixStream接口调用返回的参数MixStreamId值。', 'type' => 'string', 'required' => true, 'example' => '749b7594-86d6-37b1-513b-e1e19845****'], ], ], 'responses' => [ @@ -18297,67 +14481,65 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'www.yourdomain***.com', - ], - 'NotifyAuthKey' => [ - 'description' => '回调鉴权密钥。', - 'type' => 'string', - 'example' => 'yourkey', - ], - 'NotifyReqAuth' => [ - 'description' => '回调鉴权开关。取值:'."\n" - ."\n" - .'- **yes**:开启。'."\n" - ."\n" - .'- **no**:关闭。', - 'type' => 'string', - 'example' => 'yes', - ], - 'NotifyUrl' => [ - 'description' => '回调URL', - 'type' => 'string', - 'example' => 'http://callback.yourdomain***.com', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A', - ], + 'MixStreamId' => ['description' => '合流任务ID。', 'type' => 'string', 'example' => '749b7594-86d6-37b1-513b-e1e19845****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BE9407FF-F897-4DBD-338D-98A750AD805F'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'MixStreamAlreadyExist', 'errorMessage' => '%s, please check and try again later.', 'description' => '合流任务已存在,请检查后重试。'], + ['errorCode' => 'MixStreamNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => '合流任务不存在,请检查后重试。'], + ], + [ + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"www.yourdomain***.com\\",\\n \\"NotifyAuthKey\\": \\"yourkey\\",\\n \\"NotifyReqAuth\\": \\"yes\\",\\n \\"NotifyUrl\\": \\"http://callback.yourdomain***.com\\",\\n \\"RequestId\\": \\"5056369B-D337-499E-B8B7-B761BD37B08A\\"\\n}","errorExample":""},{"type":"xml","example":"\\n yes\\n 5056369B-D337-499E-B8B7-B761BD37B08A\\n yourkey\\n www.yourdomain***.com\\n http://callback.yourdomain***.com\\n","errorExample":""}]', - 'title' => '获取截图回调配置', - 'description' => '本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteLiveSnapshotNotifyConfig' => [ - 'summary' => '删除截图回调配置。', - 'methods' => [ - 'post', - 'get', + 'title' => '删除合流任务', + 'summary' => '删除合流任务。', + 'description' => '先通过[CreateMixStream接口](~~2848087~~)创建合流任务,再调用本接口删除合流任务。当您不需要使用某条合流后,请删除此条合流,否则合流将一直处于输出状态。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '### SDK示例'."\n" + .'详细示例,请参见[合流代码示例](https://help.aliyun.com/document_detail/199362.html)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteMixStream', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MixStreamId\\": \\"749b7594-86d6-37b1-513b-e1e19845****\\",\\n \\"RequestId\\": \\"BE9407FF-F897-4DBD-338D-98A750AD805F\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 749b7594-86d6-37b1-513b-e1e19845****\\n BE9407FF-F897-4DBD-338D-98A750AD805F\\n","errorExample":""}]', + ], + 'DeletePlaylist' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18368,31 +14550,18 @@ 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'ProgramId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'www.yourdomain***.com', - ], + 'schema' => ['description' => '节目单ID。如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], ], 'responses' => [ @@ -18400,43 +14569,58 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '32A96B9A-F203-4EC5-8E43-CB92E68F4I79E', - ], + 'ProgramId' => ['description' => '节目单ID。可作为查询节目单,启动节目单和停止节目单的请求参数。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'IncorrectPlaylistStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Playlist正在使用中,请检查后重试。'], + ['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ProgramId无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ], + 404 => [ + ['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"32A96B9A-F203-4EC5-8E43-CB92E68F4I79E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 32A96B9A-F203-4EC5-8E43-CB92E68F4I79E\\n","errorExample":""}]', - 'title' => '删除截图回调配置', - 'description' => '本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'AddLiveSnapshotNotifyConfig' => [ - 'summary' => '添加截图回调配置。', - 'methods' => [ - 'post', - 'get', + 'title' => '删除播放列表', + 'summary' => '删除整个节目单。', + 'description' => '先通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,再调用本接口删除整个节目单。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeletePlaylist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + ], + 'DeletePlaylistItems' => [ + 'summary' => '删除节目单项。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18444,72 +14628,26 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '160085', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'www.yourdomain***.com', - ], - ], - [ - 'name' => 'NotifyUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '回调URL,必须是合法URL,长度不超过500。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://callback.yourdomain***.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'NotifyReqAuth', + 'name' => 'ProgramId', 'in' => 'query', - 'schema' => [ - 'description' => '回调鉴权开关。取值:'."\n" - ."\n" - .'- **yes**:开启。'."\n" - ."\n" - .'- **no**(默认):关闭。'."\n" - ."\n" - .'>当填yes时NotifyAuthKey必填。', - 'type' => 'string', - 'required' => false, - 'example' => 'yes', - ], + 'schema' => ['description' => '节目单ID。如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], [ - 'name' => 'NotifyAuthKey', + 'name' => 'ProgramItemIds', 'in' => 'query', - 'schema' => [ - 'description' => '回调鉴权密钥,长度为16~32个字符,只允许填大小写字母和数字。'."\n" - .'>当NotifyReqAuth参数值为**yes**时该参数必填。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourkey', - ], + 'schema' => ['description' => '节目单项ID列表。', 'type' => 'string', 'required' => true, 'example' => '["c09f3d63-eacf-4fbf-bd48-a07a6ba7****","c10f3d63-eacf-4fbf-bd48-a07a6ba7****"]'], ], ], 'responses' => [ @@ -18517,125 +14655,83 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], + 'ProgramId' => ['description' => '节目单ID。可作为查询节目单项,编辑节目单,删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MalformedParam', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ProgramId无效,请检查后重试。'], + ['errorCode' => 'IncorrectPlaylistStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Playlist正在使用中,请检查后重试。'], + ['errorCode' => 'PlayListIsEmpty', 'errorMessage' => '%s, please check and try again later.', 'description' => '播放列表为空,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], ], - 409 => [ - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => '%s, please check and try again later.', - ], + 404 => [ + ['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F3EC5\\n","errorExample":""}]', - 'title' => '添加截图回调配置', - 'description' => '本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'UpdateLiveSnapshotNotifyConfig' => [ - 'summary' => '修改截图回调配置。', - 'methods' => [ - 'post', - 'get', + 'title' => '删除播放列表项目', + 'description' => '先通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,再调用本接口删除节目单项。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeletePlaylistItems', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + ], + 'DeleteRtcAsrTask' => [ + 'summary' => '调用DeleteRtcAsrTask删除实时语音转文字或翻译任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeCode' => '219798', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'ww.yourdomain***.com', - ], - ], - [ - 'name' => 'NotifyUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '回调URL,必须是合法URL,长度不超过500。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://callback.yourdomain***.com', - ], - ], - [ - 'name' => 'NotifyReqAuth', - 'in' => 'query', - 'schema' => [ - 'description' => '回调鉴权开关。取值:'."\n" - ."\n" - .'- **yes**:开启。'."\n" - ."\n" - .'- **no**:关闭。'."\n" - ."\n" - .'>默认值为**no**,当填**yes**时NotifyAuthKey必填。', - 'type' => 'string', - 'required' => false, - 'example' => 'yes', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'NotifyAuthKey', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '回调鉴权密钥,长度为16~32个字符,只允许填大小写字母和数字。'."\n" - .'>当NotifyReqAuth参数值为**yes**时该参数必填。', - 'type' => 'string', - 'required' => false, - 'example' => 'testkeyyourkey12', - ], + 'schema' => ['description' => '任务ID。您可通过调用[CreateRtcAsrTask](~~2848217~~)接口获取任务ID。', 'type' => 'string', 'required' => true, 'example' => 'asr-51c72******'], ], ], 'responses' => [ @@ -18643,110 +14739,70 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A3136B58-5876-5A93-83CA-B562781981A0', - ], + 'Description' => ['description' => '结果描述,为success时成功,失败则返回错误信息。', 'type' => 'string', 'example' => 'success'], + 'RequestId' => ['description' => '网关请求ID。', 'type' => 'string', 'example' => '85F94125-B695-1FB8-A7E7-3BE7CE******'], + 'RetCode' => ['description' => '状态码。返回2000表示成功,返回其他表示异常。', 'type' => 'integer', 'format' => 'int64', 'example' => '2000'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MalformedParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A3136B58-5876-5A93-83CA-B562781981A0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n A3136B58-5876-5A93-83CA-B562781981A0\\n","errorExample":""}]', - 'title' => '修改截图回调配置', - 'description' => '本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'SetSnapshotCallbackAuth' => [ - 'summary' => '设置截图回调鉴权配置。', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除实时语音转文字或翻译任务', + 'description' => '本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRtcAsrTask'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:DeleteRtcAsrTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"85F94125-B695-1FB8-A7E7-3BE7CE******\\",\\n \\"RetCode\\": 2000\\n}","errorExample":""},{"type":"xml","example":"\\n success\\n 85F94125-B695-1FB8-A7E7-3BE7CE07EF31\\n 2000\\n","errorExample":""}]', + ], + 'DeleteRtcMPUEventSub' => [ + 'summary' => '删除混流转推事件订阅。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeCode' => '219225', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.aliyundoc.com', - ], - ], - [ - 'name' => 'CallbackReqAuth', - 'in' => 'query', - 'schema' => [ - 'description' => '回调鉴权开关。取值:'."\n" - ."\n" - .'- **yes**:开启。'."\n" - ."\n" - .'- **no**:关闭。', - 'type' => 'string', - 'required' => true, - 'example' => 'yes', - ], - ], - [ - 'name' => 'CallbackAuthKey', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '自定义回调鉴权密钥。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourkey', - ], + 'schema' => ['description' => '订阅的应用ID。'."\n" + .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourAppId'], ], ], 'responses' => [ @@ -18754,90 +14810,79 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD5', - ], + 'RequestId' => ['description' => '请求ID', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MalformedParam', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], + ['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId无效,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => '无权限,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\"\\n}","errorExample":""},{"type":"xml","example":" \\r\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\r\\n ","errorExample":""}]', - 'title' => '设置截图回调鉴权配置', - 'description' => '- 设置截图回调鉴权前,需要配置截图回调URL,回调URL配置,请参见[添加直播截图配置](~~2847897~~)。'."\n" - .'- 本接口支持主播流域名配置截图回调鉴权,调用时请保证参数设置符合要求。'."\n" - .'- 直播截图服务支持在HTTP(含HTTPS)回调时增加特定签名头,供回调消息接收服务端进行签名认证,以防止非法或无效请求。更多信息,请参见[截图回调鉴权说明](~~417349~~)。'."\n" - ."\n" + 'title' => '删除混流转推事件订阅', + 'description' => '- 本接口用于删除混流转推事件订阅。'."\n" + .'- 调用本接口前,您必须已经调用CreateRtcMPUEventSub创建混流转推事件订阅。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QuerySnapshotCallbackAuth' => [ - 'summary' => '查询截图回调鉴权配置信息。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-07-04T06:14:36.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRtcMPUEventSub'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteRtcMPUEventSub', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + ], + 'DeleteSnapshotCallbackAuth' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域id。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.aliyundoc.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com'], ], ], 'responses' => [ @@ -18845,68 +14890,50 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD5', - ], - 'CallbackAuthKey' => [ - 'description' => '回调鉴权密钥。', - 'type' => 'string', - 'example' => 'yourkey', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.aliyundoc.com', - ], - 'CallbackReqAuth' => [ - 'description' => '回调鉴权开关。取值:'."\n" - ."\n" - .'- **yes**:开启。'."\n" - ."\n" - .'- **no**:关闭。', - 'type' => 'string', - 'example' => 'yes', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD5'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\",\\n \\"CallbackAuthKey\\": \\"yourkey\\",\\n \\"DomainName\\": \\"example.aliyundoc.com\\",\\n \\"CallbackReqAuth\\": \\"yes\\"\\n}","errorExample":""},{"type":"xml","example":" \\nyourkey\\nyes\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\nexample.aliyundoc.com\\n","errorExample":""}]', - 'title' => '查询截图回调鉴权配置', - 'description' => '您已完成配置截图回调鉴权,配置接口请参见[设置截图回调鉴权配置](~~2847907~~)。'."\n" - .'本接口支持查询主播流域名已配置的截图回调鉴权信息,调用时请保证参数设置符合要求。'."\n" + 'title' => '删除截图回调鉴权配置', + 'summary' => '删除截图回调鉴权配置。', + 'description' => '本接口支持删除主播流域名已配置的截图回调鉴权配置。注意删除配置后重新推流可生效(截图回调不再进行鉴权)。'."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteSnapshotCallbackAuth' => [ - 'summary' => '删除截图回调鉴权配置。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteSnapshotCallbackAuth', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\"\\n}","errorExample":""},{"type":"xml","example":" \\r\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\r\\n","errorExample":""}]', + ], + 'DeleteSnapshotFiles' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18917,216 +14944,262 @@ 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域id。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'CreateTimestampList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', + 'description' => '需要删除的截图产生的时间戳列表。', + 'type' => 'array', + 'items' => ['description' => '需要删除的截图产生的毫秒级时间戳。'."\n" + ."\n" + .'通过调用[DescribeLiveStreamSnapshotInfo](~~2847902~~)接口返回的CreateTimestamp参数值即为该参数取值。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1653641526637'], 'required' => true, - 'example' => 'example.aliyundoc.com', + 'example' => '1653641526637', + 'maxItems' => 200, ], ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '播流名称。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + [ + 'name' => 'RemoveFile', + 'in' => 'query', + 'schema' => ['description' => '是否同步删除OSS文件,取值:'."\n" + ."\n" + .'- **true**:同步删除OSS文件。'."\n" + ."\n" + .'- **false**:不同步删除OSS文件。'."\n" + ."\n" + .'> 同步删除OSS文件需要具有OSS文件操作权限。', 'type' => 'boolean', 'required' => true, 'example' => 'true'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD5', + 'FailureCount' => ['description' => '删除截图失败的数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '90F60327-ABEC-5A93-BF1F-****'], + 'SnapshotDeleteInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SnapshotDeleteInfo' => [ + 'description' => '快照删除信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '快照删除信息列表。', + 'type' => 'object', + 'properties' => [ + 'CreateTimestamp' => ['description' => '请求被删除的截图生成毫秒级时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1653641526637'], + 'Message' => ['description' => '对每个截图的处理结果。取值:'."\n" + ."\n" + .'- **OK**:删除成功。'."\n" + ."\n" + .'- **FileNotFound**:未找到该截图文件。', 'type' => 'string', 'example' => 'OK'], + ], + ], + ], + ], + 'description' => '', ], + 'SuccessCount' => ['description' => '删除截图成功的数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParams', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数无效,请检查后重试。'], + ['errorCode' => 'Cannot find task', 'errorMessage' => '%s, please check and try again later.', 'description' => '任务不存在,请检查后重试。'], + ['errorCode' => 'MissingParams', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'OSSAccessDenied', 'errorMessage' => 'OSS bucket not authorised', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'Server internal error', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\"\\n}","errorExample":""},{"type":"xml","example":" \\r\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\r\\n","errorExample":""}]', - 'title' => '删除截图回调鉴权配置', - 'description' => '本接口支持删除主播流域名已配置的截图回调鉴权配置。注意删除配置后重新推流可生效(截图回调不再进行鉴权)。'."\n" + 'title' => '删除直播截图文件', + 'summary' => '删除指定截图文件。', + 'description' => '调用本接口仅支持删除一年内的截图文件。'."\n" + ."\n\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddLivePackageConfig' => [ - 'summary' => '调用AddLivePackageConfig添加直播封装配置。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '| HttpCode | 错误码|错误信息| 描述|'."\n" + .'|-------|-------|-------|-------|'."\n" + .'| 400| InvalidParams|invalid JSON| 无法解析请求。|'."\n" + .'| 400| Cannot find task|Stream not found| 请检查截图配置对应的domain app stream和推流情况。|'."\n" + .'| 400| InvalidParams|Invalid request: missing| 缺失必要参数。|'."\n" + .'| 403| OSSAccessDenied|OSS bucket not authorised| 文件对应的OSS bucket未向视频云账号授权。|'."\n" + .'| 500|InternalError|Server internal error| 请检查截图配置对应的domain app stream和推流情况。|', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteSnapshotFiles', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"FailureCount\\": 1,\\n \\"RequestId\\": \\"90F60327-ABEC-5A93-BF1F-****\\",\\n \\"SnapshotDeleteInfoList\\": {\\n \\"SnapshotDeleteInfo\\": [\\n {\\n \\"CreateTimestamp\\": 1653641526637,\\n \\"Message\\": \\"OK\\"\\n }\\n ]\\n },\\n \\"SuccessCount\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n OK\\n 1653641526637\\n \\n \\n Not Found\\n 1656936778524\\n \\n\\n90F60327-ABEC-5A93-BF1F-****\\n1\\n","errorExample":""}]', + ], + 'DeleteStudioLayout' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '191929', - 'abilityTreeNodes' => [ - 'FEATUREliveJAENGU', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '直播域名(主播放域名)。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****'], ], [ - 'name' => 'AppName', + 'name' => 'LayoutId', 'in' => 'query', - 'schema' => [ - 'description' => 'AppName 名称与推流地址中的 AppName 名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'AppName', - ], + 'schema' => ['description' => '布局ID。如果您通过[AddStudioLayout接口](~~2848062~~)添加虚拟演播厅的布局设置,请查看AddStudioLayout接口调用返回的参数LayoutId值。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], - [ - 'name' => 'StreamName', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'StreamName 名称与推流地址中的 StreamName 名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'StreamName', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e9*****'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidLayoutId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId无效,请检查后重试。'], + ], [ - 'name' => 'Protocol', - 'in' => 'query', - 'schema' => [ - 'description' => '直播协议与封装格式。取值:'."\n" - ."\n" - .'- **HLS_CMAF**'."\n" - ."\n" - .'- **LLHLS_TS**'."\n" - .'(低延迟)'."\n" - ."\n" - .'- **LLHLS_CMAF**(低延迟)'."\n" - .'- **DASH_CMAF**'."\n" - .'- **HLSDASH_CMAF**', - 'type' => 'string', - 'required' => true, - 'example' => 'HLS_CMAF', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'title' => '删除虚拟演播厅布局', + 'summary' => '删除虚拟演播厅的布局设置。', + 'description' => '调用本接口删除虚拟演播厅的布局设置,一次仅支持删除一个布局。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteStudioLayout'], ], + ], + 'ramActions' => [ [ - 'name' => 'SegmentNum', - 'in' => 'query', - 'schema' => [ - 'description' => '直播M3U8切片个数。'."\n" - ."\n" - .'- 取值范围:3~10。'."\n" - ."\n" - .'- 默认值:3。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteStudioLayout', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e9*****\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + ], + 'DescribeAutoShowListTasks' => [ + 'summary' => '查询自动启停的定时任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'SegmentDuration', - 'in' => 'query', - 'schema' => [ - 'description' => '切片时长,单位:秒。'."\n" - ."\n" - .'- 如Protocol为HLS_CMAF,取值范围1~10,默认5秒;'."\n" - ."\n" - .'- 如Protocol为LLHLS_*,取值范围1~2,默认1秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], + ], + 'parameters' => [ [ - 'name' => 'PartDuration', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => 'Part切片时长,单位:毫秒。'."\n" - ."\n" - .'- SegmentDuration为1s时,取值范围100~500ms,默认350ms。'."\n" - ."\n" - .'- SegmentDuration为2s时,取值范围100~1000ms,默认700ms。'."\n" - ."\n" - .'- 仅当Protocol为LLHLS_*时有效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '350', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'IgnoreTranscode', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '是否忽略转码流,取值:'."\n" - ."\n" - .'- **true**(默认值):忽略。'."\n" - ."\n" - .'- **false**:不忽略。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '需要查询定时任务的导播台ID。'."\n" + .'>如果您通过[InitializeAutoShowListTask](~~2848056~~)接口创建定时任务,请查看InitializeAutoShowListTask接口返回参数CasterId值。若不填,默认查询OwnerId下的全量定时任务。', 'type' => 'string', 'required' => false, 'example' => '53200b81-b761-4c10-842a-a0726d97****'], ], ], 'responses' => [ @@ -19134,213 +15207,96 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '05D00B48-DF50-5DC0-A07D-A250DFAE****', - ], + 'AutoShowListTasks' => ['description' => '定时任务列表。包含:'."\n" + ."\n" + .'- Status:任务状态。0为暂停,1为启动。'."\n" + ."\n" + .'- LiveTemplate:转码配置列表。'."\n" + ."\n" + .'- TranscodeConfig:拉流地址的转码分辨率说明。'."\n" + ."\n" + .'- CasterId :导播台ID。', 'type' => 'string', 'example' => '{"Status":0,"TranscodeConfig":{"CasterTemplate":"lp_hd", "LiveTemplate":["lhd","lsd"]}, "CasterId":"cce04ef3-2226-4865-8704-f84b8375****"}'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => '%s Please check and try again later.', - ], - [ - 'errorCode' => 'InvalidProtocol', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidSegmentNum', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidSegmentDuration', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidPartDuration', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数VodUrl无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], - 409 => [ - [ - 'errorCode' => 'ConfigConflicts', - 'errorMessage' => '%s, please check and try again later.', - ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList不存在,请检查后重试。'], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalErr', - 'errorMessage' => '%s, please try again.', - ], - [ - 'errorCode' => 'DomainConfigFailed', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"05D00B48-DF50-5DC0-A07D-A250DFAE****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 05D00B48-DF50-5DC0-A07D-A250DFAE4258\\n","errorExample":""}]', - 'title' => '添加直播封装配置', - 'description' => '- 域名第一次添加封装配置时,会同步下发播放域名加速相关配置,3~5分钟后可生效。'."\n" - ."\n" - .'- 若播放域名对应的区域为海外区域时(新加坡、德国、日本、印尼),可能会存在延迟较大的问题,建议配置完成后请先测试验证是否符合预期。'."\n" - ."\n" - .'- 调用本接口增加直播封装配置,需要重新推流后才生效。'."\n" - ."\n" + 'title' => '查询自动启停的定时任务', + 'description' => '本接口支持查询您已创建的自动启停定时任务相关信息,调用时请保证参数设置符合要求。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为300次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'UpdateLivePackageConfig' => [ - 'summary' => '调用UpdateLivePackageConfig更新直播封装配置。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeAutoShowListTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AutoShowListTasks\\": \\"{\\\\\\"Status\\\\\\":0,\\\\\\"TranscodeConfig\\\\\\":{\\\\\\"CasterTemplate\\\\\\":\\\\\\"lp_hd\\\\\\", \\\\\\"LiveTemplate\\\\\\":[\\\\\\"lhd\\\\\\",\\\\\\"lsd\\\\\\"]}, \\\\\\"CasterId\\\\\\":\\\\\\"cce04ef3-2226-4865-8704-f84b8375****\\\\\\"}\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n04F5D5E0-9FAA-13CB-96A9-850FB06E9A82\\n\\n 0\\n 1645594715228\\n [\\"6ae09369cab349a78dab7a0c350dfb9d\\"]\\n 1645594115228\\n \\n lp_hd\\n lhd\\n lsd\\n \\n e18b0c36-c0b5-47c1-81fd-7d783b5c7802\\n\\n","errorExample":""}]', + ], + 'DescribeCasterChannels' => [ + 'summary' => '查询导播台通道。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveJAENGU', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播域名(主播放域名)。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => 'AppName 名称与推流地址中的 AppName 名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'AppName', - ], - ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => 'StreamName 名称与推流地址中的 StreamName 名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'StreamName', - ], - ], - [ - 'name' => 'Protocol', - 'in' => 'query', - 'schema' => [ - 'description' => '直播协议与封装格式。取值:'."\n" - ."\n" - .'- **HLS_CMAF**'."\n" - ."\n" - .'- **LLHLS_TS**'."\n" - .'(低延迟)'."\n" - ."\n" - .'- **LLHLS_CMAF**(低延迟)'."\n" - .'- **DASH_CMAF**'."\n" - .'- **HLSDASH_CMAF**', - 'type' => 'string', - 'required' => true, - 'example' => 'HLS_CMAF', - ], - ], - [ - 'name' => 'SegmentNum', - 'in' => 'query', - 'schema' => [ - 'description' => '直播M3U8切片个数。取值范围:3~10。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '3', - ], - ], - [ - 'name' => 'SegmentDuration', - 'in' => 'query', - 'schema' => [ - 'description' => '切片时长,单位:秒。'."\n" - ."\n" - .'- 如Protocol为HLS_CMAF,取值范围1~10s。'."\n" - ."\n" - .'- 如Protocol为LLHLS_*,取值范围1~2s。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '5', - ], - ], - [ - 'name' => 'PartDuration', - 'in' => 'query', - 'schema' => [ - 'description' => 'Part切片时长,单位:毫秒。'."\n" - ."\n" - .'> 当Protocol为LLHLS_*时,该参数为必填项。'."\n" - .'- SegmentDuration为1s时,取值范围100~500ms。'."\n" - .'- SegmentDuration为2s时,取值范围100~1000ms。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '350', - ], - ], - [ - 'name' => 'IgnoreTranscode', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '是否忽略转码流,取值:'."\n" - ."\n" - .'- **true**(默认值):忽略。'."\n" - ."\n" - .'- **false**:不忽略。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], ], 'responses' => [ @@ -19348,78 +15304,83 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'Channels' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Channel' => [ + 'description' => '通道列表。', + 'type' => 'array', + 'items' => [ + 'description' => '通道列表。', + 'type' => 'object', + 'properties' => [ + 'ChannelId' => ['description' => '通道位置ID。'."\n" + ."\n" + .'布局应用通道ID,每个位置至多设置一个视频源,格式需符合“RV01~RV12”。', 'type' => 'string', 'example' => 'RV01'], + 'FaceBeauty' => ['description' => '人脸美颜。具体包括:0(whole)、1(磨皮)、2(美白)、3(去除黑眼圈)、4(法令纹)。', 'type' => 'string', 'example' => '0'], + 'ResourceId' => ['description' => '视频源Id。', 'type' => 'string', 'example' => '87642866-281E-4AEA-9582-B124879****'], + 'RtmpUrl' => ['description' => 'rtmp地址。', 'type' => 'string', 'example' => 'rtmp://demo.aliyundoc.com/caster/rtmperf?auth_key=****'], + 'StreamUrl' => ['description' => '通道输出地址。', 'type' => 'string', 'example' => 'http://demo.aliyundoc.com/caster/streamwsx.flv?auth_key=YYYYY'], + ], + ], + ], + ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '83C52866-281E-4AEA-9582-B124********'], + 'Total' => ['description' => '总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidProtocol', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidSegmentNum', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidSegmentDuration', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidPartDuration', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], ], - 404 => [ - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again.', - ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], - 409 => [ - [ - 'errorCode' => 'ConfigConflicts', - 'errorMessage' => '%s, please check and try again later.', - ], + 404 => [ + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalErr', - 'errorMessage' => '%s, please try again.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '更新直播封装配置', - 'description' => '调用本接口更新直播封装配置,重新推流后生效。'."\n" - ."\n" + 'title' => '查询导播台通道信息列表', + 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口查询导播台通道。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为300次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLivePackageConfig' => [ - 'summary' => '查询播流域名下的直播封装配置。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterChannels', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Channels\\": {\\n \\"Channel\\": [\\n {\\n \\"ChannelId\\": \\"RV01\\",\\n \\"FaceBeauty\\": \\"0\\",\\n \\"ResourceId\\": \\"87642866-281E-4AEA-9582-B124879****\\",\\n \\"RtmpUrl\\": \\"rtmp://demo.aliyundoc.com/caster/rtmperf?auth_key=****\\",\\n \\"StreamUrl\\": \\"http://demo.aliyundoc.com/caster/streamwsx.flv?auth_key=YYYYY\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"83C52866-281E-4AEA-9582-B124********\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n \\n RV01\\n 0\\n 87642866-281E-4AEA-9582-B124879****\\n rtmp://demo.aliyundoc.com/caster/rtmperf?auth_key=****\\n http://demo.aliyundoc.com/caster/streamwsx.flv?auth_key=YYYYY\\n \\n 83C52866-281E-4AEA-9582-B1245406349D\\n 1\\n","errorExample":""}]', + ], + 'DescribeCasterComponents' => [ + 'summary' => '调用DescribeCasterComponents查询导播台组件列表。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -19430,735 +15391,775 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveJAENGU', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播域名(主播放域名)。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => 'App名,置空表示匹配所有名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'AppName', - ], - ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流名,置空表示匹配所有流名。', - 'type' => 'string', - 'required' => false, - 'example' => 'StreamName', - ], - ], - [ - 'name' => 'PageNum', - 'in' => 'query', - 'schema' => [ - 'description' => '当前页码。默认值:1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'PageSize', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '每页大小。默认值:10,取值范围:5~30。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '30', - 'minimum' => '5', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], [ - 'name' => 'Order', + 'name' => 'ComponentId', 'in' => 'query', - 'schema' => [ - 'description' => '排序。取值:'."\n" - ."\n" - .'- **asc**(默认值):升序。'."\n" - ."\n" - .'- **desc**:降序。', - 'type' => 'string', - 'required' => false, - 'example' => 'asc', - 'default' => 'asc', - 'enum' => [ - 'asc', - 'desc', - ], - ], + 'schema' => ['description' => '组件ID。如果您通过[AddCasterComponent接口](~~2848030~~)添加导播台组件,请查看AddCasterComponent接口调用返回的参数ComponentId值。', 'type' => 'string', 'required' => false, 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '封装配置信息。', 'type' => 'object', 'properties' => [ - 'LivePackageConfigList' => [ + 'Components' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'LivePackageConfig' => [ - 'description' => '封装配置列表', + 'Component' => [ + 'description' => '组件列表。', 'type' => 'array', 'items' => [ - 'description' => '封装配置列表', 'type' => 'object', 'properties' => [ - 'AppName' => [ - 'description' => 'App名。', - 'type' => 'string', - 'example' => 'AppName', - ], - 'DomainName' => [ - 'description' => '直播域名(主播放域名)。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'IgnoreTranscode' => [ - 'description' => '是否忽略转码流,取值:'."\n" - ."\n" - .'- **true**(默认值):忽略。'."\n" - ."\n" - .'- **false**:不忽略。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'PartDuration' => [ - 'description' => 'Part切片时长,单位:毫秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Protocol' => [ - 'description' => '直播协议与封装格式。', - 'type' => 'string', - 'example' => 'HLS_CMAF', + 'CaptionLayerContent' => [ + 'description' => 'Caption元素属性。', + 'type' => 'object', + 'properties' => [ + 'BorderColor' => ['description' => '文字边框色彩。'."\n" + ."\n" + .'取值范围为**0x000000~0xffffff**。默认:"",表示无效。', 'type' => 'string', 'example' => '0x000000'], + 'BorderWidthNormalized' => ['description' => '文字边框宽度归一化值。该归一化值是基于文字的size来计算的,即BorderWidth/FontSize。'."\n" + ."\n" + .'如果系统归一化反计算出来的值超过**16**,取**16**。默认值为**0**。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'Color' => ['description' => '文字色彩。取值范围为**0x000000~0xffffff**。', 'type' => 'string', 'example' => '0x000000'], + 'FontName' => ['description' => '字体名字取系统预设值。取值:'."\n" + ."\n" + .'- **KaiTi**:楷体。'."\n" + .'- **AlibabaPuHuiTi-Regular**:阿里巴巴普惠体-常规。'."\n" + .'- **AlibabaPuHuiTi-Bold**:阿里巴巴普惠体-粗体。'."\n" + .'- **NAlibabaPuHuiTi-Light**:阿里巴巴普惠体-细体。'."\n" + .'- **NotoSansHans-Regular**:思源黑体-常规。 '."\n" + .'- **NotoSansHans-Bold**:思源黑体-粗体。 '."\n" + .'- **NotoSansHans-Light**:思源黑体-细体。 '."\n" + ."\n" + .'默认为**KaiTi**。', 'type' => 'string', 'example' => 'KaiTi'], + 'LineSpaceNormalized' => ['description' => '行间距。表示每两行字之间的间隔。默认值为0。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'LocationId' => ['description' => '组件类型为caption时,表示引用的视频源Location(通道IChannelId)。', 'type' => 'string', 'example' => 'RV01'], + 'PtsOffset' => ['description' => '纠正当前字幕pts与语音pts偏差值。'."\n" + ."\n" + .'取值范围为 **-10000~+10000**。默认值为**0**。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'ShowSourceLan' => ['description' => '是否显示源语言。取值:'."\n" + ."\n" + .'- **true**:显示。'."\n" + .'- **false**(默认值):不显示。', 'type' => 'boolean', 'example' => 'false'], + 'SizeNormalized' => ['description' => '字体归一化大小,字体设置大小为`[font_size,output_height]`。'."\n" + ."\n" + .'如果系统根据归一化方式反计算的出来的字体大小大于**1024**,取**1024**。默认值为 **-1**,表示无效。', 'type' => 'number', 'format' => 'float', 'example' => '0.1'], + 'SourceLan' => ['description' => '视频源的原始音频语言。取值:'."\n" + .'- **en**:英文。'."\n" + .'- **cn**(默认):中文。'."\n" + .'- **es**:西班牙文。'."\n" + .'- **ru**:俄文。', 'type' => 'string', 'example' => 'cn'], + 'TargetLan' => ['description' => '视频源的目标音频语言。取值:'."\n" + .'- **en**:英文。'."\n" + .'- **cn**(默认):中文。'."\n" + .'- **es**:西班牙文。'."\n" + .'- **ru**:俄文。', 'type' => 'string', 'example' => 'cn'], + 'WordCountPerLine' => ['description' => '每行最大展示字数。', 'type' => 'integer', 'format' => 'int32', 'example' => '15'], + 'WordSpaceNormalized' => ['description' => '字间距,表示每两个字之间的间隔。默认值为**0**。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'WordsCount' => ['description' => '显示字数,可配合字体大小调整。'."\n" + ."\n" + .'取值范围为**10~50**。默认值为**35**。', 'type' => 'integer', 'format' => 'int32', 'example' => '35'], + ], ], - 'SegmentDuration' => [ - 'description' => '切片时长,单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', + 'ComponentId' => ['description' => '组件ID。', 'type' => 'string', 'example' => '72d2ec7a-4cd7-4a01-974b-7cd53947****'], + 'ComponentLayer' => [ + 'description' => '组件Layer的尺寸,布局等信息。', + 'type' => 'object', + 'properties' => [ + 'HeightNormalized' => ['description' => 'Layer元素的高度归一化比例值,其中元素的宽度会按照该高度来进行等比缩放。 '."\n" + ."\n" + .'默认值为**0**,表示按照元素的原始尺寸进行显示。 ', 'type' => 'number', 'format' => 'float', 'example' => '0.5'], + 'PositionNormalizeds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Position' => [ + 'description' => 'Layer 元素的位置归一化值`[x,y]`, 默认为`[0,0]`。 '."\n" + ."\n" + .'>x,y需要进行归一化计算。'."\n", + 'type' => 'array', + 'items' => ['description' => '值。', 'type' => 'number', 'format' => 'float', 'example' => '0.3'], + ], + ], + 'description' => '', + ], + 'PositionRefer' => ['description' => '元素的位置参考坐标值。取值:'."\n" + ."\n" + .'- **topLeft**(默认值):左上。'."\n" + .'- **topRight**:右上。'."\n" + .'- **bottomLeft**:左下。'."\n" + .'- **bottomRight**:右下。', 'type' => 'string', 'example' => 'topLeft'], + 'Transparency' => ['description' => '该Layer的透明度,取值范围为0~255。'."\n" + ."\n" + .'**0**代表完全透明。**255**(默认)代表完全不透明。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'WidthNormalized' => ['description' => 'Layer元素的宽度归一化比例值,其中元素的高度会按照该宽度来进行等比缩放。默认值为**0**,表示按照元素的原始尺寸进行显示。'."\n" + ."\n" + .'> 该字段和heightNormalized有冲突。一旦同时设置,只有heightNormalized生效。如果只能设置一个,后面设置的值会影响前面的设置。'."\n", 'type' => 'number', 'format' => 'float', 'example' => '0.5'], + ], ], - 'SegmentNum' => [ - 'description' => '直播M3U8切片个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', + 'ComponentName' => ['description' => '组件名称,默认为组件ID。', 'type' => 'string', 'example' => 'component_name'], + 'ComponentType' => ['description' => '组件类型。取值:'."\n" + .'- **text**:文字组件。'."\n" + .'- **image**:图像组件。 '."\n" + .'- **caption**:翻译字幕组件。', 'type' => 'string', 'example' => 'text'], + 'Effect' => ['description' => '组件显示的特效。取值: '."\n" + .' '."\n" + .'- **none**:无。'."\n" + .' '."\n" + .'- **animateH**:水平滚动。'."\n" + .' '."\n" + .'- **animateV**:垂直滚动。', 'type' => 'string', 'example' => 'animateV'], + 'ImageLayerContent' => [ + 'description' => 'Image元素属性。', + 'type' => 'object', + 'properties' => [ + 'MaterialId' => ['description' => '媒资库素材ID。', 'type' => 'string', 'example' => '6cf724c6ebfd4a59b5b3cec6f10d****'], + ], ], - 'StreamName' => [ - 'description' => '直播流名。', - 'type' => 'string', - 'example' => 'StreamName', + 'LocationId' => ['description' => '用于指定组件位置。'."\n" + ."\n" + .'每个位置至多设置一个组件,格式需符合“RC01…RC12”。', 'type' => 'string', 'example' => 'RC01'], + 'TextLayerContent' => [ + 'description' => 'Text元素属性。', + 'type' => 'object', + 'properties' => [ + 'BorderColor' => ['description' => '文字边框色彩。取值范围为**0x000000~0xffffff**。默认为 **""**,表示无效。', 'type' => 'string', 'example' => '0x000000'], + 'BorderWidthNormalized' => ['description' => '文字边框宽度归一化值是基于文字的size来计算的,即**BorderWidth/FontSize**。'."\n" + ."\n" + .'如果系统归一化反计算出来的值超过**16**,取**16**。默认值为**0**。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'Color' => ['description' => '文字色彩。取值范围为**0x000000~0xffffff**。', 'type' => 'string', 'example' => '0xff0000'], + 'FontName' => ['description' => '字体名字取系统预设值。取值:'."\n" + ."\n" + .'- **KaiTi**:楷体。'."\n" + .'- **AlibabaPuHuiTi-Regular**:阿里巴巴普惠体-常规。'."\n" + .'- **AlibabaPuHuiTi-Bold**:阿里巴巴普惠体-粗体。'."\n" + .'- **NAlibabaPuHuiTi-Light**:阿里巴巴普惠体-细体。'."\n" + .'- **NotoSansHans-Regular**:思源黑体-常规。 '."\n" + .'- **NotoSansHans-Bold**:思源黑体-粗体。 '."\n" + .'- **NotoSansHans-Light**:思源黑体-细体。 '."\n" + ."\n" + .'默认为**KaiTi**。', 'type' => 'string', 'example' => 'KaiTi'], + 'SizeNormalized' => ['description' => '字体归一化大小。'."\n" + ."\n" + .'设置大小为**font_size/output_height**。如果系统根据归一化方式反计算的出来的字体大小大于**1024**, 取**1024**。默认值为 **-1**,表示无效。', 'type' => 'number', 'format' => 'float', 'example' => '16'], + 'Text' => ['description' => '文本内容。', 'type' => 'string', 'example' => 'hello world'], + ], ], ], + 'description' => '', ], ], ], + 'description' => '', ], - 'Order' => [ - 'description' => '排序。取值:'."\n" - ."\n" - .'- **asc**(默认值):升序。'."\n" - ."\n" - .'- **desc**:降序。', - 'type' => 'string', - 'example' => 'asc', - ], - 'PageNum' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '1FEDCFD8-4C5D-5CB3-A5A1-0B59E5AE57B0', - ], - 'TotalNum' => [ - 'description' => '总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalPage' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3be7ade8-d907-483c-b24a-0dad45******'], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => '%s Please check and try again later.', - ], - [ - 'errorCode' => 'InvalidProtocol', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidSegmentNum', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidSegmentDuration', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidPartDuration', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalErr', - 'errorMessage' => '%s, please try again.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"LivePackageConfigList\\": {\\n \\"LivePackageConfig\\": [\\n {\\n \\"AppName\\": \\"AppName\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"IgnoreTranscode\\": true,\\n \\"PartDuration\\": 0,\\n \\"Protocol\\": \\"HLS_CMAF\\",\\n \\"SegmentDuration\\": 5,\\n \\"SegmentNum\\": 3,\\n \\"StreamName\\": \\"StreamName\\"\\n }\\n ]\\n },\\n \\"Order\\": \\"asc\\",\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"1FEDCFD8-4C5D-5CB3-A5A1-0B59E5AE57B0\\",\\n \\"TotalNum\\": 1,\\n \\"TotalPage\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 1FEDCFD8-4C5D-5CB3-A5A1-0B59E5AE57B0\\n asc\\n 10\\n 10\\n 1\\n \\n AppName\\n 3\\n StreamName\\n HLS_CMAF\\n true\\n 0\\n 5\\n example.com\\n \\n","errorExample":""}]', - 'title' => '查询直播封装配置', - 'description' => '先获取主播流域名,再调用本接口查询播流域名下的直播封装配置。'."\n" + 'title' => '查询导播台组件列表', + 'description' => '先通过[AddCasterComponent接口](~~2848030~~)添加导播台组件,再调用本接口查询导播台组件列表。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为300次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteLivePackageConfig' => [ - 'summary' => '删除直播封装配置。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterComponents', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Components\\": {\\n \\"Component\\": [\\n {\\n \\"CaptionLayerContent\\": {\\n \\"BorderColor\\": \\"0x000000\\",\\n \\"BorderWidthNormalized\\": 0,\\n \\"Color\\": \\"0x000000\\",\\n \\"FontName\\": \\"KaiTi\\",\\n \\"LineSpaceNormalized\\": 0,\\n \\"LocationId\\": \\"RV01\\",\\n \\"PtsOffset\\": 0,\\n \\"ShowSourceLan\\": false,\\n \\"SizeNormalized\\": 0.1,\\n \\"SourceLan\\": \\"cn\\",\\n \\"TargetLan\\": \\"cn\\",\\n \\"WordCountPerLine\\": 15,\\n \\"WordSpaceNormalized\\": 0,\\n \\"WordsCount\\": 35\\n },\\n \\"ComponentId\\": \\"72d2ec7a-4cd7-4a01-974b-7cd53947****\\",\\n \\"ComponentLayer\\": {\\n \\"HeightNormalized\\": 0.5,\\n \\"PositionNormalizeds\\": {\\n \\"Position\\": [\\n 0.3\\n ]\\n },\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"Transparency\\": 200,\\n \\"WidthNormalized\\": 0.5\\n },\\n \\"ComponentName\\": \\"component_name\\",\\n \\"ComponentType\\": \\"text\\",\\n \\"Effect\\": \\"animateV\\",\\n \\"ImageLayerContent\\": {\\n \\"MaterialId\\": \\"6cf724c6ebfd4a59b5b3cec6f10d****\\"\\n },\\n \\"LocationId\\": \\"RC01\\",\\n \\"TextLayerContent\\": {\\n \\"BorderColor\\": \\"0x000000\\",\\n \\"BorderWidthNormalized\\": 0,\\n \\"Color\\": \\"0xff0000\\",\\n \\"FontName\\": \\"KaiTi\\",\\n \\"SizeNormalized\\": 16,\\n \\"Text\\": \\"hello world\\"\\n }\\n }\\n ]\\n },\\n \\"RequestId\\": \\"3be7ade8-d907-483c-b24a-0dad45******\\",\\n \\"Total\\": 3\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n 0x000000\\n 0\\n 0x000000\\n KaiTi\\n 0\\n RV01\\n 0\\n false\\n 0.1\\n cn\\n cn\\n 15\\n 0\\n 35\\n \\n 72d2ec7a-4cd7-4a01-974b-7cd53947****\\n \\n 0.5\\n 0.3\\n topLeft\\n 200\\n 0.5\\n \\n component_name\\n text\\n animateV\\n \\n 6cf724c6ebfd4a59b5b3cec6f10d****\\n \\n RC01\\n \\n 0x000000\\n 0\\n 0xff0000\\n KaiTi\\n 16\\n hello world\\n \\n \\n 3be7ade8-d907-483c-b24a-0dad4595beaf\\n 3\\n","errorExample":""}]', + ], + 'DescribeCasterConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveJAENGU', - ], + 'abilityTreeCode' => '106967', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播域名(主播放域名)。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => 'App名,`*`表示匹配所有名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'AppName', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'StreamName', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名,`*`表示匹配AppName下所有流。', - 'type' => 'string', - 'required' => true, - 'example' => 'StreamName', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster](~~2848009~~)接口创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '导播台配置信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '72ABAD7B-B14C-52DE-B6C6-C639FECAF5AD', + 'AutoSwitchUrgentConfig' => ['description' => '自动切备播配置。`eofThres`:表示断流时间后自动切备播,单位为秒。', 'type' => 'string', 'example' => '{"eofThres":3}'], + 'AutoSwitchUrgentOn' => ['description' => '开启断流自动切换备播。'."\n" + .'- **true**:开启。'."\n" + .'- **false**:关闭。', 'type' => 'string', 'example' => 'true'], + 'CallbackUrl' => ['description' => '用户回调地址。', 'type' => 'string', 'example' => 'http://learn.aliyundoc.com/callBackLive'], + 'CasterId' => ['description' => '导播台ID。', 'type' => 'string', 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], + 'CasterName' => ['description' => '导播台名称。', 'type' => 'string', 'example' => 'coco-caster10'], + 'ChannelEnable' => ['description' => '是否启用Channel。 取值:'."\n" + .' '."\n" + .'- **0**:不启用。'."\n" + .'- **1**:启用。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Delay' => ['description' => '延时播放。单位:秒 。 '."\n" + .' '."\n" + .'- **0**:禁用延时。'."\n" + .'- 大于**0**:启用延时。'."\n" + .' '."\n", 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'ProgramEffect' => ['description' => '轮播生效标志。 取值:'."\n" + .' '."\n" + .'- **0**:不生效 。'."\n" + .'- **1**:生效。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'ProgramName' => ['description' => '轮播台名称。', 'type' => 'string', 'example' => 'program_name'], + 'RecordConfig' => [ + 'description' => '录制配置参数为空时,表示不启用录制功能。', + 'type' => 'object', + 'properties' => [ + 'OnDemand' => ['description' => '按需录制。取值:'."\n" + ."\n" + .'- 0:关闭。'."\n" + ."\n" + .'- 1:通过HTTP回调方式。'."\n" + ."\n" + .'- 2:解析推流参数按需录制。'."\n" + ."\n" + .'- 7:默认不录制。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'OssBucket' => ['description' => '存储位置。', 'type' => 'string', 'example' => 'liveBucket****'], + 'OssEndpoint' => ['description' => '存储位置所在OSS节点。', 'type' => 'string', 'example' => 'oss-cn-shanghai.aliyundoc.com'], + 'RecordFormat' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RecordFormat' => [ + 'description' => '录制格式配置。', + 'type' => 'array', + 'items' => [ + 'description' => '录制时长信息。', + 'type' => 'object', + 'properties' => [ + 'CycleDuration' => ['description' => '录制时长。', 'type' => 'integer', 'format' => 'int32', 'example' => '3600'], + 'Format' => ['description' => '录制格式。', 'type' => 'string', 'example' => 'M3U8'], + 'OssObjectPrefix' => ['description' => '录制文件名。', 'type' => 'string', 'example' => 'record/{liveApp****}/{liveStream****}'], + 'SliceOssObjectPrefix' => ['description' => '切片名称。', 'type' => 'string', 'example' => 'record/{liveApp****}/{liveStream****}/{UnixTimestamp****}'], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '97df6b7f-3490-47d2-ac50-8833e1b64597'], + 'SideOutputUrl' => ['description' => '用户自定义导播台旁路输出地址。', 'type' => 'string', 'example' => 'rtmp://sophon-developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****'], + 'SideOutputUrlList' => ['description' => '用户自定义导播台旁路输出地址列表。', 'type' => 'string', 'example' => '["rtmp://domain/app1/stream1","rtmp://domain/app2/stream2"]'], + 'SyncGroupsConfig' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SyncGroup' => [ + 'description' => '存储配置。', + 'type' => 'array', + 'items' => [ + 'description' => '存储配置。', + 'type' => 'object', + 'properties' => [ + 'HostResourceId' => ['description' => '导播台资源ID。', 'type' => 'string', 'example' => '28768383240243****'], + 'Mode' => ['description' => '静态页面缓存的模式。取值:'."\n" + ."\n" + .'- 0: 标准模式。'."\n" + ."\n" + .'- 1:强力模式。'."\n" + ."\n" + .'- 2:不缓存。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'ResourceIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ResourceId' => [ + 'description' => '需要修改资源组的云资源的资源ID列表,资源ID数量限制为1至50。', + 'type' => 'array', + 'items' => ['description' => '需要修改资源组的云资源的资源ID列表,资源ID数量限制为1至50。'."\n", 'type' => 'string', 'example' => '1'], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + 'TranscodeConfig' => [ + 'description' => '转码配置。', + 'type' => 'object', + 'properties' => [ + 'CasterTemplate' => ['description' => '导播台转码模板。取值:'."\n" + ."\n" + .'- **lp_ld**:流畅。'."\n" + .'- **lp_sd**:标清。'."\n" + .'- **lp_hd**:高清。'."\n" + .'- **lp_ud**:超清。'."\n" + .'- **lp_ld_v**:竖屏流畅。'."\n" + .'- **lp_sd_v**:竖屏标清。'."\n" + .'- **lp_hd_v**:竖屏高清。'."\n" + .'- **lp_ud_v**:竖屏超清。', 'type' => 'string', 'example' => 'lp_hd'], + 'LiveTemplateIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LocationId' => [ + 'description' => '直播转码配置。', + 'type' => 'array', + 'items' => ['description' => '直播转码配置。取值:'."\n" + ."\n" + .'- **lsd**:标清 。'."\n" + .'- **lld**:流畅。'."\n" + .'- **lud**:超清。'."\n" + .'- **lhd**:高清自适应转码模板 。'."\n" + .'- **daobo-lsd**:标清。'."\n" + .'- **daobo-lld**:流畅。'."\n" + .'- **daobo-lud**:超清。'."\n" + .'- **daobo-lhd**:高清 。', 'type' => 'string', 'example' => 'lld'], + ], + ], + 'description' => '', + ], + 'CustomParams' => [ + 'description' => '自定义配置', + 'type' => 'object', + 'properties' => [ + 'video' => [ + 'description' => '视频参数', + 'type' => 'object', + 'properties' => [ + 'fps' => ['description' => '视频帧率', 'type' => 'integer', 'format' => 'int32', 'example' => '300'], + 'bitrate' => ['description' => '视频码率', 'type' => 'integer', 'format' => 'int32', 'example' => '300'], + 'width' => ['description' => '视频画面宽度,单位为像素(px)。', 'type' => 'integer', 'format' => 'int32', 'example' => '1080'], + 'height' => ['description' => '视频画面高度,单位为像素(px)。', 'type' => 'integer', 'format' => 'int32', 'example' => '720'], + ], + ], + ], + ], + ], ], + 'UrgentImageId' => ['description' => '备播图片媒资库素材ID。', 'type' => 'string', 'example' => 'a089175eb5f4427684fc0715159a****'], + 'UrgentImageUrl' => ['description' => '备播图片素材URL。', 'type' => 'string', 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg'], + 'UrgentLiveStreamUrl' => ['description' => '备播直播流URL。', 'type' => 'string', 'example' => 'rtmp://demo.aliyundoc.com'], + 'UrgentMaterialId' => ['description' => '备播视频媒资库素材ID。', 'type' => 'string', 'example' => '98646538-bcf9-4aef-bd4a-e6bb76588****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidProtocol', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidSegmentNum', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidSegmentDuration', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidPartDuration', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again.', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalErr', - 'errorMessage' => '%s, please try again.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"72ABAD7B-B14C-52DE-B6C6-C639FECAF5AD\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 72ABAD7B-B14C-52DE-B6C6-C639FECAF5AD\\n","errorExample":""}]', - 'title' => '删除直播封装配置', - 'description' => '调用本接口删除直播封装配置,重新推流后才生效。'."\n" + 'title' => '查询导播台配置', + 'summary' => '查询导播台配置信息。', + 'description' => '先通过[CreateCaster](~~2848009~~)接口创建导播台,再调用本接口查询导播台配置信息。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为300次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'AddLiveSnapshotDetectPornConfig' => [ - 'summary' => '可按照域名和App级别配置播流审核服务。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-12T09:10:34.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2023-11-22T01:24:18.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2023-03-31T08:26:53.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2023-03-07T02:04:50.000Z', 'description' => '响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AutoSwitchUrgentConfig\\": \\"{\\\\\\"eofThres\\\\\\":3}\\",\\n \\"AutoSwitchUrgentOn\\": \\"true\\",\\n \\"CallbackUrl\\": \\"http://learn.aliyundoc.com/callBackLive\\",\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"CasterName\\": \\"coco-caster10\\",\\n \\"ChannelEnable\\": 1,\\n \\"Delay\\": 0,\\n \\"DomainName\\": \\"example.com\\",\\n \\"ProgramEffect\\": 0,\\n \\"ProgramName\\": \\"program_name\\",\\n \\"RecordConfig\\": {\\n \\"OnDemand\\": 0,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"OssEndpoint\\": \\"oss-cn-shanghai.aliyundoc.com\\",\\n \\"RecordFormat\\": {\\n \\"RecordFormat\\": [\\n {\\n \\"CycleDuration\\": 3600,\\n \\"Format\\": \\"M3U8\\",\\n \\"OssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}\\",\\n \\"SliceOssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}/{UnixTimestamp****}\\"\\n }\\n ]\\n }\\n },\\n \\"RequestId\\": \\"97df6b7f-3490-47d2-ac50-8833e1b64597\\",\\n \\"SideOutputUrl\\": \\"rtmp://sophon-developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****\\",\\n \\"SideOutputUrlList\\": \\"[\\\\\\"rtmp://domain/app1/stream1\\\\\\",\\\\\\"rtmp://domain/app2/stream2\\\\\\"]\\",\\n \\"SyncGroupsConfig\\": {\\n \\"SyncGroup\\": [\\n {\\n \\"HostResourceId\\": \\"28768383240243****\\",\\n \\"Mode\\": 0,\\n \\"ResourceIds\\": {\\n \\"ResourceId\\": [\\n \\"1\\"\\n ]\\n }\\n }\\n ]\\n },\\n \\"TranscodeConfig\\": {\\n \\"CasterTemplate\\": \\"lp_hd\\",\\n \\"LiveTemplateIds\\": {\\n \\"LocationId\\": [\\n \\"lld\\"\\n ]\\n },\\n \\"CustomParams\\": {\\n \\"video\\": {\\n \\"fps\\": 300,\\n \\"bitrate\\": 300,\\n \\"width\\": 1080,\\n \\"height\\": 720\\n }\\n }\\n },\\n \\"UrgentImageId\\": \\"a089175eb5f4427684fc0715159a****\\",\\n \\"UrgentImageUrl\\": \\"http://learn.aliyundoc.com/AppName/image.jpg\\",\\n \\"UrgentLiveStreamUrl\\": \\"rtmp://demo.aliyundoc.com\\",\\n \\"UrgentMaterialId\\": \\"98646538-bcf9-4aef-bd4a-e6bb76588****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0\\n rtmp://demo.aliyundoc.com\\n 98646538-bcf9-4aef-bd4a-e6bb76588****\\n a089175eb5f4427684fc0715159a****\\n http://learn.aliyundoc.com/AppName/image.jpg\\n http://learn.aliyundoc.com/callBackLive\\n program_name\\n coco-caster10\\n LIVEPRODUCER_POST-cn-0pp1czt****\\n 0\\n 1\\n example.com\\n 97df6b7f-3490-47d2-ac50-8833e1b64597\\n [\\"rtmp://domain/app1/stream1\\",\\"rtmp://domain/app2/stream2\\"]\\n rtmp://sophon-developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****\\n true\\n {\\"eofThres\\":3}\\n \\n lp_hd\\n lld\\n \\n \\n oss-cn-shanghai.aliyundoc.com\\n liveBucket****\\n 0\\n \\n 3600\\n record/{liveApp****}/{liveStream****}/{UnixTimestamp****}\\n record/{liveApp****}/{liveStream****}\\n M3U8\\n \\n \\n \\n 28768383240243****\\n 0\\n 1\\n \\n","errorExample":""}]', + ], + 'DescribeCasterLayouts' => [ + 'summary' => '查询导播台布局列表。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'AppName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。'."\n" - .' '."\n" - .'AppName名称与推流地址中的AppName名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'testApp', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'OssEndpoint', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储Endpoint名称。'."\n" - ."\n" - .'审核完成后,您可以根据审核回调信息,在OSS控制台查找指定的审核内容。OSS Endpoint需要提前创建,创建方法请参考[配置审核](~~199449~~) 。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-oss-****.aliyuncs.com', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], [ - 'name' => 'OssBucket', + 'name' => 'LayoutId', 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储Bucket名称。'."\n" - ."\n" - .'审核完成后,您可以根据审核回调信息,在OSS控制台查找指定的审核内容。OSS Bucket需要提前创建,创建方法请参考[配置审核](~~199449~~) 。', - 'type' => 'string', - 'required' => true, - 'example' => 'livebucket', - ], + 'schema' => ['description' => '布局ID。'."\n" + ."\n" + .'如果您不提供LayoutId值,则返回导播台下所有布局列表。', 'type' => 'string', 'required' => false, 'example' => '72d2ec7a-4cd7-4a01-974b-7cd53947****'], ], - [ - 'name' => 'OssObject', - 'in' => 'query', - 'schema' => [ - 'description' => '保存涉黄涉政等违规图片名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'record/{AppName}/{StreamName}/{Sequence}.jpg', - ], - ], - [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => '采样间隔。取值范围:**5~3600**。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '3600', - 'minimum' => '5', - 'example' => '10', - ], - ], - [ - 'name' => 'Scene', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '检测场景列表。', - 'type' => 'array', - 'items' => [ - 'description' => '检测场景。取值:'."\n" - .'- **porn**(默认值):鉴黄。'."\n" - .'- **terrorism**:暴恐涉政。'."\n" - .'- **ad**:图文违规。'."\n" - .'- **live**:不良直播场景。'."\n" - .'- **logo**:logo检测。', - 'type' => 'string', - 'required' => false, - 'example' => 'live', - ], - 'required' => false, - 'example' => 'live', - 'maxItems' => 5, - ], - ], - ], - 'responses' => [ - 200 => [ + ], + 'responses' => [ + 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + 'Layouts' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Layout' => [ + 'description' => '布局列表。', + 'type' => 'array', + 'items' => [ + 'description' => '布局列表。', + 'type' => 'object', + 'properties' => [ + 'AudioLayers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AudioLayer' => [ + 'description' => 'Audiolayer配置列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'audiolayer配置列表。', + 'type' => 'object', + 'properties' => [ + 'FixedDelayDuration' => ['description' => '该字段对视频进行固定延迟设置,可用于字幕同步。 '."\n" + .' '."\n" + .'单位为毫秒(ms)。默认值为**0**。取值范围为**0~5000**。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'ValidChannel' => ['description' => '确定哪些声道可以作为音量输入。取值:'."\n" + ."\n" + .'- **leftChannel**:左声道。'."\n" + .'- **rightChannel**:右声道。'."\n" + .'- **all**(默认值):双声道。', 'type' => 'string', 'example' => 'all'], + 'VolumeRate' => ['description' => 'Layer元素的高度归一化比例值,其中元素的宽度会按照该高度来进行等比缩放。 '."\n" + .'>默认值为**0**,表示按照元素的原始尺寸进行显示。 ', 'type' => 'number', 'format' => 'float', 'example' => '1'], + ], + ], + ], + ], + 'description' => '', + ], + 'BlendList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LocationId' => [ + 'description' => '位置关联列表,与VideoLayers顺序保持一致。', + 'type' => 'array', + 'items' => ['description' => '位置ID。', 'type' => 'string', 'example' => 'RV01'], + ], + ], + 'description' => '', + ], + 'LayoutId' => ['description' => '布局ID。', 'type' => 'string', 'example' => '72d2ec7a-4cd7-4a01-974b-7cd53947****'], + 'MixList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LocationId' => [ + 'description' => '位置关联列表,与AudioLayers顺序保持一致。', + 'type' => 'array', + 'items' => ['description' => '位置ID。', 'type' => 'string', 'example' => 'RV01'], + ], + ], + 'description' => '', + ], + 'VideoLayers' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VideoLayer' => [ + 'description' => 'Videolayer配置列表,采用数组默认序列。', + 'type' => 'array', + 'items' => [ + 'description' => 'videolayer配置列表,采用数组默认序列。', + 'type' => 'object', + 'properties' => [ + 'FillMode' => ['description' => '元素填充方式。取值: '."\n" + .' '."\n" + .'- **none**(默认):不填充。以画面作为配置目标进行Layer设置。'."\n" + .'- **fit**:自适应。以填充区(框)作为配置目标进行Layer设置,此时画面会按照原始的宽高比缩放,长边对齐的自适应方式在填充区(框)内居中填充,若填充区宽高比和画面不一致,则短边两侧无填充(显示为下层Layer画面,若下层未配置Layer,默认为底图黑色)。', 'type' => 'string', 'example' => 'fit'], + 'FixedDelayDuration' => ['description' => '该字段对视频进行固定延迟设置,可用于字幕同步。 '."\n" + .' '."\n" + .'单位:毫秒(ms) 。 默认值为**0** 。取值范围为**0~5000**。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'HeightNormalized' => ['description' => 'Layer元素的高度归一化比例值。 '."\n" + .' '."\n" + .'- 若采用不填充模式,元素的宽度会按照该高度来进行等比缩放。默认值为**0**,表示按照画面的原始尺寸进行显示。'."\n" + .'- 若采用自适应方式,该字段必传且大于**0**,表示填充区(框)高度归一化比例值。', 'type' => 'number', 'format' => 'float', 'example' => '0.5'], + 'PositionNormalizeds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Position' => [ + 'description' => 'Layer元素的位置归一化值`[x,y]`,默认为`[0,0]`。'."\n" + .'>注意x,y需要进行归一化计算。', + 'type' => 'array', + 'items' => ['description' => '值。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + ], + ], + 'description' => '', + ], + 'PositionRefer' => ['description' => '设置元素的位置参考坐标值。取值:'."\n" + ."\n" + .'- **topLeft**(默认值):左上。'."\n" + .'- **topRight**:右上。'."\n" + .'- **bottomLeft**:左下。'."\n" + .'- **bottomRight**:右下。 '."\n" + .'- **center**:中间。'."\n" + .'- **topCenter**:中上。'."\n" + .'- **bottomCenter**:中下。'."\n" + .'- **leftCenter**:左中。'."\n" + .'- **rightCenter**:右中。', 'type' => 'string', 'example' => 'topLeft'], + 'WidthNormalized' => ['description' => 'Layer元素的宽度归一化比例值。 '."\n" + .' '."\n" + .'- 若采用不填充模式,元素的高度会按照该宽度来进行等比缩放。默认值为**0**,表示按照画面的原始尺寸进行显示。 '."\n" + .'- 若采用自适应方式,该字段必传且大于**0**,表示填充区(框)宽度归一化比例值。', 'type' => 'number', 'format' => 'float', 'example' => '0.5'], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3be7ade8-d907-483c-b24a-0dad45****'], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidOssEndpoint.Malformed', - 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', - ], - [ - 'errorCode' => 'InvalidOssBucket.Malformed', - 'errorMessage' => 'Specified parameter OssBucket is not valid.', - ], - [ - 'errorCode' => 'InvalidOssObject.Malformed', - 'errorMessage' => 'Specified parameter OssObject is not valid.', - ], - [ - 'errorCode' => 'InvalidOssBucket.NotFound', - 'errorMessage' => 'The parameter OssBucket does not exist.', - ], - [ - 'errorCode' => 'InvalidScenes', - 'errorMessage' => 'Specified parameter Scene is not valid.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '按照域名和App级别配置直播流审核服务', - 'description' => '- 直播审核按照域名和App级别对于其中违规敏感内容进行识别审查,并通过回调的方式实时将违规内容通知到用户,用户可以对内容进行复审并进行相应处置。'."\n" + 'title' => '查询导播台布局列表', + 'description' => '调用本接口查询导播台布局列表。若未指定具体的布局ID,则默认查询导播台下所有布局列表。'."\n" ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" - ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AddLiveDetectNotifyConfig' => [ - 'summary' => '添加直播审核回调通知地址。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterLayouts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Layouts\\": {\\n \\"Layout\\": [\\n {\\n \\"AudioLayers\\": {\\n \\"AudioLayer\\": [\\n {\\n \\"FixedDelayDuration\\": 20,\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 1\\n }\\n ]\\n },\\n \\"BlendList\\": {\\n \\"LocationId\\": [\\n \\"RV01\\"\\n ]\\n },\\n \\"LayoutId\\": \\"72d2ec7a-4cd7-4a01-974b-7cd53947****\\",\\n \\"MixList\\": {\\n \\"LocationId\\": [\\n \\"RV01\\"\\n ]\\n },\\n \\"VideoLayers\\": {\\n \\"VideoLayer\\": [\\n {\\n \\"FillMode\\": \\"fit\\",\\n \\"FixedDelayDuration\\": 20,\\n \\"HeightNormalized\\": 0.5,\\n \\"PositionNormalizeds\\": {\\n \\"Position\\": [\\n 0\\n ]\\n },\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 0.5\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"RequestId\\": \\"3be7ade8-d907-483c-b24a-0dad45****\\",\\n \\"Total\\": 3\\n}","errorExample":""},{"type":"xml","example":"\\n3be7ade8-d907-483c-b24a-0dad4595beaf\\n\\n \\n 72d2ec7a-4cd7-4a01-974b-7cd53947****\\n \\n \\n all\\n 1\\n 20\\n \\n \\n \\n \\n fit\\n 0.5\\n topLeft\\n 20\\n 0.5\\n \\n [0,3]\\n \\n \\n \\n \\n \\"RV01\\", \\"RV02\\"\\n \\n \\n RV01\\n \\n \\n\\n3\\n","errorExample":"{\\n \\"RequestId\\": \\"3be7ade8-d907-483c-b24a-0dad4595beaf\\",\\n \\"Layouts\\": [\\n {\\n \\"MixList\\": [\\n \\"RV01\\"\\n ],\\n \\"AudioLayers\\": [\\n {\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 1\\n }\\n ],\\n \\"VideoLayers\\": [\\n {\\n \\"HeightNormalized\\": 0.5,\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 0.5,\\n \\"PositionNormalized\\": [\\n 0,\\n 0.3\\n ]\\n },\\n {\\n \\"HeightNormalized\\": 0.5,\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 0.5,\\n \\"PositionNormalized\\": [\\n 0.5,\\n 0.3\\n ]\\n }\\n ],\\n \\"LayoutId\\": \\"72d2ec7a-4cd7-4a01-974b-7cd53947f053\\",\\n \\"BlendList\\": [\\n \\"RV01\\",\\n \\"RV02\\"\\n ]\\n },\\n {\\n \\"MixList\\": [\\n \\"RV01\\"\\n ],\\n \\"AudioLayers\\": [\\n {\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 0.5\\n }\\n ],\\n \\"VideoLayers\\": [\\n {\\n \\"HeightNormalized\\": 1,\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 1,\\n \\"PositionNormalized\\": [\\n 0,\\n 0\\n ]\\n },\\n {\\n \\"HeightNormalized\\": 0.4,\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 0.4,\\n \\"PositionNormalized\\": [\\n 0.1,\\n 0.1\\n ]\\n }\\n ],\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\",\\n \\"BlendList\\": [\\n \\"RV01\\",\\n \\"RV02\\"\\n ]\\n }\\n ]\\n}"}]', + ], + 'DescribeCasterProgram' => [ + 'summary' => '查询导播台节目单。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'NotifyUrl', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '发现涉黄、涉政等违规内容的回调地址。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://demo.aliyundoc.com/examplecallback.action', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidNotifyUrl.Malformed', - 'errorMessage' => 'Specified NotifyUrl is invalid.', - ], - [ - 'errorCode' => 'InvalidNotifyUrl.Unsafe', - 'errorMessage' => 'Specified NotifyUrl is not safe.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'Invalid Params.', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '添加回调通知URL', - 'description' => '- 直播审核服务会根据回调地址实时将违规内容通知到用户,用户可以对内容进行复审并进行相应处置。'."\n" - ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveSnapshotDetectPornConfig' => [ - 'summary' => '查询直播审核配置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'EpisodeId', + 'in' => 'query', + 'schema' => ['description' => '节目ID。', 'type' => 'string', 'required' => false, 'example' => '1872639A-F203-4EC5-8E43-CB92E68F****'], ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', + [ + 'name' => 'EpisodeType', + 'in' => 'query', + 'schema' => ['description' => '节点类型。取值:'."\n" + .' '."\n" + .'- **Resource**:视频源。'."\n" + .'- **Component**:组件。', 'type' => 'string', 'required' => false, 'example' => 'Resource'], ], - ], - 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。 ', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:00:00Z'], ], [ - 'name' => 'AppName', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T10:00:00Z'], ], [ 'name' => 'PageNum', 'in' => 'query', - 'schema' => [ - 'description' => '分页的页码。默认值:**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5'], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => ' '."\n" - .'每页大小。默认值:**10**,取值范围:**5~30**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '30', - 'minimum' => '5', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => '每页节目数量。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], [ - 'name' => 'Order', + 'name' => 'Status', 'in' => 'query', - 'schema' => [ - 'description' => '按创建时间排序。取值:'."\n" - ."\n" - .'- **Asc**(默认值):升序。'."\n" - .'- **Desc**:降序。', - 'type' => 'string', - 'required' => false, - 'example' => 'Asc', - 'default' => 'asc', - 'enum' => [ - 'asc', - 'desc', - ], - ], + 'schema' => ['description' => '节目状态。 取值:'."\n" + .' '."\n" + .'- **0**:未播放。'."\n" + .'- **1**:播放中。'."\n" + .'- **2**:播放完毕。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], ], ], 'responses' => [ @@ -20166,134 +16167,111 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'PageNum' => [ - 'description' => '分页的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'Order' => [ - 'description' => '排序。', - 'type' => 'string', - 'example' => 'Asc', - ], - 'TotalPage' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '11', - ], - 'PageSize' => [ - 'description' => '每页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'TotalNum' => [ - 'description' => '符合条件的总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '6', - ], - 'LiveSnapshotDetectPornConfigList' => [ + 'CasterId' => ['description' => '导播台ID。', 'type' => 'string', 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], + 'Episodes' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'LiveSnapshotDetectPornConfig' => [ - 'description' => '审核配置列表。', + 'Episode' => [ + 'description' => '节点列表。', 'type' => 'array', 'items' => [ + 'description' => '节点列表。', 'type' => 'object', 'properties' => [ - 'OssObject' => [ - 'description' => 'OSS存储的文件名。', - 'type' => 'string', - 'example' => ' {liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg', - ], - 'AppName' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'Interval' => [ - 'description' => '采样间隔。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'OssBucket' => [ - 'description' => 'OSS存储Bucket名称。', - 'type' => 'string', - 'example' => 'liveBucket****', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'OssEndpoint' => [ - 'description' => 'OSS存储Endpoint名称。', - 'type' => 'string', - 'example' => 'cn-oss-****.aliyuncs.com', - ], - 'Scenes' => [ + 'ComponentIds' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'scene' => [ - 'description' => '检测场数组', + 'ComponentId' => [ + 'description' => '组件列表。', 'type' => 'array', - 'items' => [ - 'description' => '检测场景。取值:'."\n" - ."\n" - .'- **porn**(默认值):鉴黄。'."\n" - .'- **terrorism**:暴恐涉政。'."\n" - .'- **ad**:图文违规。'."\n" - .'- **live**:不良直播场景。'."\n" - .'- **logo**:logo检测。', - 'type' => 'string', - 'example' => 'porn', - ], + 'items' => ['description' => '组件列表。', 'type' => 'string', 'example' => '["1872639A-F203-4EC5-8E43-CB929282****" ]'], ], ], - ], + 'description' => '', + ], + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2016-06-29T10:02:00Z'], + 'EpisodeId' => ['description' => '节目ID。', 'type' => 'string', 'example' => '1872639A-F203-4EC5-8E43-CB92E68F****'], + 'EpisodeName' => ['description' => '节目名称。', 'type' => 'string', 'example' => 'program_name_1'], + 'EpisodeType' => ['description' => '节点类型。 取值:'."\n" + .'- **Resource**:视频源。'."\n" + .'- **Component**:组件。', 'type' => 'string', 'example' => 'Resource'], + 'ResourceId' => ['description' => '视频源ID。', 'type' => 'string', 'example' => '1872639A-F203-4EC5-8E43-CB92E837****'], + 'StartTime' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2016-06-29T09:00:00Z'], + 'Status' => ['description' => '节目状态。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'SwitchType' => ['description' => '切换策略。取值: '."\n" + ."\n" + .'- **TimeFirst**:时间优先,直播节目只允许采用时间优先。 '."\n" + .'- **ContentFirst**:内容优先。'."\n" + .' '."\n" + .' ', 'type' => 'string', 'example' => 'TimeFirst'], ], ], ], ], + 'description' => '', ], + 'ProgramEffect' => ['description' => '启用标志。 '."\n" + .' '."\n" + .'- **0**:不启用 。'."\n" + .'- **1**:启用。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ProgramName' => ['description' => '节目单名称。', 'type' => 'string', 'example' => 'programs_name'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 1,\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Order\\": \\"Asc\\",\\n \\"TotalPage\\": 11,\\n \\"PageSize\\": 2,\\n \\"TotalNum\\": 6,\\n \\"LiveSnapshotDetectPornConfigList\\": {\\n \\"LiveSnapshotDetectPornConfig\\": [\\n {\\n \\"OssObject\\": \\" {liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"Interval\\": 80,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"Scenes\\": {\\n \\"scene\\": [\\n \\"porn\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n Asc\\n 11\\n 2\\n 6\\n \\n \\n {liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg\\n liveApp****\\n 80\\n liveBucket****\\n example.com\\n cn-oss-****.aliyuncs.com\\n porn\\n \\n \\n","errorExample":""}]', - 'title' => '查询直播审核配置', - 'description' => '- 先获取主播流域名,再调用本接口查询直播审核配置。本接口目前支持的排序方式为升序和降序。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidPageSize.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PageSize无效,请检查后重试。'], + ['errorCode' => 'InvalidPageNum.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PageNum无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ['errorCode' => 'InvalidParameter.Status', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数Status无效,请检查后重试。'], + ], + ], + 'title' => '查询导播台节目单', + 'description' => '调用本接口查询导播台节目单,本接口目前支持的节点类型为视频源和组件。'."\n" ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" - ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveDetectNotifyConfig' => [ - 'summary' => '查询直播审核回调通知地址。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCasterProgram'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterProgram', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"Episodes\\": {\\n \\"Episode\\": [\\n {\\n \\"ComponentIds\\": {\\n \\"ComponentId\\": [\\n \\"[\\\\\\"1872639A-F203-4EC5-8E43-CB929282****\\\\\\" ]\\"\\n ]\\n },\\n \\"EndTime\\": \\"2016-06-29T10:02:00Z\\",\\n \\"EpisodeId\\": \\"1872639A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"EpisodeName\\": \\"program_name_1\\",\\n \\"EpisodeType\\": \\"Resource\\",\\n \\"ResourceId\\": \\"1872639A-F203-4EC5-8E43-CB92E837****\\",\\n \\"StartTime\\": \\"2016-06-29T09:00:00Z\\",\\n \\"Status\\": 0,\\n \\"SwitchType\\": \\"TimeFirst\\"\\n }\\n ]\\n },\\n \\"ProgramEffect\\": 1,\\n \\"ProgramName\\": \\"programs_name\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n1872639A-F203-4EC5-8E43-CB92E68F****\\nprograms_name\\n1\\n\\n 1872639A-F203-4EC5-8E43-CB92E68F****\\n Resource\\n program_name_1\\n 1872639A-F203-4EC5-8E43-CB92E837****\\n 1872639A-F203-4EC5-8E43-CB929282****\\n 2016-06-29T09:00:00Z\\n 2016-06-29T10:02:00Z\\n 120\\n TimeFirst\\n\\n\\n 1872639A-F203-4EC5-8E43-CB92E687****\\n Component\\n 1872639A-F203-4EC5-8E43-CB625364****\\n 2016-06-29T19:02:00Z\\n 2016-06-29T19:04:00Z\\n\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ProgramId\\":\\"1872639A-F203-4EC5-8E43-CB92E68F8378\\",\\n \\"ProgramName\\": \\"programs_name\\",\\n \\"Episodes\\": [\\n {\\n \\"EpisodeId\\":\\"1872639A-F203-4EC5-8E43-CB92E68F8732\\",\\n \\"EpisodeType\\":\\"Resource\\",\\n \\"EpisodeName\\": \\"program_name_1\\",\\n \\"ResourceId\\":\\"1872639A-F203-4EC5-8E43-CB92E8374827\\",\\n \\"ComponentIds\\":[\\n \\"1872639A-F203-4EC5-8E43-CB9292827362\\"\\n ],\\n \\"StartTime\\": \\"2016-06-29T19:00:00Z\\",\\n \\"EndTime\\": \\"2016-06-29T19:02:00Z\\",\\n \\"Duration\\": 120.0,\\n \\"SwitchType\\": \\"TimeFirst\\"\\n },\\n {\\n \\"EpisodeId\\":\\"1872639A-F203-4EC5-8E43-CB92E6873726\\",\\n \\"EpisodeType\\":\\"Component\\",\\n \\"ComponentIds\\":[\\n \\"1872639A-F203-4EC5-8E43-CB6253647382\\"\\n ],\\n \\"StartTime\\": \\"2016-06-29T19:02:00Z\\",\\n \\"EndTime\\": \\"2016-06-29T19:04:00Z\\",\\n }\\n ]\\n}"}]', + ], + 'DescribeCasterSceneAudio' => [ + 'summary' => '查询场景音频配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -20304,20 +16282,29 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '97df6b7f-3490-47d2-ac50-88338765****'], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => ['description' => '场景ID。', 'type' => 'string', 'required' => true, 'example' => '97df6b7f-3490-47d2-ac50-88339087****'], ], ], 'responses' => [ @@ -20325,162 +16312,132 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E6******', - ], - 'LiveDetectNotifyConfig' => [ - 'description' => '回调配置。', + 'AudioLayers' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', + 'AudioLayer' => [ + 'description' => 'Audiolayer配置列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'Audiolayer配置列表。', + 'type' => 'object', + 'properties' => [ + 'FixedDelayDuration' => ['description' => '固定延时时间,单位毫秒(ms)。', 'type' => 'integer', 'format' => 'int32', 'example' => '2000'], + 'ValidChannel' => ['description' => '声道类型。取值:'."\n" + .' '."\n" + .'- **left**:左声道。'."\n" + .'- **right**:右声道。'."\n" + .'- **all**(默认值):双声道。', 'type' => 'string', 'example' => 'all'], + 'VolumeRate' => ['description' => '音频音量。', 'type' => 'number', 'format' => 'float', 'example' => '1'], + ], + ], ], - 'NotifyUrl' => [ - 'description' => '通知回调地址。', - 'type' => 'string', - 'example' => 'http://aliyundoc.com', + ], + 'description' => '', + ], + 'CasterId' => ['description' => '导播台ID。可作为启动导播台场景的请求参数。', 'type' => 'string', 'example' => '97df6b7f-3490-47d2-ac50-88338765****'], + 'FollowEnable' => ['description' => '是否启用音频跟随。 默认启用音频跟随。 '."\n" + .' '."\n" + .'- **0**:混音模式。'."\n" + .'- **1**:音频跟随视频模式。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'MixList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LocationId' => [ + 'description' => '位置关联列表。 与AudioLayers顺序保持一致。', + 'type' => 'array', + 'items' => ['description' => '位置ID。', 'type' => 'string', 'example' => 'RV01'], ], ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '98745637-3490-47d2-ac50-883387567098'], ], + 'description' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], 404 => [ - [ - 'errorCode' => 'InvalidConfig.NotFound', - 'errorMessage' => 'Config does not exist.', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E6******\\",\\n \\"LiveDetectNotifyConfig\\": {\\n \\"DomainName\\": \\"example.com\\",\\n \\"NotifyUrl\\": \\"http://aliyundoc.com\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n \\n example.com\\n http://aliyundoc.com\\n \\n","errorExample":""}]', - 'title' => '查询审核回调URL', - 'description' => '- 先获取主播流域名,再调用本接口查询直播审核回调通知地址。'."\n" - ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + 'title' => '查询场景音频配置信息', + 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口查询场景音频配置。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateLiveSnapshotDetectPornConfig' => [ - 'summary' => '更新直播审核配置。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterSceneAudio', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AudioLayers\\": {\\n \\"AudioLayer\\": [\\n {\\n \\"FixedDelayDuration\\": 2000,\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 1\\n }\\n ]\\n },\\n \\"CasterId\\": \\"97df6b7f-3490-47d2-ac50-88338765****\\",\\n \\"FollowEnable\\": 1,\\n \\"MixList\\": {\\n \\"LocationId\\": [\\n \\"RV01\\"\\n ]\\n },\\n \\"RequestId\\": \\"98745637-3490-47d2-ac50-883387567098\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t97df6b7f-3490-47d2-ac50-8833e1b64597\\n\\tRV01\\n 1\\n 97df6b7f-3490-47d2-ac50-88338765****\\n\\t\\n\\t\\tall\\n 1\\n 2000\\n\\t\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"97df6b7f-3490-47d2-ac50-8833e1b64597\\",\\n \\"Content\\": {\\n \\"MixList\\": [\\n \\"1\\"\\n ],\\n \\"AudioLayers\\": [\\n {\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 1\\n }\\n ],\\n \\"FollowEnable\\": 1\\n }\\n}"}]', + ], + 'DescribeCasterScenes' => [ + 'summary' => '查询导播台场景列表。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107283', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流所属的应用名称。AppName名称与推流地址中的AppName名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], - ], - [ - 'name' => 'OssEndpoint', - 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储Endpoint名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-oss-****.aliyuncs.com', - ], - ], - [ - 'name' => 'OssBucket', - 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储Bucket名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveBucket****', - ], - ], - [ - 'name' => 'OssObject', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '保存涉黄涉政等违规图片名称。', - 'type' => 'string', - 'required' => false, - 'example' => '{liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Interval', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '采样间隔。取值范围:**5-3600**。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '3600', - 'minimum' => '5', - 'example' => '5', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****'], ], [ - 'name' => 'Scene', + 'name' => 'SceneId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '检测场景数组', - 'type' => 'array', - 'items' => [ - 'description' => '检测场景。取值:'."\n" - .'- **porn**(默认值): 鉴黄。'."\n" - .'- **terrorism**:暴恐涉政。'."\n" - .'- **ad**:图文违规。'."\n" - .'- **live**:不良直播场景。'."\n" - .'- **logo**:logo检测。', - 'type' => 'string', - 'required' => false, - 'example' => 'live', - ], - 'required' => false, - 'example' => 'porn', - 'maxItems' => 5, - ], + 'schema' => ['description' => '场景ID。', 'type' => 'string', 'required' => false, 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****'], ], ], 'responses' => [ @@ -20488,101 +16445,157 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1*****'], + 'SceneList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Scene' => [ + 'description' => '场景信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '场景信息列表。', + 'type' => 'object', + 'properties' => [ + 'ComponentIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'componentId' => [ + 'description' => '组件id列表。', + 'type' => 'array', + 'items' => ['description' => '组件ID列表。', 'type' => 'string', 'example' => '["1506396160-0-0-7de771a77102680861853af862d5****"]'], + ], + ], + 'description' => '', + ], + 'LayoutId' => ['description' => '布局ID。', 'type' => 'string', 'example' => '37cb2f8b-f152-4338-b928-6704f71d****'], + 'OutputType' => ['description' => '是否正式输出。 取值:'."\n" + .' '."\n" + .'- **0**:输出pvw预览场景。'."\n" + .'- **1**:输出pgm正式场景。', 'type' => 'string', 'example' => '0'], + 'SceneId' => ['description' => '场景ID。可作为更新场景音频配置、查询导播台场景音频配置、启动导播台场景和停止导播台场景的请求参数。', 'type' => 'string', 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****'], + 'SceneName' => ['description' => '场景名称。', 'type' => 'string', 'example' => 'scene1'], + 'Status' => ['description' => '场景状态。 取值:'."\n" + .' '."\n" + .'- **0**:关闭。'."\n" + .'- **1**:开启。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'StreamInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamInfo' => [ + 'description' => '播放地址列表。', + 'type' => 'array', + 'items' => [ + 'description' => '播放地址列表。', + 'type' => 'object', + 'properties' => [ + 'OutputStreamUrl' => ['description' => '播放地址。', 'type' => 'string', 'example' => 'http://live/caster/example.net'], + 'TranscodeConfig' => ['description' => '转码配置。取值:'."\n" + .' '."\n" + .'- **sd**:标清。'."\n" + .'- **lld**:流畅。'."\n" + .'- **lud**:超清。'."\n" + .'- **lhd**:高清。', 'type' => 'string', 'example' => 'lld'], + 'VideoFormat' => ['description' => '格式。取值:'."\n" + .'- **flv**。'."\n" + .'- **mp4**。 '."\n" + .'- **m3u8**。', 'type' => 'string', 'example' => 'flv'], + ], + ], + ], + ], + 'description' => '', + ], + 'StreamUrl' => ['description' => '输出流地址。', 'type' => 'string', 'example' => 'rtmp://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****'], + ], + ], + ], + ], + 'description' => '', ], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidOssEndpoint.Malformed', - 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', - ], - [ - 'errorCode' => 'InvalidOssBucket.Malformed', - 'errorMessage' => 'Specified parameter OssBucket is not valid.', - ], - [ - 'errorCode' => 'InvalidOssObject.Malformed', - 'errorMessage' => 'Specified parameter OssObject is not valid.', - ], - [ - 'errorCode' => 'InvalidOssBucket.NotFound', - 'errorMessage' => 'The parameter OssBucket does not exist.', - ], - [ - 'errorCode' => 'InvalidScenes', - 'errorMessage' => 'Specified parameter Scene is not valid.', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SceneId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'InvalidConfig.NotFound', - 'errorMessage' => 'Config does not exist.', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '更新直播审核配置', - 'description' => '- 先获取主播流域名,再调用本接口更新直播审核配置。'."\n" + 'title' => '查询场景信息列表', + 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口查询导播台场景列表。'."\n" ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" - ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateLiveDetectNotifyConfig' => [ - 'summary' => '更新直播审核回调通知地址。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCasterScenes'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterScenes', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1*****\\",\\n \\"SceneList\\": {\\n \\"Scene\\": [\\n {\\n \\"ComponentIds\\": {\\n \\"componentId\\": [\\n \\"[\\\\\\"1506396160-0-0-7de771a77102680861853af862d5****\\\\\\"]\\"\\n ]\\n },\\n \\"LayoutId\\": \\"37cb2f8b-f152-4338-b928-6704f71d****\\",\\n \\"OutputType\\": \\"0\\",\\n \\"SceneId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e86****\\",\\n \\"SceneName\\": \\"scene1\\",\\n \\"Status\\": 0,\\n \\"StreamInfos\\": {\\n \\"StreamInfo\\": [\\n {\\n \\"OutputStreamUrl\\": \\"http://live/caster/example.net\\",\\n \\"TranscodeConfig\\": \\"lld\\",\\n \\"VideoFormat\\": \\"flv\\"\\n }\\n ]\\n },\\n \\"StreamUrl\\": \\"rtmp://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****\\"\\n }\\n ]\\n },\\n \\"Total\\": 2\\n}","errorExample":""},{"type":"xml","example":"\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n \\n [\\"1506396160-0-0-7de771a77102680861853af862d5****\\"]\\n 37cb2f8b-f152-4338-b928-6704f71d****\\n 0\\n b5f8c837-ceeb-424f-b30b-68e94e86****\\n scene1\\n 0\\n \\n http://live/caster/example.net\\n lld\\n flv\\n \\n rtmp://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****\\n \\n 2\\n","errorExample":""}]', + ], + 'DescribeCasterStreamUrl' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'NotifyUrl', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '发现涉黄等违规内容的回调地址。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://guide.aliyundoc.com/examplecallback.action', - ], + 'schema' => ['description' => '导播台ID,请确保传入的CasterId是正确的。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], ], 'responses' => [ @@ -20590,93 +16603,146 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'CasterId' => ['description' => '导播台ID。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'CasterStreams' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'CasterStream' => [ + 'description' => '导播台流信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'OutputType' => ['description' => '是否正式输出。 '."\n" + .' '."\n" + .'- **0**:输出预览。'."\n" + .'- **1**:输出正式。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RtmpUrl' => ['description' => 'Rtmp地址。', 'type' => 'string', 'example' => 'rtmp://live/caster/example.edu'], + 'SceneId' => ['description' => '场景ID。', 'type' => 'string', 'example' => '23ca74e0-aca3-4e7a-8561-9d96f525****'], + 'StreamInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamInfo' => [ + 'description' => '播放地址列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'OutputStreamUrl' => ['description' => '播放地址。', 'type' => 'string', 'example' => 'http://out/caster/example.net'], + 'TranscodeConfig' => ['description' => '转码配置。 取值:'."\n" + .' '."\n" + .'- **lsd**:标清 。'."\n" + .'- **lld**:流畅。'."\n" + .'- **lud**:超清 。'."\n" + .'- **lhd**:高清 。'."\n" + .' ', 'type' => 'string', 'example' => 'lld'], + 'VideoFormat' => ['description' => '格式。取值:'."\n" + .'- **flv**。'."\n" + .'- **rtmp**。'."\n" + .'- **m3u8**。'."\n" + .'- **artc**'."\n" + ."\n" + .'> 此导播台的播流域名需开通超低延时功能才可返回artc协议的地址。具体开启方法详见[开通超低延时直播功能](~~427722~~)。', 'type' => 'string', 'example' => 'flv'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + 'StreamUrl' => ['description' => '输出流地址。', 'type' => 'string', 'example' => 'http://live/caster/example.org'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E6******'], + 'Total' => ['description' => '数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidNotifyUrl.Malformed', - 'errorMessage' => 'Specified NotifyUrl is invalid.', - ], - [ - 'errorCode' => 'InvalidNotifyUrl.Unsafe', - 'errorMessage' => 'Specified NotifyUrl is not safe.', - ], - [ - 'errorCode' => 'InvalidParams', - 'errorMessage' => 'Invalid Params.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'InvalidConfig.NotFound', - 'errorMessage' => 'Config does not exist.', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene不存在,请检查后重试。'], + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '更新直播审核回调配置', - 'description' => '- 先获取主播流域名,再调用本接口更新直播审核回调通知地址。'."\n" - ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + 'title' => '查询导播台流信息列表', + 'summary' => '查询导播台流地址。', + 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口查询导播台流地址,否则会返回InvalidScene.NotFound错误。'."\n" ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteLiveSnapshotDetectPornConfig' => [ - 'summary' => '删除直播审核的配置。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterStreamUrl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"CasterStreams\\": {\\n \\"CasterStream\\": [\\n {\\n \\"OutputType\\": 1,\\n \\"RtmpUrl\\": \\"rtmp://live/caster/example.edu\\",\\n \\"SceneId\\": \\"23ca74e0-aca3-4e7a-8561-9d96f525****\\",\\n \\"StreamInfos\\": {\\n \\"StreamInfo\\": [\\n {\\n \\"OutputStreamUrl\\": \\"http://out/caster/example.net\\",\\n \\"TranscodeConfig\\": \\"lld\\",\\n \\"VideoFormat\\": \\"flv\\"\\n }\\n ]\\n },\\n \\"StreamUrl\\": \\"http://live/caster/example.org\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E6******\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n \\n 1\\n rtmp://live/caster/example.edu\\n 23ca74e0-aca3-4e7a-8561-9d96f525****\\n \\n http://out/caster/example.net\\n lld\\n flv\\n \\n http://live/caster/example.org\\n \\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n 1\\n","errorExample":""}]', + ], + 'DescribeCasterVideoResources' => [ + 'summary' => '查询导播台视频源。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'AppName', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属的应用名称。您可通过[DescribeLiveSnapshotDetectPornConfig](~~2847918~~)接口查询AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], ], 'responses' => [ @@ -20684,207 +16750,518 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E6*******', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7'], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'VideoResources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VideoResource' => [ + 'description' => '资源列表。', + 'type' => 'array', + 'items' => [ + 'description' => '资源列表。', + 'type' => 'object', + 'properties' => [ + 'BeginOffset' => ['description' => '视频文件起始偏移值。仅对文件视频有效, 单位:毫秒。'."\n" + ."\n" + .'**大于0**,表示从相对于首帧的偏差时间作为开始读取的位置。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + 'EndOffset' => ['description' => '视频文件结束偏移值。仅对文件视频有效,单位:毫秒。 '."\n" + .' '."\n" + .'- 大于**0**:从相对于首帧的偏差时间为结束读取的位置。'."\n" + .'- 小于**0**:从相对于最后一帧的偏差时间作为结束读取的位置。 ', 'type' => 'integer', 'format' => 'int32', 'example' => '10000'], + 'FlvUrl' => ['description' => '拉流地址。', 'type' => 'string', 'example' => 'http://guide.aliyundoc.com/example.org'], + 'ImageId' => ['description' => '媒资库图片素材ID。', 'type' => 'string', 'example' => 'a089175eb5f4427684fc0715159a****'], + 'ImageUrl' => ['description' => '图片素材URL。', 'type' => 'string', 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg'], + 'LiveStreamUrl' => ['description' => '直播流地址。', 'type' => 'string', 'example' => 'rtmp://abcLive/appName/b5447c21fcfe444c9e9b6f7ba208****'], + 'LocationId' => ['description' => '视频源位置。', 'type' => 'string', 'example' => 'RV01'], + 'MaterialId' => ['description' => '素材ID。', 'type' => 'string', 'example' => 'd2c429cd907742ee8f6e76465ad3****'], + 'PtsCallbackInterval' => ['description' => '点播文件的回调间隔,等于0时为不回调。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'RepeatNum' => ['description' => '仅对文件视频有效,表示播放完后继续重复播放的次数。 '."\n" + .' '."\n" + .'- **0**(默认值):不重复播放。'."\n" + .'- **-1**:一直循环重复播放。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'ResourceId' => ['description' => '资源ID。', 'type' => 'string', 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****'], + 'ResourceName' => ['description' => '资源名称。', 'type' => 'string', 'example' => 'resource-Name1'], + 'VodUrl' => ['description' => '点播文件地址。'."\n" + ."\n" + .'当且仅当资源为文件视频,且视频文件未导入素材库时使用,仅限MP4、FLV、TS格式。', 'type' => 'string', 'example' => 'http://developer.aliyundoc.com/caster1.flv'], + ], + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E6*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '删除直播审核配置', - 'description' => '- 先获取主播流域名,再调用本接口删除直播审核的配置。'."\n" - ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'title' => '查询导播台视频源', + 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口查询导播台视频源。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteLiveDetectNotifyConfig' => [ - 'summary' => '删除直播审核回调配置。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2023-03-31T08:26:53.000Z', 'description' => '响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterVideoResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"Total\\": 2,\\n \\"VideoResources\\": {\\n \\"VideoResource\\": [\\n {\\n \\"BeginOffset\\": 1000,\\n \\"EndOffset\\": 10000,\\n \\"FlvUrl\\": \\"http://guide.aliyundoc.com/example.org\\",\\n \\"ImageId\\": \\"a089175eb5f4427684fc0715159a****\\",\\n \\"ImageUrl\\": \\"http://learn.aliyundoc.com/AppName/image.jpg\\",\\n \\"LiveStreamUrl\\": \\"rtmp://abcLive/appName/b5447c21fcfe444c9e9b6f7ba208****\\",\\n \\"LocationId\\": \\"RV01\\",\\n \\"MaterialId\\": \\"d2c429cd907742ee8f6e76465ad3****\\",\\n \\"PtsCallbackInterval\\": 0,\\n \\"RepeatNum\\": 0,\\n \\"ResourceId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e86****\\",\\n \\"ResourceName\\": \\"resource-Name1\\",\\n \\"VodUrl\\": \\"http://developer.aliyundoc.com/caster1.flv\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\nCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n2\\n\\n \\n 10000\\n 1000\\n d2c429cd907742ee8f6e76465ad3****\\n http://guide.aliyundoc.com/example.org\\n b5f8c837-ceeb-424f-b30b-68e94e86****\\n resource-Name1\\n RV01\\n 0\\n rtmp://abcLive/appName/b5447c21fcfe444c9e9b6f7ba208****\\n 0\\n http://developer.aliyundoc.com/caster1.flv\\n \\n\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"SceneList\\": [{\\n \\"ResourceId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e864995\\",\\n \\"ResourceName\\": \\"resource-Name1\\",\\n \\"LocationId\\": \\"RV01\\",\\n \\"LiveStreamUrl\\": \\"rtmp://XXXXXX/appName/b5447c21fcfe444c9e9b6f7ba208f141\\",\\n },\\n {\\n \\"ResourceId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e864995\\",\\n \\"MaterialId\\": \\"d2c429cd907742ee8f6e76465ad3c784\\",\\n \\"ResourceName\\": \\"resource-Name3\\",\\n \\"LocationId\\": \\"RV02\\",\\n \\"repeatNum\\": 2\\n }\\n ]\\n}"}]', + ], + 'DescribeCasters' => [ + 'summary' => '查询导播台列表。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', - ], + 'abilityTreeCode' => '106972', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaste接口](~~2848012~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台 > 导播台 > 云导播台**页面查看。'."\n" + ."\n" + .'> - 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。'."\n" + .'> - 若参数为空,默认返回所有导播台合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], + ], + [ + 'name' => 'CasterName', + 'in' => 'query', + 'schema' => ['description' => '导播台名称。', 'type' => 'string', 'required' => false, 'example' => 'liveCaster****'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T11:00:00Z'], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每⻚模板数值,不传默认为100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => ['description' => '状态。 取值:'."\n" + ."\n" + .'- 0:空闲。 '."\n" + ."\n" + .'- 1:导播中。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'ChargeType', + 'in' => 'query', + 'schema' => ['description' => '付费方式。 取值:'."\n" + ."\n" + .'- 0:PrePaid预付费。'."\n" + ."\n" + .'- 1:PostPaid后付费。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'OrderByModifyAsc', + 'in' => 'query', + 'schema' => ['description' => '是否按照导播台的修改时间进行升序排序。'."\n" + ."\n" + .'有效值:true(按修改时间升序排列)| false(按修改时间降序排列,默认值)。'."\n" + ."\n" + .'> 不填默认为"false"。', 'type' => 'string', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'NormType', + 'in' => 'query', + 'schema' => ['description' => '导播台规格类型。取值:'."\n" + ."\n" + .'- 1:通用型。'."\n" + ."\n" + .'- 3:轻量级轮播型。'."\n" + ."\n" + .'- 4:虚拟演播厅型。'."\n" + ."\n" + .'- 6:轮播台(新播单型导播台)。', 'type' => 'string', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。关于资源组的更多信息,请参见[什么是资源组](~~2381067~~)。', 'type' => 'string', 'required' => false, 'example' => 'rg-aekzw******'], + ], + [ + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签列表。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签健。', 'type' => 'string', 'required' => false, 'example' => 'TestKey'], + 'Value' => ['description' => '标签值。', 'type' => 'string', 'required' => false, 'example' => 'TestValue'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 100, ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '导播台列表信息查询结果。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'CasterList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Caster' => [ + 'description' => '导播台信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '导播台信息。', + 'type' => 'object', + 'properties' => [ + 'CasterId' => ['description' => '导播台ID。可作为查询导播台流地址、启动导播台、添加导播台视频资源、添加导播台布局、查询导播台布局列表、添加导播台组件和添加导播台节目单的请求参数。', 'type' => 'string', 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], + 'CasterName' => ['description' => '导播台名称。', 'type' => 'string', 'example' => 'liveCaster****'], + 'CasterTemplate' => ['description' => '导播台分辨率配置,付费类型为预付费时必选。 '."\n" + ."\n" + .'- lp_ld:流畅。'."\n" + ."\n" + .'- lp_sd:标清。'."\n" + ."\n" + .'- lp_hd:高清。'."\n" + ."\n" + .'- lp_ud:超清。'."\n" + ."\n" + .'- lp_ld_v:竖屏流畅。'."\n" + ."\n" + .'- lp_sd_v:竖屏标清。'."\n" + ."\n" + .'- lp_hd_v:竖屏高清。'."\n" + ."\n" + .'- lp_ud_v:竖屏超清。', 'type' => 'string', 'example' => 'lp_ld'], + 'ChannelEnable' => ['description' => '是否启用Channel。'."\n" + ."\n" + .'- 0:不启用。'."\n" + ."\n" + .'- 1:启用。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ChargeType' => ['description' => '付费方式。 '."\n" + ."\n" + .'- PrePaid:预付费。'."\n" + ."\n" + .'- PostPaid:后付费。', 'type' => 'string', 'example' => 'PrePaid'], + 'CreateTime' => ['description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2017-08-30T12:02:57Z'], + 'Duration' => ['description' => '时长。格式为:hh:mm:ss(时:分:秒)。', 'type' => 'string', 'example' => '1:02:33'], + 'ExpireTime' => ['description' => '导播台过期时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2018-08-30T12:02:57Z'], + 'LastModified' => ['description' => '对导播台最新修改时间。例如:近期有对导播台进行过开启,停止,修改配置等操作的时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2021-12-01T05:08:45Z'], + 'NormType' => ['description' => '导播台规格类型 。 取值: '."\n" + ."\n" + .'- 0:播单型。'."\n" + ."\n" + .'- 1:通用型。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PurchaseTime' => ['description' => '导播台购买时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2017-08-30T12:02:57Z'], + 'StartTime' => ['description' => '导播台启动时间,当导播台处于导播中时输出。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2017-08-30T18:02:57Z'], + 'Status' => ['description' => '状态。取值:'."\n" + ."\n" + .'- 0:空闲。'."\n" + ."\n" + .'- 1:导播中。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ClientTokenId' => ['description' => '用户生成的请求 token,用于保证请求的幂等性。'."\n" + .'该参数值可自定义,但是要保证在不同请求间唯一,最大值不超过 64 个 ASCII 字符。', 'type' => 'string', 'example' => '53200b81-b761-4c10-842a-a0726d97****'."\n"], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'tag' => [ + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签。', + 'type' => 'object', + 'properties' => [ + 'TagKey' => ['description' => '标签键。', 'type' => 'string', 'example' => 'TestKey'], + 'TagValue' => ['description' => '标签值。', 'type' => 'string', 'example' => 'TestValue'], + ], + ], + ], + ], + 'description' => '', + ], + 'ResourceGroupId' => ['description' => '资源组ID。关于资源组的更多信息,请参见[什么是资源组](~~2381067~~)。', 'type' => 'string', 'example' => 'rg-acfmz******'], + ], + ], + ], + ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b******'], + 'Total' => ['description' => '导播台数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '删除回调通知URL', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 先获取主播流域名,再调用本接口删除直播审核回调配置。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidParameter.Status', 'errorMessage' => '%s, please check and try again.', 'description' => 'Status无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.StartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数StartTime无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.EndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数EndTime无效,请检查后重试。'], + ['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '直播服务未开通,请检查后重试。'], + ['errorCode' => 'InvalidParameter.PageSize', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PageSize无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.PageNum', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PageNum无效,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '访问拒绝,请检查后重试。'], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterList\\": {\\n \\"Caster\\": [\\n {\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"CasterName\\": \\"liveCaster****\\",\\n \\"CasterTemplate\\": \\"lp_ld\\",\\n \\"ChannelEnable\\": 1,\\n \\"ChargeType\\": \\"PrePaid\\",\\n \\"CreateTime\\": \\"2017-08-30T12:02:57Z\\",\\n \\"Duration\\": \\"1:02:33\\",\\n \\"ExpireTime\\": \\"2018-08-30T12:02:57Z\\",\\n \\"LastModified\\": \\"2021-12-01T05:08:45Z\\",\\n \\"NormType\\": 1,\\n \\"PurchaseTime\\": \\"2017-08-30T12:02:57Z\\",\\n \\"StartTime\\": \\"2017-08-30T18:02:57Z\\",\\n \\"Status\\": 1,\\n \\"ClientTokenId\\": \\"53200b81-b761-4c10-842a-a0726d97****\\\\n\\",\\n \\"Tags\\": {\\n \\"tag\\": [\\n {\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\"\\n }\\n ]\\n },\\n \\"ResourceGroupId\\": \\"rg-acfmz******\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b******\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 5c6a2a0df228-4a64- af62-20e91b9676b3\\n \\n 1\\n 2017-08-30 12:02:57.0\\n 2018-08-30 12:02:57.0\\n 2017-08-30 12:02:57.0\\n liveCaster****\\n PrePaid\\n lp_ld\\n LIVEPRODUCER_POST-cn-0pp1czt****\\n 1\\n 2021-12-01T05:08:45Z\\n 2017-08-30 18:02:57.0\\n 1\\n 1:02:33\\n \\n","errorExample":""}]', + 'title' => '查询导播台列表', + 'description' => '先通过CreateCaster接口创建导播台,再调用本接口查询导播台列表。导播台的状态分为空闲和导播中 。'."\n" ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + .'> '."\n" + .'> - 调用该接口的账号需要先[开通直播服务](https://live.console.aliyun.com/#/overview)'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AddLiveAudioAuditConfig' => [ - 'summary' => '添加直播语音审核配置信息。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-09-27T02:16:13.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], + ['createdAt' => '2024-08-21T03:33:21.000Z', 'description' => '错误码发生变更、请求参数发生变更、响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasters', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + ], + 'DescribeChannelParticipants' => [ + 'summary' => '查询频道内在线用户列表。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', - ], + 'operationType' => 'none', + 'abilityTreeCode' => '169451', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域id。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '应用ID,仅支持传单个ID。', 'type' => 'string', 'required' => true, 'example' => 'aec****'], ], [ - 'name' => 'DomainName', + 'name' => 'ChannelId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加入的频道,仅支持传单个ID。', 'type' => 'string', 'required' => true, 'example' => 'testId'], ], [ - 'name' => 'AppName', + 'name' => 'PageNum', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。AppName名称与推流地址中的AppName名称对应,模板才能生效。区分大小写。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '当前页码。默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'StreamName', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。StreamName名称与推流地址中的StreamName名称对应,模板才能生效。区分大小写。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '每页显示用户数量,默认每页显示10条用户数据。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], [ - 'name' => 'OssBucket', + 'name' => 'Order', 'in' => 'query', + 'schema' => ['description' => '排序方式,取值:'."\n" + ."\n" + .'- **asc**:递增。'."\n" + ."\n" + .'- **desc**(默认值):递减。', 'type' => 'string', 'required' => false, 'example' => 'asc'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'OSS存储的Bucket名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveBucket****', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '6159ba01-6687-4fb2-a831-f0cd8d1******'], + 'Times' => ['description' => '返回结果时间,使用UNIX时间戳表示,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1557909133'], + 'TotalNum' => ['description' => '返回结果数。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'TotalPage' => ['title' => 'TotalCount本次请求条件下的数据总量,此参数为可选参数,默认可不返回', 'description' => '返回分页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'UserList' => [ + 'description' => '用户ID列表。', + 'type' => 'array', + 'items' => ['description' => '用户ID列表,多个用英文逗号(,)分隔。', 'type' => 'string', 'example' => '27f9****,bb87****,df82****'], + ], + ], ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询频道内在线用户列表', + 'description' => '本接口用于查询频道内在线用户列表,不包含用户详细信息。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-06-13T01:19:46.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelParticipants'], + ], + ], + 'ramActions' => [ [ - 'name' => 'OssEndpoint', - 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储的Endpoint名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-oss-****.aliyuncs.com', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeChannelParticipants', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6159ba01-6687-4fb2-a831-f0cd8d1******\\",\\n \\"Times\\": 1557909133,\\n \\"TotalNum\\": 3,\\n \\"TotalPage\\": 1,\\n \\"UserList\\": [\\n \\"27f9****,bb87****,df82****\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 6159ba01-6687-4fb2-a831-f0cd8d188648\\n 1557909133\\n 3\\n 1\\n \\n 27f9****\\n bb87****\\n df82****\\n \\n","errorExample":""}]', + ], + 'DescribeChannelUsers' => [ + 'summary' => '查询频道内在线用户列表的详细信息。', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'OssObject', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储的录制文件名。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveObject****', - ], + 'schema' => ['description' => '应用ID,仅支持传单个ID。', 'type' => 'string', 'required' => true, 'example' => 'aec****'], ], [ - 'name' => 'BizType', + 'name' => 'ChannelId', 'in' => 'query', - 'schema' => [ - 'description' => '业务类型。可用于选择模型,默认值为域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.edu', - ], + 'schema' => ['description' => '已加入的频道ID,仅支持传单个ID。', 'type' => 'string', 'required' => true, 'example' => 'testId'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'AD86847D-1F36-18C8-A995-5EEA34******'], + 'Timestamp' => ['description' => '当前时刻的时间戳(UTC时间)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1691027655'], + 'IsChannelExists' => ['description' => '频道是否存在,取值:'."\n" + ."\n" + .'- **true**:存在。'."\n" + ."\n" + .'- **false**:不存在。'."\n" + ."\n" + .'>频道无人后,会有若干秒的缓存,此时接口返回true,但互动者与观众人数都为0。', 'type' => 'boolean', 'example' => 'true'], + 'InteractiveUserNumber' => ['description' => '互动者用户总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'LiveUserNumber' => ['description' => '频道内的观众总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'InteractiveUserList' => [ + 'description' => '互动用户列表。', + 'type' => 'array', + 'items' => ['description' => '互动用户列表。', 'type' => 'string', 'example' => 'aaa'], + ], + 'LiveUserList' => [ + 'description' => '观众列表。', + 'type' => 'array', + 'items' => ['description' => '观众列表,最多返回1000人。', 'type' => 'string', 'example' => 'bbb'], ], ], ], @@ -20892,319 +17269,307 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MalformedParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigExisted', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => '400', 'errorMessage' => 'InvalidInput', 'description' => ''], + ], + [ + ['errorCode' => '401', 'errorMessage' => 'InvalidAuth', 'description' => ''], + ], + 404 => [ + ['errorCode' => '404', 'errorMessage' => 'AppOrChannelNotExists', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => '500', 'errorMessage' => 'SystemError, Please Check App And Channel Exists, RETRY', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', - 'title' => '添加直播语音审核配置', - 'description' => '- 直播语音审核通过拾取语音流对于其中违规敏感内容进行识别审查,并通过回调的方式实时将违规内容通知到用户,用户可以对内容进行复审并进行相应处置。'."\n" - ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" - ."\n" - .' 请确保在使用该接口前,已充分了解直播语音审核产品的收费方式和价格。详情请参见[智能审核费用](~~195288~~)。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询频道内在线用户列表', + 'description' => '本接口用于查询频道内在线用户列表的详细信息。例如:您可以查询直播模式下的用户总数。'."\n" + ."\n\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddLiveAudioAuditNotifyConfig' => [ - 'summary' => '添加音频审核回调信息。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2023-08-31T01:48:03.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:DescribeChannelUsers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AD86847D-1F36-18C8-A995-5EEA34******\\",\\n \\"Timestamp\\": 1691027655,\\n \\"IsChannelExists\\": true,\\n \\"InteractiveUserNumber\\": 1,\\n \\"LiveUserNumber\\": 1,\\n \\"InteractiveUserList\\": [\\n \\"aaa\\"\\n ],\\n \\"LiveUserList\\": [\\n \\"bbb\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n AD86847D-1F36-18C8-A995-5EEA340B3202\\n 1691027655\\n true\\n 1\\n 1\\n aaa\\n bbb\\n","errorExample":""}]', + ], + 'DescribeDomainUsageData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', - ], + 'abilityTreeCode' => '106980', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '直播域名。'."\n" + .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + ."\n" + .'- 若参数为空,默认返回所有直播域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'Callback', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '回调地址。用于接收问题语音内容的回调。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://demo.aliyundoc.com/callback', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T20:00:00Z'], ], [ - 'name' => 'CallbackTemplate', + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'需大于起始时间,且与起始时间相差不能超过**31**天。', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T21:00:00Z'], + ], + [ + 'name' => 'Type', 'in' => 'query', 'schema' => [ - 'description' => '审核回调模板。取值:'."\n" + 'description' => '需要获取的用量类型。'."\n" ."\n" - .'- **{DomainName}**:播流域名。'."\n" - .'- **{AppName}**:播流所属的应用名称。'."\n" - .'- **{StreamName}**:播流名称。'."\n" - .'- **{Timestamp}**:Unix时间戳,返回的回调时间。单位:秒。'."\n" - .'- **{Result}**:检测结果。'."\n", + .'当**Field**取值为**bps**或**traf** 时,该参数取值范围:'."\n" + .'- **rts**:RTS带宽或流量。'."\n" + .'- **quic**:QUIC带宽或流量。'."\n" + ."\n" + .'当**Field**取值为**req\\_traf**或**req\\_bps** 时,该参数取值范围:'."\n" + .'- **push**:推流带宽或流量。'."\n" + .'- **push_proxy**:转推带宽或流量。', 'type' => 'string', 'required' => false, - 'example' => '{"domain":{DomainName},"app":{AppName},"stream":{StreamName},"timestamp":{Timestamp},"result":{Result}}', + 'example' => 'all', + 'default' => 'all', + 'enum' => ['static', 'dynamic', 'quic', 'rts', 'push', 'normal', 'all', 'push_proxy'], ], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', - ], - ], - ], + [ + 'name' => 'Field', + 'in' => 'query', + 'schema' => ['description' => '查询用量的数据类型。取值:'."\n" + .'- **bps**:播放带宽。'."\n" + ."\n" + .'- **traf**:流量。'."\n" + ."\n" + .'- **req\\_traf**:当Type为push时,为推流流量,当Type为push_proxy时,为转推流量。'."\n" + ."\n" + .'- **req\\_bps**:当Type为push时,为推流带宽,当Type为push_proxy时,为转推带宽。'."\n", 'type' => 'string', 'required' => true, 'example' => 'traf'], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MalformedParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigExisted', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'UnsafeCallback', - 'errorMessage' => '%s, please check and try again later.', - ], + [ + 'name' => 'Area', + 'in' => 'query', + 'schema' => ['description' => '区域代号。支持:'."\n" + .'- **CN**:中国内地。'."\n" + .'- **OverSeas**:海外大区。'."\n" + .'- **AP1**:亚太1区。'."\n" + .'- **AP2**:亚太2区。'."\n" + .'- **AP3**:亚太3区。'."\n" + .'- **NA**:北美。'."\n" + .'- **SA**:南美。'."\n" + .'- **EU**:欧洲。'."\n" + .'- **MEAA**:中东非洲。'."\n" + .'- **all**:全部。'."\n" + ."\n" + .'> 不传值则默认为中国内地。海外大区说明:- 亚太1区:中国香港地区、中国澳门地区、中国台湾地区、日本以及东南亚除越南和印尼之外的国家。- 亚太2区:印尼、韩国、越南。- 亚太3区:澳大利亚、新西兰。北美:美国、加拿大。- 南美:巴西。- 欧洲:乌克兰、英国、法国、荷兰、西班牙、意大利、瑞典、德国。- 中东非洲:南非、阿曼、阿联酋、科威特。', 'type' => 'string', 'required' => false, 'example' => 'CN', 'default' => 'CN'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + [ + 'name' => 'DataProtocol', + 'in' => 'query', + 'schema' => ['description' => '需要获取的数据的协议。取值:'."\n" + ."\n" + .'- **http**:HTTP协议。'."\n" + ."\n" + .'- **https**:HTTPS协议。'."\n" + ."\n" + .'- **quic**:QUIC协议。'."\n" + ."\n" + .'- **all**(默认):以上全部协议。', 'type' => 'string', 'required' => false, 'example' => 'all', 'default' => 'all'], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '强制指定获取指定时间粒度的数据,单位为秒。支持**300**(5分钟)、**3600**(1小时)和**86400**(1天)。'."\n" + ."\n\n" + ."\n\n", 'type' => 'string', 'required' => false, 'example' => '300'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-12-10T21:00Z'], + 'Type' => ['description' => '用量类型。', 'type' => 'string', 'example' => 'all'], + 'StartTime' => ['description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-12-10T20:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E'], + 'Area' => ['description' => '用量区域。', 'type' => 'string', 'example' => 'CN'], + 'DomainName' => ['description' => '直播域名。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔。单位:秒。', 'type' => 'string', 'example' => '300'], + 'UsageDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => '每条记录的流量数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => '用量。'."\n" + .'- 当Field为traf或req_traf时单位是字节(Byte)。'."\n" + ."\n" + .'- 当Field为bps或req_bps时单位是bps。'."\n" + ."\n" + .'- 当Field为acc时单位是次数。', 'type' => 'string', 'example' => '423304182'], + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', - 'title' => '添加音频审核回调信息', - 'description' => '- 直播语音审核服务会根据回调模板的配置来返回检测结果。'."\n" - ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvaildParameter', 'errorMessage' => 'Invalid Parameter', 'description' => '请求参数非法'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified Time is malformed.', 'description' => '制定时间错误,请您确认该制定时间是否正确。'], + ['errorCode' => 'InvalidParameterField', 'errorMessage' => 'The specified Field is invalid.', 'description' => 'Field参数错误,请确认后输入'], + ['errorCode' => 'InvalidParameterType', 'errorMessage' => 'The specified Type is invalid.', 'description' => 'Type参数错误,请确认后输入'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ], + ], + 'title' => '查询域名在特定计费区域的用量数据', + 'summary' => '调用DescribeDomainUsageData查询域名在特定计费区域的用量数据。', + 'description' => '- 此接口支持批量域名查询,多个域名用英文逗号(,)分隔,最多一次可以查询100个域名。如果DomainName参数为空,则返回账号下所有域名的数据。'."\n" + .'- 用量数据包括流量、带宽和请求数三类,单位分别为Byte、bps和次数。'."\n" + .'- 如果不指定Interval参数,最长可查询近1年的数据,单次查询的最大时间跨度为31天。查询时间为1~3天,数据按小时粒度返回;查询时间大于3天,数据按天粒度返回。'."\n" ."\n" - .'## QPS限制'."\n" + .'- 指定Interval参数时,支持单次查询的时间跨度、对应的可查询历史数据时间范围和数据延迟如下:'."\n" ."\n" + .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟'."\n" + .'| -------------- | -------------- | ------ | ------ |'."\n" + .'| 5分钟 | 3天 | 93天 | 15分钟'."\n" + .'| 1小时 | 31天 | 186天 | 4小时'."\n" + .'| 1天 | 90天 | 366天 | 次日凌晨4点'."\n" + ."\n\n" + .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '## 检测结果格式'."\n" - ."\n" - .'Result示例:'."\n" - ."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "scene": "antispam",'."\n" - .' "label": "ad",'."\n" - .' "suggestion": "block",'."\n" - .' "rate": 99.91,'."\n" - .' "details": ['."\n" - .' {'."\n" - .' "startTime": 1571989513,'."\n" - .' "endTime": 1571989515,'."\n" - .' "text": "三楼香巴拉队主携手5楼了。",'."\n" - .' "label": "normal"'."\n" - .' },'."\n" - .' {'."\n" - .' "startTime": 1571989515,'."\n" - .' "endTime": 1571989518,'."\n" - .' "text": "上,烤鱼火锅节日期两个腾庆大款。",'."\n" - .' "label": "normal"'."\n" - .' },'."\n" - .' {'."\n" - .' "startTime": 1571989520,'."\n" - .' "endTime": 1571989522,'."\n" - .' "text": "多少香巴拉会员均享39",'."\n" - .' "label": "normal"'."\n" - .' },'."\n" - .' {'."\n" - .' "startTime": 1571989523,'."\n" - .' "endTime": 1571989526,'."\n" - .' "text": "皇上现金单次消费立减66元。",'."\n" - .' "label": "normal"'."\n" - .' },'."\n" - .' {'."\n" - .' "startTime": 1571989530,'."\n" - .' "endTime": 1571989533,'."\n" - .' "text": "元大奖详询3398787",'."\n" - .' "label": "ad"'."\n" - .' },'."\n" - .' {'."\n" - .' "startTime": 1571989533,'."\n" - .' "endTime": 1571989534,'."\n" - .' "text": "好消息,好像。",'."\n" - .' "label": "normal"'."\n" - .' },'."\n" - .' {'."\n" - .' "startTime": 1571989538,'."\n" - .' "endTime": 1571989539,'."\n" - .' "text": "携带行车证4人。",'."\n" - .' "label": "normal"'."\n" - .' },'."\n" - .' {'."\n" - .' "startTime": 1571989542,'."\n" - .' "endTime": 1571989543,'."\n" - .' "text": "代理现在还有10分钟。",'."\n" - .' "label": "normal"'."\n" - .' },'."\n" - .' {'."\n" - .' "startTime": 1571989545,'."\n" - .' "endTime": 1571989547,'."\n" - .' "text": "建行etc见证没",'."\n" - .' "label": "normal"'."\n" - .' },'."\n" - .' {'."\n" - .' "startTime": 1571989550,'."\n" - .' "endTime": 1571989552,'."\n" - .' "text": "赵信元、吕梁市国投集团旗下。",'."\n" - .' "label": "normal"'."\n" - .' }'."\n" - .' ]'."\n" - .' }'."\n" - .']'."\n" - ."\n" - .'```'."\n", + 'requestParamsDescription' => '>接口查询T时刻数据时,T+N时刻可获取到稳态数据,N为2小时。
示例:当您查询12月21日下午1点钟数据,可在12月21日下午3点钟获取到1点及1点前的稳态数据。', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteLiveAudioAuditConfig' => [ - 'summary' => '删除直播语音审核配置信息。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '### 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" + .'|------------------------------|--------------------------------------------------------|-----------|----------------------------------|'."\n" + .'| Throttling | Request was denied due to request throttling. | 503 | 请求被流量控制限制 |'."\n" + .'| IllegalOperation | Illegal domain, operation is not permitted. | 403 | 非法域名,无法操作 |'."\n" + .'| OperationDenied | Your account does not open Live service yet. | 403 | 未开通Live服务 |'."\n" + .'| OperationDenied | Your Live service is suspended. | 403 | Live服务已被停止 |'."\n" + .'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | 域名不存在或不属于当前用户 |'."\n" + .'| InvalidDomain.Offline | The domain provided is offline. | 404 | 域名已下线 |'."\n" + .'| ServiceBusy | The specified Domain is configuring, please retry later. | 403 | 域名正在配置中,请稍后再试 |'."\n" + .'| InvalidDomain.Configure_failed | Failed to configure the provided domain. | 500 | 域名配置失败 |'."\n" + .'| InvalidParameter | Invalid Parameter. | 400 | 参数错误 |'."\n" + .'| InvalidParameterProduct | Invalid Parameter Product. | 400 | Product参数错误 |'."\n" + .'| InvalidParameterArea | Invalid Parameter Area. | 400 | Area参数错误 |'."\n" + .'| InvalidParameterField | Invalid Parameter Field. | 400 | Field参数错误 |'."\n" + .'| InvalidParameterStartTime | Invalid Parameter StartTime. | 400 | StartTime参数错误 |'."\n" + .'| InvalidParameterEndTime | Invalid Parameter EndTime. | 400 | EndTime参数错误 |'."\n" + .'| InvalidTimeRange | StartTime and EndTime range should less than 1 month. | 400 | EndTime和StartTime差值不能超过31天 |'."\n" + .'| InvalidParameterInterval | Invalid Parameter Interval. | 400 | Interval参数错误 |'."\n", + 'changeSet' => [ + ['createdAt' => '2023-07-27T07:26:11.000Z', 'description' => '错误码发生变更、请求参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeDomainUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T21:00Z\\",\\n \\"Type\\": \\"all\\",\\n \\"StartTime\\": \\"2015-12-10T20:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"Area\\": \\"CN\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"UsageDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"423304182\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n example.com\\n 300\\n \\n \\n 2015-12-10T20:00:00Z\\n 423304182\\n \\n \\n 2015-12-10T20:05:00Z\\n 454680793\\n \\n \\n 2015-12-10T20:10:00Z\\n 501718342\\n \\n \\n 2015-12-10T20:15:00Z\\n 434816025\\n \\n \\n B955107D-E658-4E77-B913-E0AC3D31693E\\n 2015-12-10T20:00Z\\n 2015-12-10T21:00Z\\n CN\\n all\\n","errorExample":""}]', + ], + 'DescribeDomainWithIntegrity' => [ + 'summary' => '调用接口获取域名完整性', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', - ], + 'abilityTreeCode' => '112159', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z'], ], [ - 'name' => 'AppName', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属的应用名称。'."\n" - ."\n" - .'> AppName取值为星号(*)时,代表该域名下所有的AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '结束时间需大于起始时间;获日期格式按照ISO8601表示法,并使用UTC时间。', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z'], ], [ - 'name' => 'StreamName', + 'name' => 'Integrity', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。'."\n" - ."\n" - .'> StreamName取值为星号(*)时,代表该App下所有的StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '校验完整度。', 'type' => 'number', 'format' => 'float', 'required' => true, 'example' => '0.95'], ], ], 'responses' => [ @@ -21212,100 +17577,113 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E******', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], + 'Content' => [ + 'description' => '校验内容。', + 'type' => 'array', + 'items' => [ + 'description' => '校验内容。', + 'type' => 'object', + 'properties' => [ + 'Name' => ['description' => '表名。', 'type' => 'string', 'example' => '1637825700000'], + 'Points' => [ + 'description' => '子Points。', + 'type' => 'array', + 'items' => ['description' => '对应列的数值', 'type' => 'string', 'example' => '1637825700000'], + ], + 'Columns' => [ + 'description' => '列名', + 'type' => 'array', + 'items' => ['description' => '列名', 'type' => 'string', 'example' => 'time'], + ], + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MalformedParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigExisted', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 'title' => '获取域名完整性', + 'description' => '调用接口获取域名完整性'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2024-09-29T03:08:53.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDomainWithIntegrity'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeDomainWithIntegrity', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '删除直播语音审核配置', - 'description' => '- 先获取主播流域名,再调用本接口删除直播语音审核配置信息。'."\n" - ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"Content\\": [\\n {\\n \\"Name\\": \\"1637825700000\\",\\n \\"Points\\": [\\n \\"1637825700000\\"\\n ],\\n \\"Columns\\": [\\n \\"time\\"\\n ]\\n }\\n ]\\n}","type":"json"}]', ], - 'DeleteLiveAudioAuditNotifyConfig' => [ - 'summary' => '删除直播语音审核回调配置信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLiveAIProduceRules' => [ + 'summary' => '查询字幕规则列表。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '106923', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - 'FEATUREliveUTGSNT', - ], + 'abilityTreeCode' => '219166', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播放域名。', 'type' => 'string', 'required' => false, 'example' => 'demo.aliyundoc.com'], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => false, 'example' => 'AppName'], + ], + [ + 'name' => 'SuffixName', + 'in' => 'query', + 'schema' => ['description' => '字幕后缀。'."\n" + .'> 传值为SubtitleName字幕模板名称设置的值。', 'type' => 'string', 'required' => false, 'example' => 'sub01'], + ], + [ + 'name' => 'RulesId', + 'in' => 'query', + 'schema' => ['description' => '字幕规则ID。', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec****'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '分⻚的⻚数,取值范围【1,100】。', 'type' => 'string', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分⻚每⻚个数,取值范围【1,100】。', 'type' => 'string', 'required' => false, 'example' => '100'], ], ], 'responses' => [ @@ -21313,135 +17691,199 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b96****'], + 'RuleInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RuleInfo' => [ + 'description' => '字幕规则列表。', + 'type' => 'array', + 'items' => [ + 'description' => '字幕规则对象。', + 'type' => 'object', + 'properties' => [ + 'Domain' => ['description' => '播流域名。', 'type' => 'string', 'example' => 'demo.aliyundoc.com'], + 'App' => ['description' => '播流所属应用名称。', 'type' => 'string', 'example' => 'App Name'], + 'SubtitleName' => ['description' => '字幕模板名称。', 'type' => 'string', 'example' => 'sub1'], + 'IsLazy' => ['description' => '是否拉流触发。', 'type' => 'boolean', 'example' => 'true'], + 'RulesId' => ['description' => '字幕规则ID。', 'type' => 'string', 'example' => '72fba656-2cc2-40fd-923c-2a10c3b9****'], + 'LiveTemplate' => ['description' => '字幕输出规格。', 'type' => 'string', 'example' => 'lp_ld'], + 'GmtModifyTime' => ['description' => '最近修改时间(时间戳)。', 'type' => 'string', 'example' => '1715594344000'], + 'SuffixName' => ['description' => '字幕后缀。', 'type' => 'string', 'example' => 'test0506'], + 'StudioName' => ['description' => '虚拟背景模板名称', 'type' => 'string', 'example' => 'test0708'], + 'Description' => ['description' => '规则描述。', 'type' => 'string', 'example' => 'live AI subtitle template'], + ], + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MalformedParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigExisted', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'IncorrectSubtitleStatus.%s', 'errorMessage' => '%s.', 'description' => '字幕模版状态异常'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', - 'title' => '删除直播语音审核回调配置', - 'description' => '- 先获取主播流域名,再调用本接口删除直播语音审核回调配置信息。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '查询字幕规则', + 'description' => '本接口支持查询字幕规则列表信息,调用时请保证参数设置符合要求。'."\n" + .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" + .'>'."\n" ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" - ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdateLiveAudioAuditNotifyConfig' => [ - 'summary' => '更新直播语音审核回调配置信息。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-10-14T03:46:55.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-07-04T02:57:17.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveAIProduceRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\",\\n \\"RuleInfoList\\": {\\n \\"RuleInfo\\": [\\n {\\n \\"Domain\\": \\"demo.aliyundoc.com\\",\\n \\"App\\": \\"App Name\\",\\n \\"SubtitleName\\": \\"sub1\\",\\n \\"IsLazy\\": true,\\n \\"RulesId\\": \\"72fba656-2cc2-40fd-923c-2a10c3b9****\\",\\n \\"LiveTemplate\\": \\"lp_ld\\",\\n \\"GmtModifyTime\\": \\"1715594344000\\",\\n \\"SuffixName\\": \\"test0506\\",\\n \\"StudioName\\": \\"test0708\\",\\n \\"Description\\": \\"live AI subtitle template\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64- af62-20e91b96****\\n \\n demo.aliyundoc.com\\n App Name\\n sub1\\n true\\n true\\n 72fba656-2cc2-40fd-923c-2a10c3b9****\\n lp_ld\\n 1715594344000\\n test0506\\n live AI subtitle template\\n \\n","errorExample":""}]', + ], + 'DescribeLiveAIStudio' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', - ], + 'abilityTreeCode' => '239765', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'StudioId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '可选参数,指定筛选模板Id', 'type' => 'string', 'required' => false, 'example' => 'dbe61b87-db9a-448f-8757-a875edb3f944'], ], [ - 'name' => 'Callback', + 'name' => 'StudioName', 'in' => 'query', - 'schema' => [ - 'description' => '回调地址。用于接收问题语音内容的回调', - 'type' => 'string', - 'required' => false, - 'example' => 'http://guide.aliyundoc.com/callback', - ], + 'schema' => ['description' => '虚拟背景模板名称', 'type' => 'string', 'required' => false, 'example' => 'sub02'], ], [ - 'name' => 'CallbackTemplate', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '审核回调模板。取值:'."\n" - ."\n" - .'- **{DomainName}**:播流域名。'."\n" - .'- **{AppName}**:播流所属应用名称。'."\n" - .'- **{StreamName}**:播流名称。'."\n" - .'- **{Timestamp}**:Unix时间戳,返回回调时间。单位:秒。'."\n" - .'- **{Result}**:检测结果。', - 'type' => 'string', - 'required' => false, - 'example' => '{"domain":{DomainName},"app":{AppName},"stream":{StreamName},"timestamp":{Timestamp},"result":{Result}}', - ], + 'schema' => ['description' => '当前页码。默认值为**1**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '单页显示应用的数量,默认值:10。取值范围:1~50。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'Total' => ['description' => '总模板数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'PageNumber' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '单页显示应用的数量,默认值:10。取值范围:1~50。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'StudioConfigs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SubtitleConfig' => [ + 'description' => '虚拟演播厅模板信息', + 'type' => 'array', + 'items' => [ + 'description' => '虚拟演播厅模板信息', + 'type' => 'object', + 'properties' => [ + 'MediaType' => ['description' => '多媒体素材类型:VOD,PIC,LIVE 三选一'."\n" + ."\n\n" + .'- VOD, 点播视频文件'."\n" + .'- PIC,图片'."\n" + .'- LIVE,直播流', 'type' => 'string', 'example' => 'VOD'], + 'MediaLayout' => ['description' => '多媒体布局信息', 'type' => 'string', 'example' => '"{\\"positionY\\":\\"0.0\\",\\"positionX\\":\\"0.0\\",\\"heightNormalized\\":\\"0.5\\"}"'], + 'MediaResourceUrl' => ['description' => '多媒体素材链接url', 'type' => 'string', 'example' => 'https://testbucket.xx.com/2.jpg'], + 'MediaResourceId' => ['description' => '多媒体素材点播资源id', 'type' => 'string', 'example' => ' '."\n" + .'d0eb493192c771efba644531858c0102'."\n"], + 'BackgroundType' => ['description' => '背景素材类型:VOD,PIC,LIVE 三选一'."\n" + ."\n" + .'- VOD, 点播视频文件'."\n" + .'- PIC,图片'."\n" + .'- LIVE,直播流', 'type' => 'string', 'example' => 'VOD'], + 'BackgroundResourceUrl' => ['description' => '背景素材外部访问地址,需要保证公网可用,与BackgroundResourceId二选一即可。', 'type' => 'string', 'example' => 'https://testbucket.xx.com/2.jpg'], + 'BackgroundResourceId' => ['description' => '背景素材资源ID。', 'type' => 'string', 'example' => 'd0eb493192c771efba644531858c0102'], + 'Description' => ['description' => '自定义规则描述信息。', 'type' => 'string', 'example' => 'user defined description'], + 'TemplateId' => ['description' => '虚拟演播模板ID。', 'type' => 'string', 'example' => '24654384-f5ac-40ea-823b-74e85a61dd9f'], + 'TemplateName' => ['description' => '虚拟演播模板名称。与AddLiveAiStudio中的StudioName参数相同', 'type' => 'string', 'example' => 'studio1'], + 'MattingLayout' => ['description' => '多媒体素材位置布局信息。', 'type' => 'string', 'example' => '"{\\"positionY\\":\\"0.0\\",\\"positionX\\":\\"0.0\\",\\"heightNormalized\\":\\"0.5\\"}"'], + 'MattingType' => ['description' => '源流抠图类型,对用户推流进行抠图处理'."\n" + ."\n" + .'- green 绿幕背景人像抠图'."\n" + .'- blue 蓝幕背景人像抠图'."\n" + .'- complex 实景人像抠图', 'type' => 'string', 'example' => 'complex'], + 'Height' => ['description' => '预览画面高度,单位:px'."\n" + ."\n" + .'预览画面宽度x高度仅支持以下规格: '."\n" + .'- 横屏流畅 360P 640x360 '."\n" + .'- 竖屏流畅 360P 360x640'."\n" + .'- 横屏标清 480P 854x480'."\n" + .'- 竖屏标清 480P 480x854'."\n" + .'- 横屏高清 720P 1280x720'."\n" + .'- 竖屏高清 720P 720x1280'."\n" + .'- 横屏超清 1080P 1920x1080'."\n" + .'- 竖屏超清 1080P 1080x1920', 'type' => 'string', 'example' => '1080'], + 'Width' => ['description' => '预览画面宽度。', 'type' => 'string', 'example' => '1920'], + 'RuleIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ruleId' => [ + 'description' => '绑定的策略ID集合。', + 'type' => 'array', + 'items' => ['description' => '规则ID。', 'type' => 'string', 'example' => '2414378f-541a-48d3-be0c-535212f9a6b4'], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', ], ], ], @@ -21449,215 +17891,220 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MalformedParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigExisted', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'UnsafeCallback', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '直播服务未开通,请检查后重试。'], + ['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PurchaseTime无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ExpireTime无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType仅支持后付费,请检查后重试。'], + ['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterTemplate无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '时间间隔无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ClientToken无效,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态有误,请检查后重试。'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + [ + ['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台数量超限,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '访问拒绝,请检查后重试。'], + ], + [ + ['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数NormType无效,请检查后重试。'], + ['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ], + 408 => [ + ['errorCode' => 'DescribeLiveAIStudio.Timeout', 'errorMessage' => '%s, please try again later.', 'description' => '调用DescribeLiveAIStudio超时,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', - 'title' => '更新直播语音审核回调配置', - 'description' => '- 先获取主播流域名,再调用本接口更新直播语音审核回调配置信息。'."\n" - ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdateLiveAudioAuditConfig' => [ - 'summary' => '更新直播语音审核配置。', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询虚拟演播模板', + 'summary' => '查询用户账号下的虚拟演播模板。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveAIStudio', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Total\\": 100,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"StudioConfigs\\": {\\n \\"SubtitleConfig\\": [\\n {\\n \\"MediaType\\": \\"VOD\\",\\n \\"MediaLayout\\": \\"\\\\\\"{\\\\\\\\\\\\\\"positionY\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"positionX\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"heightNormalized\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.5\\\\\\\\\\\\\\"}\\\\\\"\\",\\n \\"MediaResourceUrl\\": \\"https://testbucket.xx.com/2.jpg\\",\\n \\"MediaResourceId\\": \\"\\\\t\\\\nd0eb493192c771efba644531858c0102\\\\n\\",\\n \\"BackgroundType\\": \\"VOD\\",\\n \\"BackgroundResourceUrl\\": \\"https://testbucket.xx.com/2.jpg\\",\\n \\"BackgroundResourceId\\": \\"d0eb493192c771efba644531858c0102\\",\\n \\"Description\\": \\"user defined description\\",\\n \\"TemplateId\\": \\"24654384-f5ac-40ea-823b-74e85a61dd9f\\",\\n \\"TemplateName\\": \\"studio1\\",\\n \\"MattingLayout\\": \\"\\\\\\"{\\\\\\\\\\\\\\"positionY\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"positionX\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"heightNormalized\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.5\\\\\\\\\\\\\\"}\\\\\\"\\",\\n \\"MattingType\\": \\"complex\\",\\n \\"Height\\": \\"1080\\",\\n \\"Width\\": \\"1920\\",\\n \\"RuleIds\\": {\\n \\"ruleId\\": [\\n \\"2414378f-541a-48d3-be0c-535212f9a6b4\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeLiveAISubtitle' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', - ], + 'abilityTreeCode' => '218857', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'SubtitleId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '字幕模板ID。', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], [ - 'name' => 'AppName', + 'name' => 'SubtitleName', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属的应用名称。AppName名称与推流地址中的AppName名称对应,模板才能生效。区分大小写。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '字幕模板名称,仅支持数字、大小写字母或短横线-,短横线不和位于首位。', 'type' => 'string', 'required' => false, 'example' => 'sub01'], ], [ - 'name' => 'StreamName', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。StreamName名称与推流地址中的StreamName名称对应,模板才能生效。区分大小写。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '分页的页数。取值范围【1,100】', 'type' => 'string', 'required' => false, 'example' => '1'], ], [ - 'name' => 'OssBucket', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储Bucket名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveBucket****', - ], + 'schema' => ['description' => '每页模板数值。取值范围【1,100】', 'type' => 'string', 'required' => false, 'example' => '100'], ], [ - 'name' => 'OssEndpoint', + 'name' => 'IsDefault', 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储Endpoint名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-oss-****.aliyuncs.com', - ], + 'schema' => ['description' => '是否查询字幕默认模版,取值范围:'."\n" + .'- true,查询。'."\n" + .'- false,不查询。'."\n" + .'> 默认模版:系统预先内置的参数集,用户可以通过AddLiveAISubtitle接口的copyFrom参数使用。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], - [ - 'name' => 'OssObject', - 'in' => 'query', - 'schema' => [ - 'description' => 'OSS存储的录制文件名。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveObject****', - ], - ], - [ - 'name' => 'BizType', - 'in' => 'query', - 'schema' => [ - 'description' => '业务类型。可用于选择模型,默认值为域名。', - 'type' => 'string', - 'required' => false, - 'example' => ' example.edu', - ], - ], - ], - 'responses' => [ - 200 => [ + ], + 'responses' => [ + 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b96****'], + 'SubtitleConfigs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SubtitleConfig' => [ + 'description' => '字幕模板信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '字幕模板信息对象', + 'type' => 'object', + 'properties' => [ + 'DstLanguage' => ['description' => '翻译目标语言', 'type' => 'string', 'example' => 'zh-CN'], + 'SrcLanguage' => ['description' => '源语言', 'type' => 'string', 'example' => 'zh-CN'], + 'FontColor' => ['description' => '字体颜色', 'type' => 'string', 'example' => '0xFFFFFF'], + 'FontName' => ['description' => '字体', 'type' => 'string', 'example' => 'AlibabaPuHuiTi-Regular'], + 'ShowSourceLan' => ['description' => '是否显示源语言', 'type' => 'integer', 'format' => 'int32', 'example' => 'true'], + 'MaxLines' => ['description' => '显示行数', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'WordPerline' => ['description' => '每行显示字数', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'PositionNormalized' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Position' => [ + 'description' => '字幕位置信息', + 'type' => 'array', + 'items' => ['description' => '字幕位置', 'type' => 'number', 'format' => 'float', 'example' => '[0.3,0.35]'], + ], + ], + 'description' => '', + ], + 'BgColor' => ['description' => '字幕背景颜色', 'type' => 'string', 'example' => '0xFF0000'], + 'BgWidthNormalized' => ['description' => '字幕背景尺寸', 'type' => 'number', 'format' => 'float', 'example' => '0.09'], + 'BorderWidthNormalized' => ['description' => '字体粗细', 'type' => 'number', 'format' => 'float', 'example' => '0.05'], + 'Width' => ['description' => '预览画面宽度', 'type' => 'string', 'example' => '1280'], + 'Height' => ['description' => '预览画面高度', 'type' => 'string', 'example' => '720'], + 'SubtitleName' => ['description' => '字幕模板名称', 'type' => 'string', 'example' => 'sub1'], + 'SubtitleId' => ['description' => '字幕模板ID', 'type' => 'string', 'example' => '597991f3-6ef9-4100-9238-82951de1****'], + 'RulesRefer' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RulesId' => [ + 'description' => '字幕规则信息', + 'type' => 'array', + 'items' => ['description' => '字幕规则ID', 'type' => 'string', 'example' => '1419783e-0dd2-4485-a298-6e4a0e4e****'], + ], + ], + 'description' => '', + ], + 'FontSizeNormalized' => ['description' => '字体尺寸', 'type' => 'string', 'example' => '0.037'], + 'Description' => ['description' => '描述信息', 'type' => 'string', 'example' => 'live AI subtitle template'], + ], + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MalformedParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigExisted', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', - 'title' => '更新直播语音审核配置', - 'description' => '- 先获取主播流域名,再调用本接口更新直播语音审核配置。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询字幕模板', + 'summary' => '调用DescribeLiveAISubtitle查询字幕模板列表。', + 'description' => '本接口支持指定分页参数查询字幕模板列表信息,调用时请保证参数设置符合要求。'."\n" ."\n" - .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" + .'>'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2024-12-04T05:54:29.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2024-06-11T03:32:56.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveAISubtitle'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveAISubtitle', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\",\\n \\"SubtitleConfigs\\": {\\n \\"SubtitleConfig\\": [\\n {\\n \\"DstLanguage\\": \\"zh-CN\\",\\n \\"SrcLanguage\\": \\"zh-CN\\",\\n \\"FontColor\\": \\"0xFFFFFF\\",\\n \\"FontName\\": \\"AlibabaPuHuiTi-Regular\\",\\n \\"ShowSourceLan\\": 0,\\n \\"MaxLines\\": 2,\\n \\"WordPerline\\": 20,\\n \\"PositionNormalized\\": {\\n \\"Position\\": [\\n 0\\n ]\\n },\\n \\"BgColor\\": \\"0xFF0000\\",\\n \\"BgWidthNormalized\\": 0.09,\\n \\"BorderWidthNormalized\\": 0.05,\\n \\"Width\\": \\"1280\\",\\n \\"Height\\": \\"720\\",\\n \\"SubtitleName\\": \\"sub1\\",\\n \\"SubtitleId\\": \\"597991f3-6ef9-4100-9238-82951de1****\\",\\n \\"RulesRefer\\": {\\n \\"RulesId\\": [\\n \\"1419783e-0dd2-4485-a298-6e4a0e4e****\\"\\n ]\\n },\\n \\"FontSizeNormalized\\": \\"0.037\\",\\n \\"Description\\": \\"live AI subtitle template\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64- af62-20e91b96****\\n \\n zh-CN\\n zh-CN\\n 0xFFFFFF\\n AlibabaPuHuiTi-Regular\\n 2\\n 20\\n [0.3,0.35]\\n 0xFF0000\\n 0.09\\n 0.05\\n 1280\\n 720\\n sub1\\n 597991f3-6ef9-4100-9238-82951de1****\\n 1419783e-0dd2-4485-a298-6e4a0e4e****\\n 0.037\\n live AI subtitle template\\n \\n","errorExample":""}]', ], 'DescribeLiveAudioAuditConfig' => [ 'summary' => '查询直播语音审核配置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21668,51 +18115,28 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', - ], + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属的应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '播流所属的应用名称。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '播流名称。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], ], ], 'responses' => [ @@ -21720,11 +18144,7 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1'], 'LiveAudioAuditConfigList' => [ 'type' => 'object', 'itemNode' => true, @@ -21735,26 +18155,10 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'AppName' => [ - 'description' => '播流所属的应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'StreamName' => [ - 'description' => '流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'BizType' => [ - 'description' => '业务类型。可用于选择模型,默认值为域名。', - 'type' => 'string', - 'example' => 'example.edu', - ], + 'AppName' => ['description' => '播流所属的应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'StreamName' => ['description' => '流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'BizType' => ['description' => '业务类型。可用于选择模型,默认值为域名。', 'type' => 'string', 'example' => 'example.edu'], 'Scenes' => [ 'type' => 'object', 'itemNode' => true, @@ -21762,50 +18166,34 @@ 'scene' => [ 'description' => '检测场景。', 'type' => 'array', - 'items' => [ - 'description' => '检测场景。', - 'type' => 'string', - 'example' => 'antispam', - ], + 'items' => ['description' => '检测场景。', 'type' => 'string', 'example' => 'antispam'], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MalformedParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigExisted', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '存在无效参数,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\",\\n \\"LiveAudioAuditConfigList\\": {\\n \\"LiveAudioAuditConfig\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"BizType\\": \\"example.edu\\",\\n \\"Scenes\\": {\\n \\"scene\\": [\\n \\"antispam\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n \\n liveApp****\\n example.com\\n liveStream****\\n example.edu\\n [\\"antispam\\"]\\n \\n","errorExample":""}]', 'title' => '查询直播语音审核配置', 'description' => '- 先获取主播流域名,调用本接口查询直播语音审核配置。'."\n" ."\n" @@ -21816,17 +18204,31 @@ 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveAudioAuditConfig'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveAudioAuditConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\",\\n \\"LiveAudioAuditConfigList\\": {\\n \\"LiveAudioAuditConfig\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"BizType\\": \\"example.edu\\",\\n \\"Scenes\\": {\\n \\"scene\\": [\\n \\"antispam\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n \\n liveApp****\\n example.com\\n liveStream****\\n example.edu\\n [\\"antispam\\"]\\n \\n","errorExample":""}]', ], 'DescribeLiveAudioAuditNotifyConfig' => [ 'summary' => '查询直播语音审核回调配置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21837,31 +18239,18 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveUTGSNT', - ], + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -21869,11 +18258,7 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B908FF89-B03C-4831-B55B-48D2A******', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B908FF89-B03C-4831-B55B-48D2A******'], 'LiveAudioAuditNotifyConfigList' => [ 'type' => 'object', 'itemNode' => true, @@ -21884,63 +18269,38 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'CallbackTemplate' => [ - 'description' => '审核回调模板。取值:'."\n" - ."\n" - .'- **{DomainName}**:播流域名。'."\n" - .'- **{AppName}**:播流所属应用名称。'."\n" - .'- **{StreamName}**:播流名称。'."\n" - .'- **{Timestamp}**:Unix时间戳,返回回调时间。单位:秒。'."\n" - .'- **{Result}**:检测结果。', - 'type' => 'string', - 'example' => '{\\"domain\\":{DomainName},\\"app\\":{AppName},\\"stream\\":{StreamName},\\"timestamp\\":{Timestamp},\\"result\\":{Result}}', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Callback' => [ - 'description' => '回调地址。', - 'type' => 'string', - 'example' => 'http://guide.aliyundoc.com/callback', - ], + 'CallbackTemplate' => ['description' => '审核回调模板。取值:'."\n" + ."\n" + .'- **{DomainName}**:播流域名。'."\n" + .'- **{AppName}**:播流所属应用名称。'."\n" + .'- **{StreamName}**:播流名称。'."\n" + .'- **{Timestamp}**:Unix时间戳,返回回调时间。单位:秒。'."\n" + .'- **{Result}**:检测结果。', 'type' => 'string', 'example' => '{\\"domain\\":{DomainName},\\"app\\":{AppName},\\"stream\\":{StreamName},\\"timestamp\\":{Timestamp},\\"result\\":{Result}}'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'Callback' => ['description' => '回调地址。', 'type' => 'string', 'example' => 'http://guide.aliyundoc.com/callback'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MalformedParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigExisted', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '存在无效参数,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B908FF89-B03C-4831-B55B-48D2A******\\",\\n \\"LiveAudioAuditNotifyConfigList\\": {\\n \\"LiveAudioAuditNotifyConfig\\": [\\n {\\n \\"CallbackTemplate\\": \\"{\\\\\\\\\\\\\\"domain\\\\\\\\\\\\\\":{DomainName},\\\\\\\\\\\\\\"app\\\\\\\\\\\\\\":{AppName},\\\\\\\\\\\\\\"stream\\\\\\\\\\\\\\":{StreamName},\\\\\\\\\\\\\\"timestamp\\\\\\\\\\\\\\":{Timestamp},\\\\\\\\\\\\\\"result\\\\\\\\\\\\\\":{Result}}\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Callback\\": \\"http://guide.aliyundoc.com/callback\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n B908FF89-B03C-4831-B55B-48D2A7DA0A68\\n \\n \\n {\\\\\\"domain\\\\\\":{DomainName},\\\\\\"app\\\\\\":{AppName},\\\\\\"stream\\\\\\":{StreamName},\\\\\\"timestamp\\\\\\":{Timestamp},\\\\\\"result\\\\\\":{Result}}\\n example.com\\n http://guide.aliyundoc.com/callback\\n \\n \\n","errorExample":""}]', 'title' => '查询直播语音审核回调配置', 'description' => '- 先获取主播流域名,再调用本接口查询直播语音审核回调配置。'."\n" ."\n" @@ -21951,338 +18311,252 @@ 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateLivePrivateLine' => [ - 'summary' => '创建全球加速实例并绑定到直播链路。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveAudioAuditNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B908FF89-B03C-4831-B55B-48D2A******\\",\\n \\"LiveAudioAuditNotifyConfigList\\": {\\n \\"LiveAudioAuditNotifyConfig\\": [\\n {\\n \\"CallbackTemplate\\": \\"{\\\\\\\\\\\\\\"domain\\\\\\\\\\\\\\":{DomainName},\\\\\\\\\\\\\\"app\\\\\\\\\\\\\\":{AppName},\\\\\\\\\\\\\\"stream\\\\\\\\\\\\\\":{StreamName},\\\\\\\\\\\\\\"timestamp\\\\\\\\\\\\\\":{Timestamp},\\\\\\\\\\\\\\"result\\\\\\\\\\\\\\":{Result}}\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Callback\\": \\"http://guide.aliyundoc.com/callback\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n B908FF89-B03C-4831-B55B-48D2A7DA0A68\\n \\n \\n {\\\\\\"domain\\\\\\":{DomainName},\\\\\\"app\\\\\\":{AppName},\\\\\\"stream\\\\\\":{StreamName},\\\\\\"timestamp\\\\\\":{Timestamp},\\\\\\"result\\\\\\":{Result}}\\n example.com\\n http://guide.aliyundoc.com/callback\\n \\n \\n","errorExample":""}]', + ], + 'DescribeLiveCenterStreamRateData' => [ + 'summary' => '查询直播中心流的音视频帧率、码率。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '214643', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'live', - ], + 'schema' => ['description' => '推流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'testStream', - ], - ], - [ - 'name' => 'VideoCenter', - 'in' => 'query', - 'schema' => [ - 'description' => '直播中心,取值:cn-beijing、cn-shanghai、cn-shenzhen、cn-qingdao、ap-northeast-1、ap-southeast-5、eu-central-1、ap-southeast-1、ap-south-1,分别表示位于北京、上海、深圳、青岛、日本、印尼、德国、新加坡的直播中心。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'AccelerationType', - 'in' => 'query', - 'schema' => [ - 'description' => '加速类型,取值:'."\n" - ."\n" - .'- play:播流加速。'."\n" - .'- publish:推流加速。', - 'type' => 'string', - 'required' => true, - 'example' => 'play', - 'enum' => [ - 'play', - 'publish', - ], - ], - ], - [ - 'name' => 'AccelerationArea', - 'in' => 'query', - 'schema' => [ - 'description' => '加速通道。', - 'type' => 'string', - 'required' => true, - 'example' => 'ap-southeast-1', - ], - ], - [ - 'name' => 'Reuse', - 'in' => 'query', - 'schema' => [ - 'description' => '是否复用已有加速通道,取值:'."\n" - .'- yes:复用已有加速通道。'."\n" - .'- no:新建加速通道。', - 'type' => 'string', - 'required' => true, - 'example' => 'no', - 'enum' => [ - 'yes', - 'no', - ], - ], + 'schema' => ['description' => '流的名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], [ - 'name' => 'MaxBandwidth', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '加速带宽,单位:Mbps。当Reuse为no时必填。', - 'type' => 'string', - 'required' => false, - 'example' => '200', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2024-03-05T18:00:53Z'], ], [ - 'name' => 'InstanceId', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '复用的加速通道。当Reuse为yes时必填。', - 'type' => 'string', - 'required' => false, - 'example' => 'ga-bp1iovsdpf01ym9su****', - ], + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2024-03-05T18:01:03Z'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回数据。', + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7908F2FF-44F8-120F-9FD6-85AE4B6C****', + 'RateDatas' => [ + 'description' => '帧率码率列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AudioFps' => ['description' => '音频帧率。', 'type' => 'string', 'example' => '47'], + 'AudioRate' => ['description' => '音频码率。', 'type' => 'string', 'example' => '600'], + 'Time' => ['description' => '统计时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2024-03-05T18:00:53Z'], + 'VideoFps' => ['description' => '视频帧率。', 'type' => 'string', 'example' => '30'], + 'VideoRate' => ['description' => '视频码率。', 'type' => 'string', 'example' => '1953584'], + ], + 'description' => '', + ], ], + 'RequestId' => ['title' => 'Id', 'description' => '请求ID。', 'type' => 'string', 'example' => 'B6E125BE-E9B8-1103-8684-A35*******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - [ - 'errorCode' => 'NoSpecialConfiguration', - 'errorMessage' => 'no special configuration for acceleration_area.', - ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', - ], - [ - 'errorCode' => 'HasNoPermission', - 'errorMessage' => 'You do not have permission to create accelerator.', - ], - [ - 'errorCode' => 'PostPayNotOpen', - 'errorMessage' => 'The Accelerator PostPay service is not open.', - ], - [ - 'errorCode' => 'TryAgain', - 'errorMessage' => 'Create SLR first and please try again.', - ], - [ - 'errorCode' => 'HasNoPermisionToCreateSLR', - 'errorMessage' => 'You do not have ram:CreateServiceLinkedRole to create SLR.', - ], + ['errorCode' => 'Meter.ParamError', 'errorMessage' => 'Param Error:%s,Please Check Again.', 'description' => '报错信息'], + ], + 403 => [ + ['errorCode' => 'Meter.AuthError', 'errorMessage' => 'Authentication Failed,Please Try Again.', 'description' => '鉴权失败'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'Meter.ServerInternalError', 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'description' => '服务内部异常'], + ['errorCode' => 'Meter.DataSourceQueryError', 'errorMessage' => 'Data Source Error:%s,Please Try Again.', 'description' => '数据查询错误'], + ], + 502 => [ + ['errorCode' => 'Meter.ReadyTsError', 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', 'description' => '查询的数据还未就绪'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4B6C****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', - 'title' => '创建全球加速实例并绑定到直播链路', - 'description' => '- 本接口用于创建全球加速实例并绑定到直播链路,需要精确到流粒度,并指明加速的起点和终点。'."\n" - ."\n" - .'- AppName与StreamName的名称与播流地址中的AppName与StreamName的名称对应模板才能生效。'."\n" - ."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询直播中心收录的流音视频帧率和码率', + 'description' => '返回时间粒度为5秒一个点位,单次查询不能超过3个小时的范围,可以查询30天内的数据。'."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteLivePrivateLine' => [ - 'summary' => '解绑全球加速实例与直播链路。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveCenterStreamRateData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveCenterStreamRateData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RateDatas\\": [\\n {\\n \\"AudioFps\\": \\"47\\",\\n \\"AudioRate\\": \\"600\\",\\n \\"Time\\": \\"2024-03-05T18:00:53Z\\",\\n \\"VideoFps\\": \\"30\\",\\n \\"VideoRate\\": \\"1953584\\"\\n }\\n ],\\n \\"RequestId\\": \\"B6E125BE-E9B8-1103-8684-A35*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n B6E125BE-E9B8-1103-8684-A3585CB632F1\\n \\n 30\\n 1953584\\n 47\\n 600\\n \\n \\n","errorExample":""}]', + ], + 'DescribeLiveCenterTransfer' => [ + 'summary' => '调用DescribeLiveCenterTransfer查询直播中心转推配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'live', - ], + 'schema' => ['description' => '直播流应用名称。输入的AppName必须与需要转推的直播流AppName保持一致,方可生效。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => false, 'example' => 'testapp'], ], [ 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'testStream', - ], + 'schema' => ['description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => false, 'example' => 'teststream'], ], [ - 'name' => 'AccelerationType', + 'name' => 'DstUrl', 'in' => 'query', - 'schema' => [ - 'description' => '加速类型,取值:'."\n" - .'- play:播流加速。'."\n" - .'- publish:推流加速。', - 'type' => 'string', - 'required' => true, - 'example' => 'play', - 'enum' => [ - 'play', - 'publish', - ], - ], + 'schema' => ['description' => '转推的第三方直播地址。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7908F2FF-44F8-120F-9FD6-85AE4******', + 'LiveCenterTransferInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveCenterTransferInfo' => [ + 'description' => '直播转推服务列表。', + 'type' => 'array', + 'items' => [ + 'description' => '直播转推服务列表。', + 'type' => 'object', + 'properties' => [ + 'AppName' => ['description' => '直播流应用名称。', 'type' => 'string', 'example' => 'teststream'], + 'DomainName' => ['description' => '播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'DstUrl' => ['description' => '转推的第三方直播地址。', 'type' => 'string', 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2'], + 'EndTime' => ['description' => '转推结束时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2022-04-29T15:16:00Z'], + 'StartTime' => ['description' => '转推开始时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2022-04-28T15:16:00Z'], + 'StreamName' => ['description' => '直播流名称。', 'type' => 'string', 'example' => 'teststream'], + 'TransferArgs' => ['description' => '转推有效时间。取值:'."\n" + ."\n" + .'- **always**:永久生效。'."\n" + ."\n" + .'- **time**:指定时间内有效。', 'type' => 'string', 'example' => 'time'], + ], + ], + ], + ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C4865B85-664B-19D3-BB16-C62FB83C8226'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', - 'title' => '删除全球加速实例和直播链路的绑定关系', - 'description' => '解绑后,您的直播推拉流链路不再借助GA回源。解绑后加速实例仍然存在,如需释放加速实例需要在全球加速控制台上进行删除。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLivePrivateLineAreas' => [ - 'summary' => '查询可选的全球加速链路起点。', - 'methods' => [ - 'post', - 'get', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LiveCenterTransferInfoList\\": {\\n \\"LiveCenterTransferInfo\\": [\\n {\\n \\"AppName\\": \\"teststream\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DstUrl\\": \\"rtmp://push.example2.aliyunlive.com/testapp1/teststream2\\",\\n \\"EndTime\\": \\"2022-04-29T15:16:00Z\\",\\n \\"StartTime\\": \\"2022-04-28T15:16:00Z\\",\\n \\"StreamName\\": \\"teststream\\",\\n \\"TransferArgs\\": \\"time\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"C4865B85-664B-19D3-BB16-C62FB83C8226\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C4865B85-664B-19D3-BB16-C62FB83C8226\\n \\n 2022-04-29T15:16:00Z\\n teststream\\n 2022-04-28T15:16:00Z\\n time\\n teststream\\n rtmp://push.example2.aliyunlive.com/testapp1/teststream2\\n example.com\\n \\n","errorExample":""}]', + 'title' => '获取直播中心转推', + 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveCenterTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveCertificateDetail' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -22293,134 +18567,162 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'CertName', 'in' => 'query', + 'schema' => ['description' => '证书名称。', 'type' => 'string', 'required' => true, 'example' => 'Cert-****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'type' => 'object', + 'properties' => [ + 'CertName' => ['description' => '证书名称。', 'type' => 'string', 'example' => 'Cert-****'], + 'Cert' => ['description' => '证书内容。', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE-----****-----END CERTIFICATE-----'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C7C69682-7F88-40DD-A198-10D0309E439B'], + 'CertId' => ['description' => '证书ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '23451111'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 404 => [ + ['errorCode' => 'CertNameNotFound', 'errorMessage' => 'The cert name is not found.', 'description' => '证书名不存在。'], + ], + ], + 'title' => '查询证书信息', + 'summary' => '查询证书详细信息。', + 'description' => '您可在视频直播控制台[证书服务](~~2584962~~)页面先获取证书名称,再调用本接口查询证书详细信息。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveCertificateDetail'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveCertificateDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertName\\": \\"Cert-****\\",\\n \\"Cert\\": \\"-----BEGIN CERTIFICATE-----****-----END CERTIFICATE-----\\",\\n \\"RequestId\\": \\"C7C69682-7F88-40DD-A198-10D0309E439B\\",\\n \\"CertId\\": 23451111\\n}","errorExample":""},{"type":"xml","example":"\\n\\nC7C69682-7F88-40DD-A198-10D0309E439B\\n23451111\\nCert-****\\n-----BEGIN CERTIFICATE-----****-----END CERTIFICATE-----\\n","errorExample":"{\\n \\"CertId\\": xxx,\\n \\"RequestId\\": \\"C7C69682-7F88-40DD-A198-10D0309E439B\\",\\n \\"CertName\\": \\"证书名称\\",\\n \\"Cert\\": \\"-----BEGIN CERTIFICATE-----xxx-----END CERTIFICATE-----\\"\\n}"}]', + ], + 'DescribeLiveCertificateList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['description' => '您的推流域名和播流域名。多个域名用英文逗号(,)分隔。', 'type' => 'string', 'required' => false, 'example' => 'demo.aliyundoc.com,example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'LiveAreasList' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'CertificateListModel' => [ + 'description' => '数据类型。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'LiveArea' => [ - 'description' => '区域详情列表。', - 'type' => 'array', - 'items' => [ - 'description' => '区域详情。', - 'type' => 'object', - 'properties' => [ - 'RegionType' => [ - 'description' => '区域类型,取值:'."\n" - .'- domestic:中国大陆。'."\n" - .'- overseas:除中国大陆以外的国家和地区。', - 'type' => 'string', - 'example' => 'domestic', - ], - 'Regions' => [ + 'Count' => ['description' => '证书个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'CertList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Cert' => [ + 'description' => '证书列表信息。', + 'type' => 'array', + 'items' => [ + 'description' => '证书列表信息。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'Region' => [ - 'description' => '区域列表。', - 'type' => 'array', - 'items' => [ - 'description' => '区域信息。', - 'type' => 'object', - 'properties' => [ - 'LocalName' => [ - 'description' => '区域名。', - 'type' => 'string', - 'example' => '深圳', - ], - 'RegionId' => [ - 'description' => '区域ID。', - 'type' => 'string', - 'example' => 'cn-shenzhen', - ], - ], - ], - ], + 'LastTime' => ['description' => '证书签发时间。单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1512388659'], + 'Fingerprint' => ['description' => '证书指纹。', 'type' => 'string', 'example' => '****'], + 'CertName' => ['description' => '证书名称。', 'type' => 'string', 'example' => 'Cert-****'], + 'Issuer' => ['description' => '证书发行商。', 'type' => 'string', 'example' => '*****'], + 'CertId' => ['description' => '证书ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '123456'], + 'Common' => ['description' => '证书的CN属性。', 'type' => 'string', 'example' => 'example.net'], ], ], ], ], + 'description' => '', ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C4865B85-664B-19D3-BB16-C62FB83C8226', - ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"LiveAreasList\\": {\\n \\"LiveArea\\": [\\n {\\n \\"RegionType\\": \\"domestic\\",\\n \\"Regions\\": {\\n \\"Region\\": [\\n {\\n \\"LocalName\\": \\"深圳\\",\\n \\"RegionId\\": \\"cn-shenzhen\\"\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"RequestId\\": \\"C4865B85-664B-19D3-BB16-C62FB83C8226\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C4865B85-664B-19D3-BB16-C62FB83C8226\\n \\n \\n domestic\\n \\n \\n 深圳\\n cn-shenzhen\\n \\n \\n \\n \\n overseas\\n \\n \\n 新加坡\\n ap-southeast-1\\n \\n \\n \\n \\n","errorExample":""}]', - 'title' => '查询可选的全球加速链路起点', - 'description' => '在调用CreateLivePrivateLine前,您可以调用该接口查询可选的全球加速区域,即加速链路起点。'."\n" + 'errorCodes' => [], + 'title' => '获取证书列表信息', + 'summary' => '查询指定域名或请求账号下的所有证书列表信息。', + 'description' => '如果请求中指定域名,则返回域名下的证书。如果请求中未指定域名,则返回请求账号下的所有证书。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'extraInfo' => '### 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP状态码 | 语义 |'."\n" - .'| ----- | --------- | ----------- | ------- |'."\n" - .'| InvalidDomain.NotFound | The domain provided does not exist in our records. | 404 | 当前账户下未查到域名。 |'."\n" - .'| InvalidParam | Parameter invalid. | 400 | 参数错误。 |'."\n" - .'| InternalError | The request processing has failed due to some unknown error. | 500 | 后台发生未知错误。 |', - ], - 'DescribeLivePrivateLineAvailGA' => [ - 'summary' => '查询全球加速实例和直播链路的绑定信息。', - 'methods' => [ - 'post', - 'get', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveCertificateList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveCertificateList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"CertificateListModel\\": {\\n \\"Count\\": 2,\\n \\"CertList\\": {\\n \\"Cert\\": [\\n {\\n \\"LastTime\\": 1512388659,\\n \\"Fingerprint\\": \\"****\\",\\n \\"CertName\\": \\"Cert-****\\",\\n \\"Issuer\\": \\"*****\\",\\n \\"CertId\\": 123456,\\n \\"Common\\": \\"example.net\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\n 2\\n \\n \\n ****\\n *****\\n 123456\\n Cert-****\\n 1512388659\\n example.net\\n \\n \\n\\n","errorExample":""}]', + ], + 'DescribeLiveDelayConfig' => [ + 'summary' => '调用DescribeLiveDelayConfig查询直播延播配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -22431,218 +18733,236 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveBP94ZY'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'AppName', + 'name' => 'App', + 'in' => 'query', + 'schema' => ['description' => '直播流所属应用名称。支持通配符*,代表该域名下所有的AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'Stream', 'in' => 'query', + 'schema' => ['description' => '直播流流名称。支持通配符*,代表该AppName下所有的StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'live', + 'type' => 'object', + 'properties' => [ + 'App' => ['description' => '直播流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'DelayTime' => ['description' => '直播流延迟播放的时长。', 'type' => 'string', 'example' => '60'], + 'Domain' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A3136B58-5876-4168-83CA-B562781981A0'], + 'Stream' => ['description' => '直播流流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'TaskTriggerMode' => ['description' => '任务触发模式,取值:'."\n" + ."\n" + .'- **PUBLISH_ONLY**:仅支持带延播推流参数触发。'."\n" + ."\n\n" + .'- **CONFIG_ONLY**:仅支持配置触发,推流参数无效。'."\n" + ."\n" + .'- **PUBLISH_CONFIG**:同时支持推流和配置,并且推流参数高优于配置。', 'type' => 'string', 'example' => 'PUBLISH_ONLY'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameters', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ], + ], + 'title' => '查询直播延播配置', + 'description' => '本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDelayConfig'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"App\\": \\"liveApp****\\",\\n \\"DelayTime\\": \\"60\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"Stream\\": \\"liveStream****\\",\\n \\"TaskTriggerMode\\": \\"PUBLISH_ONLY\\"\\n}","errorExample":""},{"type":"xml","example":"\\n example.com\\n A3136B58-5876-4168-83CA-B562781981A0\\n PUBLISH_ONLY\\n liveApp****\\n 60\\n liveStream****\\n","errorExample":""}]', + ], + 'DescribeLiveDelayedStreamingUsage' => [ + 'summary' => '调用DescribeLiveDelayedStreamingUsage查询延播时长用量数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '需要查询的主播流域名。'."\n" + .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + .'- 若参数为空,默认返回所有直播域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ,默认返回近七天的数据。', 'type' => 'string', 'required' => false, 'example' => '2022-10-10T20:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间需大于起始时间,时间跨度≤10小时;日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2022-10-10T21:00:00Z'], + ], [ 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'testStream', - ], + 'schema' => ['description' => '流名,多个流名使用逗号(半角)分隔,默认为所有流名数据聚合输出。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], ], [ - 'name' => 'AccelerationArea', + 'name' => 'Region', 'in' => 'query', - 'schema' => [ - 'description' => '加速通道。', - 'type' => 'string', - 'required' => false, - 'example' => 'ap-southeast-1', - ], + 'schema' => ['description' => '查询不同直播中心, 支持批量地区查询,多个地区用逗号(半角)分隔。取值:'."\n" + .'- cn-beijing:北京'."\n" + .'- cn-shanghai:上海'."\n" + .'- cn-shenzhen:深圳'."\n" + .'- cn-qingdao:青岛'."\n" + .'- ap-southeast-1:新加坡'."\n" + .'- eu-central-1:德国'."\n" + .'- ap-northeast-1:东京'."\n" + .'- ap-southeast-5:雅加达'."\n" + ."\n" + .'不传值时默认为所有区域数据聚合输出。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], [ - 'name' => 'VideoCenter', + 'name' => 'SplitBy', 'in' => 'query', - 'schema' => [ - 'description' => '直播中心,取值:cn-beijing、cn-shanghai、cn-shenzhen、cn-qingdao、ap-northeast-1、ap-southeast-5、eu-central-1、ap-southeast-1、ap-south-1,分别表示位于北京、上海、深圳、青岛、日本、印尼、德国、新加坡的直播中心。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '分组键,若参数为空,则聚合输出用户数据,取值:'."\n" + .'- domain:域名。如果此参数Split(分组键)取值为domain时,返回参数Domain才生效。'."\n" + .'- region:直播中心地域。如果此参数Split(分组键)取值为region时,返回参数Region才生效。'."\n" + .'- stream:流名。如果此参数Split(分组键)取值为stream时,返回参数stream才生效。'."\n" + ."\n" + .'> 当分组键对应的参数不为空时才可以查询,否则返回错误。例如:当DomainName为空时不可以指定domain为分组键。', 'type' => 'string', 'required' => false, 'example' => 'domain'], ], [ - 'name' => 'IsGaInstance', + 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '查询全球加速实例,取值:'."\n" - .'- yes:查询全球加速实例状态。'."\n" - .'- no:查询全球加速实例和直播链路的绑定详情。', - 'type' => 'string', - 'required' => true, - 'example' => 'no', - 'enum' => [ - 'yes', - 'no', - ], - ], + 'schema' => ['description' => '查询数据的时间粒度。单位:秒。取值:'."\n" + .'- 300'."\n" + .'- 3600'."\n" + .'- 86400'."\n" + ."\n" + .'不传或传值不支持时,使用默认值3600秒。', 'type' => 'string', 'required' => false, 'example' => '3600'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回结果。', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'LivePrivateLineAvailGAs' => [ + 'DelayData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'LivePrivateLineAvailGA' => [ - 'description' => '全球加速实例配置详情。', + 'DelayDataItem' => [ + 'description' => '延播时长用量数据。', 'type' => 'array', 'items' => [ - 'description' => '全球加速实例配置详情。', + 'description' => '延播时长用量数据。', 'type' => 'object', 'properties' => [ - 'AccelerationArea' => [ - 'description' => '加速通道。', - 'type' => 'string', - 'example' => 'ap-southeast-1', - ], - 'AccelerationType' => [ - 'description' => '加速类型,取值:'."\n" - .'- play:播流加速。'."\n" - .'- publish:推流加速。', - 'type' => 'string', - 'example' => 'play', - ], - 'AppName' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'example' => 'live', - ], - 'BindingStatus' => [ - 'description' => '是否绑定到直播链路,取值:'."\n" - .'- yes:已绑定。'."\n" - .'- no:未绑定。', - 'type' => 'string', - 'example' => 'yes', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'demo.aliyundoc.com', - ], - 'IP' => [ - 'description' => '加速IP地址。', - 'type' => 'string', - 'example' => '127.0.0.1', - ], - 'InstanceId' => [ - 'description' => '全球加速实例ID。', - 'type' => 'string', - 'example' => 'ga-bp1iovsdpf01ym9su****', - ], - 'Status' => [ - 'description' => '实例状态,取值:'."\n" - .'- active:可用。'."\n" - .'- inactive:不可用。', - 'type' => 'string', - 'example' => 'active', - ], - 'StreamName' => [ - 'description' => '直播流名称。', - 'type' => 'string', - 'example' => 'testStream', - ], - 'Uid' => [ - 'description' => 'UID。', - 'type' => 'string', - 'example' => '1833220971116****', - ], - 'VideoCenter' => [ - 'description' => '直播中心。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], + 'DomainName' => ['description' => '用量域名,SplitBy指定domain时,分组输出。', 'type' => 'string', 'example' => 'example.com'], + 'Duration' => ['description' => '延播用量。', 'type' => 'integer', 'format' => 'int64', 'example' => '84'], + 'Region' => ['description' => '直播中心,SplitBy指定region时,分组输出。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'StreamName' => ['description' => '流名,SplitBy指定stream时,分组输出。', 'type' => 'string', 'example' => 'liveStream****'], + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ', 'type' => 'string', 'example' => '2022-10-10T20:00:00Z'], ], ], ], ], + 'description' => '', ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C4865B85-664B-19D3-BB16-C62FB83C8226', - ], + 'EndTime' => ['description' => '结束时间。日期格式按照 ISO8601 表示法,并使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ', 'type' => 'string', 'example' => '2022-10-10T21:00:00Z'], + 'RequestId' => ['description' => '该条任务请求ID。', 'type' => 'string', 'example' => '4B460F8B-993C-4F48-B98A-91081******'], + 'StartTime' => ['description' => '起始时间。日期格式按照 ISO8601 表示法,并使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ', 'type' => 'string', 'example' => '2022-10-10T20:00:00Z'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'InvalidParameter.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.', 'description' => ''], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified Time is malformed.', 'description' => '制定时间错误,请您确认该制定时间是否正确。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '直播服务未开通,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"LivePrivateLineAvailGAs\\": {\\n \\"LivePrivateLineAvailGA\\": [\\n {\\n \\"AccelerationArea\\": \\"ap-southeast-1\\",\\n \\"AccelerationType\\": \\"play\\",\\n \\"AppName\\": \\"live\\",\\n \\"BindingStatus\\": \\"yes\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"IP\\": \\"127.0.0.1\\",\\n \\"InstanceId\\": \\"ga-bp1iovsdpf01ym9su****\\",\\n \\"Status\\": \\"active\\",\\n \\"StreamName\\": \\"testStream\\",\\n \\"Uid\\": \\"1833220971116****\\",\\n \\"VideoCenter\\": \\"cn-shanghai\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"C4865B85-664B-19D3-BB16-C62FB83C8226\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C4865B85-664B-19D3-BB16-C62FB83C8226\\n \\n \\n xxx.example1.com\\n test\\n test\\n ga-bp1iovsdpf01ym9sulesm\\n 18332209711160785\\n 127.0.0.1\\n cn-shanghai\\n ap-southeast-1\\n active\\n play\\n yes\\n \\n \\n","errorExample":""}]', - 'title' => '查询全球加速配置', - 'description' => '请求参数IsGaInstance为yes时,表示查询全球加速实例状态,为no时,表示查询全球加速实例和直播链路的绑定详情。'."\n" - ."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DelayData\\": {\\n \\"DelayDataItem\\": [\\n {\\n \\"DomainName\\": \\"example.com\\",\\n \\"Duration\\": 84,\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"TimeStamp\\": \\"2022-10-10T20:00:00Z\\"\\n }\\n ]\\n },\\n \\"EndTime\\": \\"2022-10-10T21:00:00Z\\",\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-91081******\\",\\n \\"StartTime\\": \\"2022-10-10T20:00:00Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n b83f5c8c-b07b-4ac8-90c5-96c0f922d394\\n \\n \\n \\n \\n 2022-11-19T16:00:00Z\\n www.example.com\\n 60\\n \\n \\n 2022-11-19T17:00:00Z\\n www.example.com\\n 60\\n \\n \\n","errorExample":""}]', + 'title' => '查询延播时长数据', + 'description' => '- 查询用户延播服务用量数据,默认粒度为1小时粒度。'."\n" + .'- 最大查询时间跨度:31天。'."\n" + .'- 最小查询时间粒度:1小时。'."\n" + .'- 最大查询时间范围:31天。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'extraInfo' => '### 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP状态码 | 语义 |'."\n" - .'| ----- | --------- | ----------- | ------- |'."\n" - .'| InvalidDomain.NotFound | The domain provided does not exist in our records. | 404 | 当前账户下未查到域名。 |'."\n" - .'| InvalidParam | Parameter invalid. | 400 | 参数错误。 |'."\n" - .'| InternalError | The request processing has failed due to some unknown error. | 500 | 后台发生未知错误。 |'."\n", - ], - 'DescribeLiveStreamDelayConfig' => [ - 'summary' => '调用DescribeLiveStreamDelayConfig查询直播延迟时间。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDelayedStreamingUsage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveDetectNotifyConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -22653,31 +18973,13 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], ], 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '您的播放域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -22685,242 +18987,140 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '785C9CB0-EB8A-4912-BBF2-966BEFD32DC3', - ], - 'LiveStreamHlsDelayConfig' => [ - 'description' => 'HLS延迟。', - 'type' => 'object', - 'properties' => [ - 'Delay' => [ - 'description' => '播放延迟时间。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'Level' => [ - 'description' => '延迟级别。取值:'."\n" - ."\n" - .'- **short**:Delay小于等于2秒。'."\n" - ."\n" - .'- **medium**:Delay大于2秒,且小于等于4秒。'."\n" - ."\n" - .'- **long**:Delay大于4秒。', - 'type' => 'string', - 'example' => 'short', - ], - ], - ], - 'LiveStreamFlvDelayConfig' => [ - 'description' => 'FLV延迟。', - 'type' => 'object', - 'properties' => [ - 'Delay' => [ - 'description' => '播放延迟时间。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'Level' => [ - 'description' => '延迟级别。取值:'."\n" - ."\n" - .'- **short**:Delay小于等于2秒。'."\n" - ."\n" - .'- **medium**:Delay大于2秒,且小于等于4秒。'."\n" - ."\n" - .'- **long**:Delay大于4秒。', - 'type' => 'string', - 'example' => 'medium', - ], - ], - ], - 'LiveStreamRtmpDelayConfig' => [ - 'description' => 'RTMP延迟。', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E6******'], + 'LiveDetectNotifyConfig' => [ + 'description' => '回调配置。', 'type' => 'object', 'properties' => [ - 'Delay' => [ - 'description' => '播放延迟时间。单位:秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'Level' => [ - 'description' => '延迟级别。取值:'."\n" - ."\n" - .'- **short**:Delay小于等于2秒。'."\n" - ."\n" - .'- **medium**:Delay大于2秒,且小于等于4秒。'."\n" - ."\n" - .'- **long**:Delay大于4秒。', - 'type' => 'string', - 'example' => 'short', - ], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'NotifyUrl' => ['description' => '通知回调地址。', 'type' => 'string', 'example' => 'http://aliyundoc.com'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"785C9CB0-EB8A-4912-BBF2-966BEFD32DC3\\",\\n \\"LiveStreamHlsDelayConfig\\": {\\n \\"Delay\\": 3,\\n \\"Level\\": \\"short\\"\\n },\\n \\"LiveStreamFlvDelayConfig\\": {\\n \\"Delay\\": 5,\\n \\"Level\\": \\"medium\\"\\n },\\n \\"LiveStreamRtmpDelayConfig\\": {\\n \\"Delay\\": 4,\\n \\"Level\\": \\"short\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 785C9CB0-EB8A-4912-BBF2-966BEFD32DC3\\n \\n 3\\n short\\n \\n \\n 4\\n short\\n \\n \\n 5\\n medium\\n \\n","errorExample":""}]', - 'title' => '查询直播延迟时间', - 'description' => '先获取播流域名,再调用本接口查询直播延迟时间。'."\n" + 'errorCodes' => [ + 404 => [ + ['errorCode' => 'InvalidConfig.NotFound', 'errorMessage' => 'Config does not exist.', 'description' => ''], + ], + ], + 'title' => '查询审核回调URL', + 'summary' => '查询直播审核回调通知地址。', + 'description' => '- 先获取主播流域名,再调用本接口查询直播审核回调通知地址。'."\n" + ."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为1000次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'extraInfo' => '| HttpCode | 错误码|错误信息| 描述|'."\n" - .'|---------------|--------|'."\n" - .'| 500| Internal|The request processing has failed due to some unknown error.| 后台发生未知错误。|'."\n" - .'| 404| InvalidDomain.NotFound|The domain provided does not exist in our records.| 当前账户下未查到域名。|'."\n" - .'| 403| IllegalOperation|Illegal domain operate is not permitted.| 不支持当前操作,如:非直播类域名。|'."\n" - ."\n", - ], - 'SetLiveStreamDelayConfig' => [ - 'summary' => '调用SetLiveStreamDelayConfig配置直播延迟。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDetectNotifyConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDetectNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E6******\\",\\n \\"LiveDetectNotifyConfig\\": {\\n \\"DomainName\\": \\"example.com\\",\\n \\"NotifyUrl\\": \\"http://aliyundoc.com\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n \\n example.com\\n http://aliyundoc.com\\n \\n","errorExample":""}]', + ], + 'DescribeLiveDetectPornData' => [ + 'summary' => '调用DescribeLiveDetectPornData获取查询直播审核用量数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '需要查询的主播流域名。'."\n" + .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + ."\n" + .'- 若参数为空,默认返回所有直播域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'HlsDelay', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'HLS播放延迟时间。单位:秒。'."\n" - ."\n" - .'>该参数为空时,按照HlsLevel延迟级别对应的时间设置。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '4', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> - 最多可获取最近90天的数据。'."\n" + .'- 最小数据粒度为5分钟,取值为空则默认获取最近24小时数据。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T08:00:00Z'], ], [ - 'name' => 'HlsLevel', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'HLS延迟级别。配置了HlsDelay情况下忽略该参数。'."\n" - ."\n" - .'取值如下:'."\n" - ."\n" - .'- **short**(默认):表示延迟时间为3秒。'."\n" - ."\n" - .'- **medium**:表示延迟时间为6秒。'."\n" - ."\n" - .'- **long**:表示延迟时间为15秒。'."\n" - ."\n" - .'>如果HlsDelay和HlsLevel参数都为空,则按照默认值**short**进行配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'short', - ], + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T09:00:00Z'], ], [ - 'name' => 'FlvDelay', + 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => 'FLV播放延迟时间。单位:秒。'."\n" - ."\n" - .'>该参数为空时,按照FlvLevel延迟级别对应的时间设置。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '8', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ - 'name' => 'FlvLevel', + 'name' => 'Stream', 'in' => 'query', - 'schema' => [ - 'description' => 'FLV延迟级别。配置了FlvDelay情况下忽略该参数。'."\n" - ."\n" - .'取值如下:'."\n" - ."\n" - .'- **short**(默认):表示延迟时间为2秒。'."\n" - ."\n" - .'- **medium**:表示延迟时间为4秒。'."\n" - ."\n" - .'- **long**:表示延迟时间大于4秒。'."\n" - ."\n" - .'>如果FlvDelay和FlvLevel参数都为空,则按照默认值**short**进行配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'medium', - ], + 'schema' => ['description' => '播流名称。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], ], [ - 'name' => 'RtmpDelay', + 'name' => 'Fee', 'in' => 'query', - 'schema' => [ - 'description' => 'RTMP播放延迟时间。单位:秒。'."\n" - ."\n" - .'>该参数为空时,按照RtmpLevel延迟级别对应的时间设置。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '4', - ], + 'schema' => ['description' => '用户每天拥有免费的图片扫描额度。取值:'."\n" + ."\n" + .'- **free**'."\n" + .'- **charge**', 'type' => 'string', 'required' => false, 'example' => 'free'], ], [ - 'name' => 'RtmpLevel', + 'name' => 'Scene', 'in' => 'query', - 'schema' => [ - 'description' => 'RTMP延迟级别。配置了RtmpDelay情况下忽略该参数。'."\n" - ."\n" - .'取值如下:'."\n" - ."\n" - .'- **short**(默认):表示延迟时间为2秒。'."\n" - ."\n" - .'- **medium**:表示延迟时间为4秒。'."\n" - ."\n" - .'- **long**:表示延迟时间大于4秒。'."\n" - ."\n" - .'>如果RtmpDelay和RtmpLevel参数都为空,则按照默认值**short**进行配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'short', - ], + 'schema' => ['description' => '检测场景。取值:'."\n" + ."\n" + .'- **porn**(默认值):鉴黄。'."\n" + .'- **terrorism**:暴恐涉政。'."\n" + .'- **ad**:图文违规。'."\n" + .'- **live**:不良直播场景。'."\n" + .'- **logo**:logo检测。', 'type' => 'string', 'required' => false, 'example' => 'porn'], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => ['description' => '域名所属地域。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], + ], + [ + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => ['description' => '分组字段列表。多个字段用英文逗号(,)分隔。'."\n" + ."\n" + .'> 当**SplitBy**为空时,仅返回**TimeStamp**和**Count**。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****,liveStream****'], ], ], 'responses' => [ @@ -22928,52 +19128,93 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4C747C97-7ECD-4C61-8A92-67AD806331FF', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E'], + 'DetectPornData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => '每个时间间隔的网络带宽数据。', + 'type' => 'array', + 'items' => [ + 'description' => '每个时间间隔的网络带宽数据。', + 'type' => 'object', + 'properties' => [ + 'Domain' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'Region' => ['description' => '域名所属地域。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'App' => ['description' => '播流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'Stream' => ['description' => '播流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2017-12-10T15:00:05Z'], + 'Count' => ['description' => '审核数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'Scene' => ['description' => '检测场景。取值:'."\n" + ."\n" + .'- **porn**(默认值):鉴黄。'."\n" + .'- **terrorism**:暴恐涉政。'."\n" + .'- **ad**:图文违规。'."\n" + .'- **live**:不良直播场景。'."\n" + .'- **logo**:logo检测。', 'type' => 'string', 'example' => 'porn'], + 'Fee' => ['description' => '用户每天拥有免费的图片扫描额度。取值:'."\n" + ."\n" + .'- **free**'."\n" + .'- **charge**', 'type' => 'string', 'example' => 'free'], + ], + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4C747C97-7ECD-4C61-8A92-67AD806331FF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4C747C97-7ECD-4C61-8A92-67AD806331FF\\n","errorExample":""}]', - 'title' => '配置直播延迟', - 'description' => '- 本接口支持配置播流域名的延迟配置。'."\n" - ."\n" - .'- 因为服务端缓存内是整数个关键帧间隔(GOP),所以延迟不会小于GOP大小,真实的延迟需要按照GOP大小估算。例如RTMP配置RtmpDelay为4秒,GOP大小为2秒,则真实延迟最小为2秒(4秒减去2秒),最大为6秒(4秒加上2秒)。 如果GOP大于RtmpDelay延迟配置,比如GOP=5秒,,RtmpDelay=4秒,则延迟在0~9秒之间波动。'."\n" - ."\n" - .'- 纯音频延迟配置无效,默认延迟接近0。'."\n" - ."\n" - .'- HLS配置方式为:先计算切片大小=Delay/3,向下取整,最小不能小于1秒。然后计算切片最大个数,当切片大小大于等于3秒时为4个,其余情况为6个。'."\n" - ."\n" - .'- HLS实际切片大小不会小于GOP大小。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], + ], + ], + 'title' => '查询直播审核用量数据', + 'description' => '- 最小数据粒度为5分钟,若`StartTime`取值为空则默认获取最近24小时数据。'."\n" ."\n" - .'- HLS延迟计算方式为配置的切片大小*3。'."\n" + .'- 最多可获取最近90天的数据。'."\n" ."\n" - .'- 不调用该接口配置时,默认延迟时间为:RTMP为2秒;FLV为4秒;HLS一个切片大小为5秒,即延迟时间为15秒,最多6个切片。'."\n" + .'- 可以用来查询每个时间间隔的网络带宽数据。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为1000次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'extraInfo' => '| HttpCode | 错误码|错误信息| 描述|'."\n" - .'|---------------|--------|'."\n" - .'| 500| Internal|The request processing has failed due to some unknown error.| 后台发生未知错误。|'."\n" - .'| 404| InvalidDomain.NotFound|The domain provided does not exist in our records.| 当前账户下未查到域名。|'."\n" - .'| 403| IllegalOperation|Illegal domain operate is not permitted.| 不支持当前操作,如:非直播类域名。|'."\n" - .'| 400| InvalidNotifyUrl.Malformedl|Specified parameter NotifyUrl is not valid.| 不是一个合法的HTTP地址。|'."\n" - .'| 400| InvalidNotifyUrl.Unsafel| Specified NotifyUrl is not safe.| 非安全的NotifyUrl值。|', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '## 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" + .'|---------------------|----------|-----------------------------------|---------|'."\n" + .'| Throttling | Request was denied due to request throttling. | 503| 请求被流量控制限制。 |'."\n" + .'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | 域名不存在或不属于当前用户。 |'."\n", + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDetectPornData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DetectPornData\\": {\\n \\"DataModule\\": [\\n {\\n \\"Domain\\": \\"example.com\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"App\\": \\"liveApp****\\",\\n \\"Stream\\": \\"liveStream****\\",\\n \\"TimeStamp\\": \\"2017-12-10T15:00:05Z\\",\\n \\"Count\\": 2,\\n \\"Scene\\": \\"porn\\",\\n \\"Fee\\": \\"free\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n B955107D-E658-4E77-B913-E0AC3D31693E\\n \\n example.com\\n cn-shanghai\\n liveApp****\\n liveStream****\\n 2017-12-10T15:00:05Z\\n 2\\n porn\\n free\\n \\n","errorExample":""}]', ], 'DescribeLiveDomainBpsData' => [ 'summary' => '调用DescribeLiveDomainBpsData查询直播域名的网络带宽监控数据。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -22985,89 +19226,51 @@ 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '107009', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - .'若参数为空,默认返回所有直播域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流域名。支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + .'若参数为空,默认返回所有直播域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T08:00:00Z', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T08:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。结束时间需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T09:00:00Z', - ], + 'schema' => ['description' => '结束时间。结束时间需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'required' => false, 'example' => '2017-12-10T09:00:00Z'], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度。单位:秒。取值:'."\n" - .'- **300**(默认值)'."\n" - .'- **3600**'."\n" - .'- **86400**'."\n" - ."\n" - .'> - 不传或传值不支持时,取默认值**300**。'."\n" - .'- 查询时间粒度为**300**时,返回的bps数据值为300秒内平均每秒传输的bit。'."\n" - .'- 查询时间粒度为**3600**和**86400**时,返回的bps数据值为查询时间内所有300秒取值点的峰值。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '查询数据的时间粒度。单位:秒。取值:'."\n" + .'- **300**(默认值)'."\n" + .'- **3600**'."\n" + .'- **86400**'."\n" + ."\n" + .'> - 不传或传值不支持时,取默认值**300**。'."\n" + .'- 查询时间粒度为**300**时,返回的bps数据值为300秒内平均每秒传输的bit。'."\n" + .'- 查询时间粒度为**3600**和**86400**时,返回的bps数据值为查询时间内所有300秒取值点的峰值。', 'type' => 'string', 'required' => false, 'example' => '300'], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得。', - 'type' => 'string', - 'required' => false, - 'example' => 'alibaba', - ], + 'schema' => ['description' => '运营商英文名。通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得。', 'type' => 'string', 'required' => false, 'example' => 'alibaba'], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '区域英文名。通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得。', - 'type' => 'string', - 'required' => false, - 'example' => 'tianjin', - ], + 'schema' => ['description' => '区域英文名。通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得。', 'type' => 'string', 'required' => false, 'example' => 'tianjin'], ], ], 'responses' => [ @@ -23075,31 +19278,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2017-12-10T09:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2017-12-10T08:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'DomainName' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '查询数据的时间粒度,单位是秒。', - 'type' => 'string', - 'example' => '300', - ], + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2017-12-10T09:00:00Z'], + 'StartTime' => ['description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2017-12-10T08:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E'], + 'DomainName' => ['description' => '播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '查询数据的时间粒度,单位是秒。', 'type' => 'string', 'example' => '300'], 'BpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, @@ -23111,53 +19294,27 @@ 'description' => '每个时间间隔的网络带宽数据。', 'type' => 'object', 'properties' => [ - 'BpsValue' => [ - 'description' => 'bps数据值,单位:bit/second。', - 'type' => 'string', - 'example' => '11288111', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T08:00:05Z', - ], - 'HttpsBpsValue' => [ - 'description' => 'HTTPS的bps数据值,单位:bit/second。', - 'type' => 'string', - 'example' => '2000', - ], - 'HttpBpsValue' => [ - 'description' => 'HTTP的bps数据值,单位:bit/second。', - 'type' => 'string', - 'example' => '11286111', - ], + 'BpsValue' => ['description' => 'bps数据值,单位:bit/second。', 'type' => 'string', 'example' => '11288111'], + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2017-12-10T08:00:05Z'], + 'HttpsBpsValue' => ['description' => 'HTTPS的bps数据值,单位:bit/second。', 'type' => 'string', 'example' => '2000'], + 'HttpBpsValue' => ['description' => 'HTTP的bps数据值,单位:bit/second。', 'type' => 'string', 'example' => '11286111'], ], ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], ], ], 'eventInfo' => [ @@ -23177,103 +19334,101 @@ 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveDomainTrafficData' => [ - 'summary' => '查询直播域名网络流量监控数据。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveDomainBpsDataByLayer' => [ + 'summary' => '调用DescribeLiveDomainBpsDataByLayer按协议分类获取域名带宽及流量信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], + 'operationType' => 'read', 'systemTags' => [ 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。若参数为空,默认返回所有直播域名合并后的数据。'."\n" - .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流域名。支持批量域名查询,多个域名用英文逗号(,)分隔。若参数为空,默认返回所有域名合并后数据。', 'type' => 'string', 'required' => false, 'example' => 'pull.aliyundoc.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'>支持查询最近**90**天的数据。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T14:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'>不填默认读取过去24小时数据,最小数据粒度为5分钟。', 'type' => 'string', 'required' => false, 'example' => '2022-03-15T16:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T15:00:00Z', - ], + 'schema' => ['description' => '结束时间需大于起始时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2022-03-16T16:59:59Z'], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度。单位:秒。取值:'."\n" - .'- **300**(默认值)。'."\n" - .'- **3600**。'."\n" - .'- **86400**。'."\n" - ."\n" - .'> 不传或传值不支持时,使用默认值**300**秒。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '查询数据的时间粒度,单位:秒(s)。取值:'."\n" + ."\n" + .'- **300**'."\n" + ."\n" + .'- **3600**'."\n" + ."\n" + .'- **86400**'."\n" + .'> - 数据间隔≤3天,支持数据时间粒度300、3600、86400。'."\n" + .'> - 3天<数据间隔≤31天,支持数据时间粒度3600和86400。'."\n" + .'> - 数据间隔>31天,支持数据时间粒度86400。'."\n" + .'> - 不传和传的值不支持时,使用默认值300。', 'type' => 'string', 'required' => false, 'example' => '300'], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。通过[DescribeCdnRegionAndIsp](~~91077~~)获得,不传为所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'alibaba', - ], + 'schema' => ['description' => '运营商英文名,不传为所有运营商。'."\n" + .'>您可调用[DescribeLiveRegionAndIsp](~~91077~~)接口获取区域英文名和运营商英文名。', 'type' => 'string', 'required' => false, 'example' => 'tele***'], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '区域英文名。通过[DescribeCdnRegionAndIsp](~~91077~~)获得,不传为所有区域。', - 'type' => 'string', - 'required' => false, - 'example' => 'tianjin', - ], + 'schema' => ['description' => '区域英文名,不传为所有区域 。'."\n" + .'>您可调用[DescribeLiveRegionAndIsp](~~91077~~)接口获取区域英文名和运营商英文名。', 'type' => 'string', 'required' => false, 'example' => 'hangzhou'], + ], + [ + 'name' => 'Layer', + 'in' => 'query', + 'schema' => ['description' => '查询维度。可选:'."\n" + ."\n" + .'- 网络层(IPv4、IPv6)'."\n" + ."\n" + .'- 应用层(http、https、quic)'."\n" + ."\n" + .'- all(默认为all)'."\n" + ."\n" + .'允许值:all | IPv4 | IPv6 | http | https | quic(大小写敏感)。', 'type' => 'string', 'required' => false, 'example' => 'all'], ], ], 'responses' => [ @@ -23281,116 +19436,88 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2017-12-10T15:00:00Z', - ], - 'StartTime' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2017-12-10T14:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'DomainName' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '查询数据的时间粒度。', - 'type' => 'string', - 'example' => '300', - ], - 'TrafficDataPerInterval' => [ + 'BpsDataInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => '每个时间间隔的流量数据。', + 'description' => '每个时间间隔的每秒访问次数Bps。', 'type' => 'array', 'items' => [ - 'description' => '每个时间间隔的流量数据。', + 'description' => '每个时间间隔的每秒访问次数Bps。', 'type' => 'object', 'properties' => [ - 'TrafficValue' => [ - 'description' => '总流量。单位:Byte。', - 'type' => 'string', - 'example' => '454680793', - ], - 'HttpTrafficValue' => [ - 'description' => 'HTTP流量。单位:Byte。', - 'type' => 'string', - 'example' => '0', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T15:00:05Z', - ], - 'HttpsTrafficValue' => [ - 'description' => 'HTTPS流量。单位:Byte。', - 'type' => 'string', - 'example' => '454680793', - ], + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2022-03-15T16:00:00Z'], + 'TrafficValue' => ['description' => '总流量,单位:Byte。', 'type' => 'string', 'example' => '331'], + 'Value' => ['description' => '峰值带宽,单位:bps。', 'type' => 'string', 'example' => '0.56'], ], ], ], ], + 'description' => '', ], + 'DataInterval' => ['description' => '每条数据记录的时间间隔,以秒为单位。', 'type' => 'string', 'example' => '300'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BEA5625F-8FCF-48F4-851B-2A48566EA967'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified parameter StartTime is not valid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified parameter EndTime is not valid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'Specified end time does not math the specified start time,And the time range does not exceed 90 days.', 'description' => '开始时间与结束时间不匹配,开始时间不能晚于结束时间,且时间范围不超过90天。'], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T15:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T14:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TrafficValue\\": \\"454680793\\",\\n \\"HttpTrafficValue\\": \\"0\\",\\n \\"TimeStamp\\": \\"2017-12-10T15:00:05Z\\",\\n \\"HttpsTrafficValue\\": \\"454680793\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2017-12-10T15:00:00Z\\nB955107D-E658-4E77-B913-E0AC3D31693E\\nexample.com\\n\\n \\n 0\\n 454680793\\n 454680793\\n 2017-12-10T15:00:05Z\\n \\n\\n300\\n2017-12-10T14:00:00Z\\n","errorExample":"{\\n \\"DataInterval\\":\\"300\\",\\n \\"DomainName\\":\\"test.com\\",\\n \\"EndTime\\":\\"2017-12-10T21:00:00Z\\",\\n \\"RequestId\\":\\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"StartTime\\":\\"2017-12-10T20:00:00Z\\",\\n \\"TrafficDataPerInterval\\":{\\n \\"DataModule\\":[\\n {\\n \\"HttpTrafficValue\\":\\"0\\",\\n \\"HttpsTrafficValue\\":\\"423304182\\",\\n \\"TimeStamp\\":\\"2017-12-10T20:00:00Z\\",\\n \\"TrafficValue\\":\\"423304182\\"\\n },\\n {\\n \\"HttpTrafficValue\\":\\"0\\",\\n \\"HttpsTrafficValue\\":\\"454680793\\",\\n \\"TimeStamp\\":\\"2017-12-10T20:00:05Z\\",\\n \\"TrafficValue\\":\\"454680793\\"\\n }\\n ]\\n }\\n}"}]', - 'title' => '查询直播域名流量数据', - 'description' => '- 不指定StartTime和EndTime时,默认读取过去24小时的数据。'."\n" - .'- 本接口为监控数据接口,数据采集处理方式不同于计费,不能用于计算用量进行对账参考。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"BpsDataInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2022-03-15T16:00:00Z\\",\\n \\"TrafficValue\\": \\"331\\",\\n \\"Value\\": \\"0.56\\"\\n }\\n ]\\n },\\n \\"DataInterval\\": \\"300\\",\\n \\"RequestId\\": \\"BEA5625F-8FCF-48F4-851B-2A48566EA967\\"\\n}","errorExample":""},{"type":"xml","example":"\\nBEA5625F-8FCF-48F4-851B-2A48566EA967\\n300\\n\\n \\n 0.56\\n 331\\n 2022-03-15T16:00:00Z\\n \\n\\n","errorExample":""}]', + 'title' => '按协议分类查询域名带宽及流量数据', + 'description' => '支持数据存储时长90天。'."\n" + .'支持批量域名查询,多个域名之间用英文逗号(,)分隔,最多支持500个域名。多个域名会按照聚合结果输出。'."\n" + .'**StartTime**和**EndTime**数据间隔跨度不同返回时间粒度也不同,具体如下:'."\n" + ."\n" + .'- 数据间隔≤3天,返回时间粒度五分钟。'."\n" + ."\n" + .'- 3天<数据间隔≤31天,返回时间粒度1小时。'."\n" + ."\n" + .'- 数据间隔>31天,返回时间粒度1天。'."\n" + ."\n" + .'>如果**StartTime**和**EndTime**均未指定数值,默认返回当前时间起24小时内数据。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveStreamTranscodeMetricData' => [ - 'summary' => '查询指定域名app及流粒度转码数据。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainBpsDataByLayer'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainBpsDataByLayer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveDomainByCertificate' => [ + 'summary' => '根据证书信息获取加速域名。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -23401,451 +19528,237 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeCode' => '191820', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '域名名称。仅支持单个域名查询。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2023-06-11T02:46:40Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。需晚于开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2023-06-11T03:46:40Z', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'app', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'StreamName', + 'name' => 'SSLPub', 'in' => 'query', - 'schema' => [ - 'description' => '流的名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'stream', - ], + 'schema' => ['description' => '证书公钥,需要base64编码后再进行encodeURIComponent。支持pem格式。', 'type' => 'string', 'required' => true, 'example' => '******'], ], [ - 'name' => 'NextPageToken', + 'name' => 'SSLStatus', 'in' => 'query', - 'schema' => [ - 'description' => '分页查询token,每次查询最多返回5000行数据,当要查询的数据超过5000行时,响应数据会提供下次查询数据的起始索引。'."\n" - ."\n" - .'请求时传入该token,将从上一次查询结束的下一行继续查询未获取的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', - ], + 'schema' => ['description' => '表示返回的域名列表只包含开启或关闭HTTPS的域名。'."\n" + .'- **true**:开启。'."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回参数。', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => '域名名称。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2023-06-11T02:46:40Z', - ], - 'NextPageToken' => [ - 'description' => '分页查询token,每次查询最多返回5000行数据,当要查询的数据超过5000行时,响应数据会提供下次查询数据的起始索引。'."\n" - ."\n" - .'请求时传入该token,将从上一次查询结束的下一行继续查询未获取的数据。', - 'type' => 'string', - 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', - ], - 'PageSize' => [ - 'description' => '返回数据行数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5000', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'StartTime' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2023-06-11T03:46:40Z'."\n", - ], - 'StreamDetailData' => [ + 'CertInfos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'StreamData' => [ - 'description' => '返回数据组。', + 'CertInfo' => [ + 'description' => '证书信息列表。', 'type' => 'array', 'items' => [ - 'description' => '流数据。', + 'description' => '列表详情。', 'type' => 'object', 'properties' => [ - 'AppName' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'example' => 'app', - ], - 'Duration' => [ - 'description' => '时长。单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '300', - ], - 'Fps' => [ - 'description' => '帧率。', - 'type' => 'string', - 'enumValueTitles' => [ - 'normal' => 'normal', - 'high' => 'high', - 'def' => 'def', - ], - 'example' => 'high', - ], - 'Region' => [ - 'description' => '地区。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'Resolution' => [ - 'description' => '分辨率。取值:'."\n" - ."\n" - .'- 2K:2K。'."\n" - .'- 4K:4K。'."\n" - .'- LD:流畅。'."\n" - .'- SD:标清。'."\n" - .'- HD:高清。'."\n" - .'- def:音频。', - 'type' => 'string', - 'enumValueTitles' => [ - 'SD' => 'SD', - 'def' => 'def', - '4K' => '4K', - 'LD' => 'LD', - '2K' => '2K', - 'HD' => 'HD', - ], - 'example' => '4K', - ], - 'StreamName' => [ - 'description' => '流名称。', - 'type' => 'string', - 'example' => 'stream', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2023-06-11T02:45:00Z', - ], - 'TranscodeType' => [ - 'description' => '转码类型。取值:'."\n" - ."\n" - .'- H264STD:H.264普通转码。'."\n" - .'- H264NBHD:H.264窄带高清转码。'."\n" - .'- H265STD:H.265普通转码。'."\n" - .'- AUDIO:音频转码。', - 'type' => 'string', - 'enumValueTitles' => [ - 'H264NBHD' => 'H264NBHD', - 'AUDIO' => 'AUDIO', - 'H264STD' => 'H264STD', - 'H265STD' => 'H265STD', - ], - 'example' => 'H264STD', - ], + 'CertCaIsLegacy' => ['description' => '证书CA废弃状态。取值:'."\n" + .'- **yes**:已废弃。'."\n" + .'- **no**:正常,未废弃。', 'type' => 'string', 'example' => 'yes'], + 'CertExpireTime' => ['description' => '证书过期时间。日期格式按照 yyyy-MM-dd HH:mm:ss 表示法,并使用 UTC+8(东八区)时间。', 'type' => 'string', 'example' => '2024-12-03 09:46:02'], + 'CertExpired' => ['description' => '证书过期状态。 取值:'."\n" + .'- **yes**:已过期。'."\n" + .'- **no**:未过期。', 'type' => 'string', 'example' => 'yes'], + 'CertStartTime' => ['description' => '证书开始时间。日期格式按照 yyyy-MM-dd HH:mm:ss 表示法,并使用 UTC+8(东八区)时间。', 'type' => 'string', 'example' => '2023-11-02 09:46:03'], + 'CertSubjectCommonName' => ['description' => '证书所有者名称。', 'type' => 'string', 'example' => 'owner'], + 'CertType' => ['description' => '证书类型,取值:**RSA**、**DSA**、**ECDSA**。', 'type' => 'string', 'example' => 'RSA'], + 'DomainList' => ['description' => '如果该返回值不为空,则将该列表与证书做匹配,多个用半角逗号(,)分隔。', 'type' => 'string', 'example' => 'example.com,aliyundoc.com'], + 'DomainNames' => ['description' => '证书匹配的域名(DNS字段),多个用半角逗号(,)分隔。', 'type' => 'string', 'example' => '*.example.com,aliyundoc.com'], + 'Issuer' => ['description' => '证书颁发机构。', 'type' => 'string', 'example' => 'C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1'], ], ], ], ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified StartTime or EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidPageToken', - 'errorMessage' => 'The token of page is invalid.', - ], - [ - 'errorCode' => 'InvalidAppName.Mismatch', - 'errorMessage' => 'The AppName param must be passed.', - ], - [ - 'errorCode' => 'InvalidStreamProtocol.NotSupport', - 'errorMessage' => 'The specified stream protocol is not support.', - ], - [ - 'errorCode' => 'InvalidStreamName.LengthTooLong', - 'errorMessage' => 'The specified stream name is too long.', - ], - [ - 'errorCode' => 'InvalidAppName.LengthTooLong', - 'errorMessage' => 'The specified app name is too long.', - ], - [ - 'errorCode' => 'InvalidTime.ValueNotSupported', - 'errorMessage' => 'Specified Time is malformed.', - ], + ['errorCode' => 'Certificate.FormatError', 'errorMessage' => 'The format of the certificate is invalid.', 'description' => ''], + ['errorCode' => 'SSLPub.MissingParameter', 'errorMessage' => 'The Cert parameter is required.', 'description' => ''], + ['errorCode' => 'Decode.Error', 'errorMessage' => 'Error decoding the SSLPub certificate.', 'description' => ''], + ['errorCode' => 'Certificate.DecodeError', 'errorMessage' => 'An error occurred while decoding the certificate.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2023-06-11T02:46:40Z\\",\\n \\"NextPageToken\\": \\"UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\",\\n \\"PageSize\\": 5000,\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"StartTime\\": \\"2023-06-11T03:46:40Z\\\\n\\",\\n \\"StreamDetailData\\": {\\n \\"StreamData\\": [\\n {\\n \\"AppName\\": \\"app\\",\\n \\"Duration\\": 300,\\n \\"Fps\\": \\"high\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"Resolution\\": \\"4K\\",\\n \\"StreamName\\": \\"stream\\",\\n \\"TimeStamp\\": \\"2023-06-11T02:45:00Z\\",\\n \\"TranscodeType\\": \\"H264STD\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2023-06-11T02:46:40Z\\n 2023-06-11T03:46:40Z\\n\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\n 5000\\n example.com\\n \\n app\\n stream\\n cn-shanghai\\n 300\\n high\\n 2023-06-11T02:45:00Z\\n H264STD\\n 4K\\n \\n","errorExample":""}]', - 'title' => '按流粒度查询视频流的转码用量', - 'description' => '- 最大查询跨度:24小时。'."\n" - .'- 最小查询粒度:5分钟。'."\n" - .'- 最大查询范围:最近31天的数据。'."\n" - ."\n" + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"CertCaIsLegacy\\": \\"yes\\",\\n \\"CertExpireTime\\": \\"2024-12-03 09:46:02\\",\\n \\"CertExpired\\": \\"yes\\",\\n \\"CertStartTime\\": \\"2023-11-02 09:46:03\\",\\n \\"CertSubjectCommonName\\": \\"owner\\",\\n \\"CertType\\": \\"RSA\\",\\n \\"DomainList\\": \\"example.com,aliyundoc.com\\",\\n \\"DomainNames\\": \\"*.example.com,aliyundoc.com\\",\\n \\"Issuer\\": \\"C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D\\n \\n Nov 29 00:00:00 2016 GMT\\n Nov 29 23:59:59 2017 GMT\\n RSA\\n owner\\n yes\\n *.example.com,aliyundoc.com\\n yes\\n C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1\\n example.com,aliyundoc.com\\n \\n","errorExample":""}]', + 'title' => '查询证书匹配的域名列表', + 'description' => '调用本接口可根据证书信息查询匹配的加速域名。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveCenterStreamRateData' => [ - 'summary' => '查询直播中心流的音视频帧率、码率。', - 'methods' => [ - 'get', - 'post', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainByCertificate'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainByCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveDomainCertificateInfo' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '214643', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeCode' => '107011', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'AppName', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '推流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], - ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '流的名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2024-03-05T18:00:53Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2024-03-05T18:01:03Z', - ], + 'schema' => ['description' => '播流域名或推流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RateDatas' => [ - 'description' => '帧率码率列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'AudioFps' => [ - 'description' => '音频帧率。', - 'type' => 'string', - 'example' => '47', - ], - 'AudioRate' => [ - 'description' => '音频码率。', - 'type' => 'string', - 'example' => '600', - ], - 'Time' => [ - 'description' => '统计时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2024-03-05T18:00:53Z', - ], - 'VideoFps' => [ - 'description' => '视频帧率。', - 'type' => 'string', - 'example' => '30', - ], - 'VideoRate' => [ - 'description' => '视频码率。', - 'type' => 'string', - 'example' => '1953584', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5C1E43DC-9E51-4771-82C0-7D5ECEB547A1'], + 'CertInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'CertInfo' => [ + 'description' => '证书信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '个人测试证书(免费版)状态。取值:'."\n" + ."\n" + .'- **success**:已生效。'."\n" + .'- **checking**:检测域名是否在阿里云直播。'."\n" + .'- **cname_error**:域名没有切到阿里云直播。'."\n" + .'- **domain_invalid**:域名包含非法字符。'."\n" + .'- **unsupport_wildcard**:不支持泛域名。'."\n" + .'- **applying**:证书申请中。'."\n" + .'- **failed**:证书申请失败。'."\n" + ."\n" + .'>**status**只有在域名证书为个人测试证书(免费版)时有意义。当域名证书不是个人测试证书(免费版)时,会返回空值。', 'type' => 'string', 'example' => 'success'], + 'CertLife' => ['description' => '证书时长。'."\n" + .' - 有效期大于12个月的,显示XX year(s) XX month(s)。例如,2 years 3 months表示有效期为2年3个月。'."\n" + .'- 有效期小于12个月的,显示为XX month(s)。例如,3 months表示有效期为3个月。'."\n" + ."\n\n" + ."\n\n" + ."\n\n" + ."\n", 'type' => 'string', 'example' => '3 months'], + 'CertExpireTime' => ['description' => '证书过期时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'example' => '2018-06-03T22:03:39Z'], + 'SSLPub' => ['description' => '证书公钥。', 'type' => 'string', 'example' => 'yourSSLPub'], + 'SSLProtocol' => ['description' => 'HTTPS开启状态。取值:'."\n" + .'- **on**:已开启。'."\n" + .'- **off**:未开启。', 'type' => 'string', 'example' => 'on'], + 'CertType' => ['description' => '证书类型。取值:'."\n" + ."\n" + .'- **free**:个人测试证书(免费版)。'."\n" + .'- **cas**:云盾证书。'."\n" + .'- **upload**:自定义上传。', 'type' => 'string', 'example' => 'cas'], + 'CertDomainName' => ['description' => '证书匹配的播流域名或推流域名。', 'type' => 'string', 'example' => 'example.com'], + 'CertName' => ['description' => '证书名称。', 'type' => 'string', 'example' => 'Cert-****'], + 'CertOrg' => ['description' => '证书组织。', 'type' => 'string', 'example' => 'Let\'s Encrypt'], + 'DomainName' => ['description' => '播流域名或推流域名。', 'type' => 'string', 'example' => 'example.com'], + ], + 'description' => '', ], ], ], - ], - 'RequestId' => [ - 'title' => 'Id', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B6E125BE-E9B8-1103-8684-A35*******', + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Meter.ParamError', - 'errorMessage' => 'Param Error:%s,Please Check Again.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Meter.AuthError', - 'errorMessage' => 'Authentication Failed,Please Try Again.', - ], - ], - 500 => [ - [ - 'errorCode' => 'Meter.ServerInternalError', - 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', - ], - [ - 'errorCode' => 'Meter.DataSourceQueryError', - 'errorMessage' => 'Data Source Error:%s,Please Try Again.', - ], - ], - 502 => [ - [ - 'errorCode' => 'Meter.ReadyTsError', - 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RateDatas\\": [\\n {\\n \\"AudioFps\\": \\"47\\",\\n \\"AudioRate\\": \\"600\\",\\n \\"Time\\": \\"2024-03-05T18:00:53Z\\",\\n \\"VideoFps\\": \\"30\\",\\n \\"VideoRate\\": \\"1953584\\"\\n }\\n ],\\n \\"RequestId\\": \\"B6E125BE-E9B8-1103-8684-A35*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n B6E125BE-E9B8-1103-8684-A3585CB632F1\\n \\n 30\\n 1953584\\n 47\\n 600\\n \\n \\n","errorExample":""}]', - 'title' => '查询直播中心收录的流音视频帧率和码率', - 'description' => '返回时间粒度为5秒一个点位,单次查询不能超过3个小时的范围,可以查询30天内的数据。'."\n" + 'title' => '查询指定直播域名证书信息', + 'summary' => '获取指定直播域名证书信息。', + 'description' => '先获取直播域名,再调用本接口获取指定直播域名证书信息。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveDomainBpsDataByLayer' => [ - 'summary' => '调用DescribeLiveDomainBpsDataByLayer按协议分类获取域名带宽及流量信息。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '## 特殊错误码'."\n" + .'|ErrorCode 错误码 |Message 错误信息 |HTTP 状态 |语义 |'."\n" + .'| ------------- |------------ | ----- | ----- |'."\n" + .'|InvalidDomain.NotFound |The domain provided does not belong to you. |404 |域名不存在或不属于当前用户。|', + 'changeSet' => [ + ['createdAt' => '2024-09-29T03:20:41.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainCertificateInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\",\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"CertLife\\": \\"3 months\\",\\n \\"CertExpireTime\\": \\"2018-06-03T22:03:39Z\\",\\n \\"SSLPub\\": \\"yourSSLPub\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"CertType\\": \\"cas\\",\\n \\"CertDomainName\\": \\"example.com\\",\\n \\"CertName\\": \\"Cert-****\\",\\n \\"CertOrg\\": \\"Let\'s Encrypt\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n \\n success\\n 3 months\\n example.com\\n yourSSLPub\\n Let\'s Encrypt\\n example.com\\n cas\\n 2018-06-03T22:03:39Z\\n Cert-****\\n on\\n \\n\\n5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\n","errorExample":""}]', + ], + 'DescribeLiveDomainConfigs' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -23856,110 +19769,18 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。支持批量域名查询,多个域名用英文逗号(,)分隔。若参数为空,默认返回所有域名合并后数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'pull.aliyundoc.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'>不填默认读取过去24小时数据,最小数据粒度为5分钟。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-03-15T16:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间需大于起始时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-03-16T16:59:59Z', - ], - ], - [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度,单位:秒(s)。取值:'."\n" - ."\n" - .'- **300**'."\n" - ."\n" - .'- **3600**'."\n" - ."\n" - .'- **86400**'."\n" - .'> - 数据间隔≤3天,支持数据时间粒度300、3600、86400。'."\n" - .'> - 3天<数据间隔≤31天,支持数据时间粒度3600和86400。'."\n" - .'> - 数据间隔>31天,支持数据时间粒度86400。'."\n" - .'> - 不传和传的值不支持时,使用默认值300。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], - ], - [ - 'name' => 'IspNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名,不传为所有运营商。'."\n" - .'>您可调用[DescribeLiveRegionAndIsp](~~91077~~)接口获取区域英文名和运营商英文名。', - 'type' => 'string', - 'required' => false, - 'example' => 'tele***', - ], - ], - [ - 'name' => 'LocationNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => '区域英文名,不传为所有区域 。'."\n" - .'>您可调用[DescribeLiveRegionAndIsp](~~91077~~)接口获取区域英文名和运营商英文名。', - 'type' => 'string', - 'required' => false, - 'example' => 'hangzhou', - ], + 'schema' => ['description' => '您的推流域名或播流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'Layer', + 'name' => 'FunctionNames', 'in' => 'query', - 'schema' => [ - 'description' => '查询维度。可选:'."\n" - ."\n" - .'- 网络层(IPv4、IPv6)'."\n" - ."\n" - .'- 应用层(http、https、quic)'."\n" - ."\n" - .'- all(默认为all)', - 'type' => 'string', - 'required' => false, - 'example' => 'all', - ], + 'schema' => ['description' => '功能列表名称。多个功能使用英文逗号(,)分隔。更多详情,请参见下表**Functions功能说明**。', 'type' => 'string', 'required' => true, 'example' => 'set_req_host_header,set_hashkey_args'], ], ], 'responses' => [ @@ -23967,105 +19788,135 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'BpsDataInterval' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED'], + 'DomainConfigs' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的每秒访问次数Bps。', + 'DomainConfig' => [ + 'description' => '直播域名配置。', 'type' => 'array', 'items' => [ - 'description' => '每个时间间隔的每秒访问次数Bps。', 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2022-03-15T16:00:00Z', - ], - 'TrafficValue' => [ - 'description' => '总流量,单位:Byte。', - 'type' => 'string', - 'example' => '331', - ], - 'Value' => [ - 'description' => '峰值带宽,单位:bps。', - 'type' => 'string', - 'example' => '0.56', + 'Status' => ['description' => '配置状态,取值:'."\n" + ."\n" + .'- **success**:配置成功。'."\n" + .'- **testing**:测试中。'."\n" + .'- **failed**:配置失败。'."\n" + .'- **configuring**:配置中。', 'type' => 'string', 'example' => 'success'], + 'ConfigId' => ['description' => '配置ID。', 'type' => 'string', 'example' => '5003576'], + 'FunctionName' => ['description' => '域名配置功能名称。', 'type' => 'string', 'example' => 'set_req_host_header'], + 'FunctionArgs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FunctionArg' => [ + 'description' => '域名功能配置参数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ArgName' => ['description' => '参数名称。', 'type' => 'string', 'example' => 'domain_name'], + 'ArgValue' => ['description' => '参数值。', 'type' => 'string', 'example' => 'developer.aliyundoc.com'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - ], - 'DataInterval' => [ - 'description' => '每条数据记录的时间间隔,以秒为单位。', - 'type' => 'string', - 'example' => '300', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BEA5625F-8FCF-48F4-851B-2A48566EA967', + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified parameter StartTime is not valid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified parameter EndTime is not valid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'Specified end time does not math the specified start time,And the time range does not exceed 90 days.', - ], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidUser', 'errorMessage' => 'The user\'s account is invalid.', 'description' => ''], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"BpsDataInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2022-03-15T16:00:00Z\\",\\n \\"TrafficValue\\": \\"331\\",\\n \\"Value\\": \\"0.56\\"\\n }\\n ]\\n },\\n \\"DataInterval\\": \\"300\\",\\n \\"RequestId\\": \\"BEA5625F-8FCF-48F4-851B-2A48566EA967\\"\\n}","errorExample":""},{"type":"xml","example":"\\nBEA5625F-8FCF-48F4-851B-2A48566EA967\\n300\\n\\n \\n 0.56\\n 331\\n 2022-03-15T16:00:00Z\\n \\n\\n","errorExample":""}]', - 'title' => '按协议分类查询域名带宽及流量数据', - 'description' => '支持数据存储时长90天。'."\n" - .'支持批量域名查询,多个域名之间用英文逗号(,)分隔,最多支持500个域名。多个域名会按照聚合结果输出。'."\n" - .'**StartTime**和**EndTime**数据间隔跨度不同返回时间粒度也不同,具体如下:'."\n" - ."\n" - .'- 数据间隔≤3天,返回时间粒度五分钟。'."\n" - ."\n" - .'- 3天<数据间隔≤31天,返回时间粒度1小时。'."\n" - ."\n" - .'- 数据间隔>31天,返回时间粒度1天。'."\n" - ."\n" - .'>如果**StartTime**和**EndTime**均未指定数值,默认返回当前时间起24小时内数据。'."\n" + 'title' => '查询直播域名配置', + 'summary' => '查询直播域名配置,一次可查询多个功能配置。', + 'description' => '此接口一次可查询多个功能配置。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '## Functions功能说明'."\n" + ."\n\n" + .'>所有参数值均按照字符串类型处理。 某些功能,例如:**filetype_based_ttl_set**,可以设置多条纪录。当需要更新其中某条纪录时,可通过该条纪录的**configId**来指定。 '."\n" + ."\n\n" + .'| 名称 | 参数 |'."\n" + .'|---------------|--------|'."\n" + .'| **referer_white_list_set**:refer白名单。| **refer_domain_allow_list**:白名单列表,多个使用英文逗号(,)分隔。
**allow_empty**:是否允许空refer进入。取值:**on**或**off**。|'."\n" + .'| **referer_black_list_set**:refer黑名单。| **refer_domain_deny_list**:黑名单列表,多个使用英文逗号(,)分隔。
**allow_empty**:是否允许空refer进入。取值:**on**或**off**。|'."\n" + .'| **filetype_based_ttl_set**:文件过期时间设置。| **ttl**:cache时间。单位:秒。
**file_type**:文件类型。多个使用英文逗号(,)隔开。
**weight**:权重。取值范围:**1~99**。|'."\n" + .'| **path_based_ttl_set**:目录过期时间设置。| **ttl**:cache时间。单位:秒。
**path**:目录。必须以正斜线(/)开头。
**weight**:权重。取值范围:**1~99**。|'."\n" + .'| **oss_auth**:OSS鉴权Bucket。| **oss_bucket_id**:用户bucket名称。|'."\n" + .'| **ip_black_list_set**:IP黑名单。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" + .'| **ip_allow_list_set**:IP白名单。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" + .'| **ip_white_list_set**:访问频次控制免拦截。| **ip_list**:IP列表。多个使用英文逗号(,)隔开。|'."\n" + .'| **error_page**:错误页面重定向。| **error_code**:错误码。
**rewrite_page**:重定向页面。|'."\n" + .'| **set_req_host_header**:修改回源Host头。| **domain_name**:回源Host头内容。|'."\n" + .'| **set_hashkey_args**:忽略url参数。| **hashkey_args**:保留参数的列表。多个使用英文逗号(,)分隔。
**disable**:是否忽略所有参数。取值:仅支持on(忽略所有参数)或off(不忽略)。|'."\n" + .'| **aliauth**:阿里鉴权。| **auth_type**:鉴权类型。取值:**type_a**(鉴权A)、**no_auth**(关闭鉴权)。
**auth_key1**:鉴权key1,鉴权key需为16~32个字符,支持大写字母、小写字母、数字。
**auth_key2**:鉴权key2。
**ali_auth_delta**:自定义鉴权缓冲时间,单位:秒。建议最小设置为60秒,无上限限制。|'."\n" + .'| **remote_auth**:直播远程鉴权 。|**enable**:是否开启远程鉴权,必填项。取值:on或off。
**remote_auth_path** : 鉴权服务器地址,必填项。
**remote_auth_pattern** :鉴权模式串。有以下功能可设置:
- **param**:是否向鉴权服务器透传推流URL中的参数,取值pass(默认)或fail。
- **args_white**:透传指定参数设置,多个参数用英文逗号(,)分隔。
- **args_black**:不透传指定参数设置,多个参数用英文逗号(,)分隔。
- **code**:鉴权状态码,code=XXX,鉴权服务器在鉴权成功时返回给直播的HTTP状态码。例如:code=200。code=~XXX,鉴权服务器在鉴权失败时返回给直播的HTTP状态码。例如:code=~403。
- **delta** :鉴权超时时长。
- **retry**:鉴权超时重试次数。
- **timeout**:鉴权超时行为,取值:**pass**或**fail**。**pass**:视频直播将直接通过用户请求。**fail**:视频直播将响应鉴权失败状态码(403)给用户。
- **async**:异步鉴权,取值**on**(开启异步鉴权)或**off**(默认,关闭异步鉴权)。|'."\n" + .'| **set_resp_header**:设置响应头(浏览器端可见)。| **key**:响应头。
**value**:响应头内容。删除填写null。|'."\n" + .'| **https_force**:强制HTTPS跳转。| **enable**:功能开关。取值:**on**或**off**。https_force和http_force只能存在其中一个,两者为互斥关系,配置另外一个需要先删除原来的配置。|'."\n" + .'| **http_force**:强制HTTP跳转。| **enable**:功能开关。取值:**on**或**off**。https_force和http_force只能存在其中一个,两者为互斥关系,配置另外一个需要先删除原来的配置。|'."\n" + .'| **l2_oss_key**:L2 OSS 回源私钥。| **private_oss_auth**:是否开启私有OSS鉴权功能。取值:**on**或**off**。|'."\n" + .'| **green_manager**:鉴黄功能。| **enable**:是否开启鉴黄功能。取值:**on**或**off**。|'."\n" + .'| **tmd_signature**:自定义的访问频次控制规则。| **name**:规则名称。域名内不可重复。
**path**:可重复,需校验uri路径合法性。
**pathType**:匹配规则。**0**前缀匹配,**1**完全匹配。
**interval**:监测时长。单位:秒。参数限制必须≥10。
**count**:单IP访问次数。
**action**:阻断类型。**0**封禁,**1**人机识别。
**ttl**:阻断时长。单位:秒。|'."\n" + .'| **forward_scheme**:自适应回源。| **enable**:功能开关,取值:on或off。
**scheme_origin**:回源站协议(http、https、follow)。
**scheme_origin_port**:回源站协议端口(80、443、80:443)。|'."\n" + .'| **video_seek**:视频切片拖拽开关。| **enable**:功能开关,取值:on或off。|'."\n" + .'| **gzip**:页面Gzip优化。| **enable**:功能开关,取值:on或off。|'."\n" + .'| **tesla**:页面优化加速。| **enable**:功能开关,取值:on或off。|'."\n" + .'| **ali_ua**:User-Agent限制访问。| **ua**:User-Agent
**type**:取值类型(black、white)。|'."\n" + .'| **host_redirect**:rewrite功能。| **regex**:需要重写的URL,例如 ^/$。
**replacement**:目标URL,例如 /go/act/sale/tbzlsy.php。
**flag**:仅支持:redirect、break。|'."\n" + .'| **ipv6**:ipv6配置。| **switch**:必填,开关,支持on或off,开启功能,一旦开启后,如需关闭请取消勾选,不要删除配置,否则不生效。
**region**:开启IPv6功能的地区,取值:cn-beijing(北京)、cn-shanghai(上海)、cn-shenzhen(深圳)、cn-qingdao(青岛)、apsoutheast-1(新加坡)、eu-central-1(德国)、ap-northeast-1(东京)、ap-southeast-5(雅加达)。|'."\n" + .'| **ali_location**:区域限制访问。| **location**:地域列表。|'."\n" + .'| **type**:取值类型。| black、white。|'."\n" + .'| **enable**:功能开关。| 取值:on或off。|'."\n" + .'| **live_forbid_flv**:禁止播放flv。| 取值:on或off。|'."\n" + .'| **live_forbid_rtmp**:禁止播放rtmp。| 取值:on或off。|'."\n" + .'| **live_forbid_hls**:禁止播放hls。| 取值:on或off。|'."\n" + .'|**https_option**:http协议设置。 |**http2**:是否开启http2,默认为**off**。取值:**on**或**off**。
**live\\_http2**:是否开启live_http2,默认为**off**。取值:**on**或**off**。|', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveDomainPushBpsData' => [ - 'summary' => '调用DescribeLiveDomainPushBpsData获取推流域名的推流网络带宽监控数据。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainConfigs'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\",\\n \\"DomainConfigs\\": {\\n \\"DomainConfig\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"ConfigId\\": \\"5003576\\",\\n \\"FunctionName\\": \\"set_req_host_header\\",\\n \\"FunctionArgs\\": {\\n \\"FunctionArg\\": [\\n {\\n \\"ArgName\\": \\"domain_name\\",\\n \\"ArgValue\\": \\"developer.aliyundoc.com\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\nF8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\n\\n \\n success\\n set_req_host_header\\n 5003576\\n \\n \\n developer.aliyundoc.com\\n domain_name\\n \\n \\n \\n\\n","errorExample":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\",\\n \\"DomainConfigs\\": {\\n \\"DomainConfig\\": [\\n { \\n \\"Status\\": \\"success\\",\\n \\"FunctionArgs\\": {\\n \\"FunctionArg\\": [\\n {\\n \\"ArgName\\": \\"domain_name\\",\\n \\"ArgValue\\": \\"testscdn3.cdnpe.com\\"\\n }\\n ]\\n },\\n \\"ConfigId\\": 5003576,\\n \\"FunctionName\\": \\"set_req_host_header\\"\\n },\\n {\\n \\"FunctionArgs\\": {\\n \\"Status\\": \\"success\\",\\n \\"FunctionArg\\": [\\n {\\n \\"ArgName\\": \\"file_type\\",\\n \\"ArgValue\\": \\"txt\\"\\n },\\n {\\n \\"ArgName\\": \\"ttl\\",\\n \\"ArgValue\\": \\"13\\"\\n },\\n {\\n \\"ArgName\\": \\"weight\\",\\n \\"ArgValue\\": \\"8\\"\\n }\\n ]\\n },\\n \\"ConfigId\\": 5068995,\\n \\"FunctionName\\": \\"filetype_based_ttl_set\\"\\n }\\n ]\\n }\\n}"}]', + ], + 'DescribeLiveDomainDetail' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -24076,93 +19927,130 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeCode' => '107014', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], [ 'name' => 'DomainName', 'in' => 'query', + 'schema' => ['description' => '直播推流域名或播流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '推流域名。'."\n" - .'支持批量域名查询,多个域名用英文逗号(,)分隔。'."\n" - .'若参数为空,默认返回所有推流域名合并后数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'demo.aliyundoc.com', + 'type' => 'object', + 'properties' => [ + 'DomainDetail' => [ + 'description' => '域名配置详情。', + 'type' => 'object', + 'properties' => [ + 'CertName' => ['description' => '证书名称。', 'type' => 'string', 'example' => 'liveCert****'], + 'Cname' => ['description' => 'CNAME域名。为直播域名生成一个CNAME域名,需要在域名解析服务商处将直播域名CNAME解析到该域名。'."\n" + .'>由于Local DNS的解析记录存在缓存时间,因此在配置域名的CNAME解析记录之后大约会延迟10分钟才会显示CNAME解析记录配置成功。详细内容,请参见[CNAME解析常见问题](~~362010~~)。', 'type' => 'string', 'example' => 'learn.developer.aliyundoc.com'], + 'Description' => ['description' => '域名备注,说明信息。', 'type' => 'string', 'example' => 'test'], + 'DomainName' => ['description' => '直播推流域名或播流域名。', 'type' => 'string', 'example' => 'demo.aliyundoc.com'], + 'DomainStatus' => ['description' => '直播域名运行状态。取值:'."\n" + ."\n" + .'- **online**:启用。'."\n" + .'- **offline**:停用。'."\n" + .'- **configuring**:配置中。', 'type' => 'string', 'example' => 'online'], + 'GmtCreated' => ['description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'example' => '2018-07-27T06:51:25Z'], + 'GmtModified' => ['description' => '最近修改时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'example' => '2018-08-07T06:51Z'], + 'LiveDomainType' => ['description' => '域名业务类型。取值:'."\n" + ."\n" + .'- **liveVideo**:播流域名。'."\n" + .'- **liveEdge**:边缘推流域名。', 'type' => 'string', 'example' => 'liveVideo'], + 'Region' => ['description' => '域名所属地域。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'SSLProtocol' => ['description' => '是否开启SSL证书。取值:'."\n" + ."\n" + .'- **on**:开启。'."\n" + .'- **off**:关闭。', 'type' => 'string', 'example' => 'on'], + 'SSLPub' => ['description' => '证书公钥。', 'type' => 'string', 'example' => 'Public Key'], + 'Scope' => ['description' => '加速区域。取值:'."\n" + ."\n" + .'- **domestic**:中国内地。'."\n" + .'- **overseas**:海外及港澳台加速。'."\n" + .'- **global**:全球加速。', 'type' => 'string', 'example' => 'domestic'], + 'ResourceGroupId' => ['description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-**k3bpq2yjw22**'], + ], + ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '09ABE829-6CD3-4FE0-AFEE-556113E29727'], + ], + 'description' => '', ], ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '获取指定直播域名配置的基本信息', + 'summary' => '查询指定推流域名或播流域名的基本配置信息。', + 'description' => '本接口支持查询指定推流域名或播流域名的基本配置信息。'."\n" + .'如果是新增域名的查询,域名配置完成需要一定时间,分钟级别,完全配置成功后可支持查询。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-25T07:00:46.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2022-08-31T08:13:45.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainDetail'], + ], + ], + 'ramActions' => [ [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'不写默认读取过去24小时数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DomainDetail\\": {\\n \\"CertName\\": \\"liveCert****\\",\\n \\"Cname\\": \\"learn.developer.aliyundoc.com\\",\\n \\"Description\\": \\"test\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"GmtCreated\\": \\"2018-07-27T06:51:25Z\\",\\n \\"GmtModified\\": \\"2018-08-07T06:51Z\\",\\n \\"LiveDomainType\\": \\"liveVideo\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"SSLPub\\": \\"Public Key\\",\\n \\"Scope\\": \\"domestic\\",\\n \\"ResourceGroupId\\": \\"rg-**k3bpq2yjw22**\\"\\n },\\n \\"RequestId\\": \\"09ABE829-6CD3-4FE0-AFEE-556113E29727\\"\\n}","type":"json"}]', + ], + 'DescribeLiveDomainFrameRateAndBitRateData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], + ], + 'parameters' => [ [ - 'name' => 'Interval', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度。单位:秒。取值:'."\n" - ."\n" - .'- **300**。'."\n" - .'- **3600**。'."\n" - .'- **86400**。'."\n" - ."\n" - .'不传和传的值不支持时,使用默认值300秒。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'IspNameEn', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名.'."\n" - .'可通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得,不传默认为所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'alibaba', - ], + 'schema' => ['description' => '推流域名。'."\n" + .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'LocationNameEn', + 'name' => 'QueryTime', 'in' => 'query', - 'schema' => [ - 'description' => '区域英文名。'."\n" - .'可通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得,不传默认为所有区域。', - 'type' => 'string', - 'required' => false, - 'example' => 'tianjin', - ], + 'schema' => ['description' => '查询时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'required' => true, 'example' => '2019-02-21T08:00:00Z'], ], ], 'responses' => [ @@ -24170,103 +20058,74 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'DomainName' => [ - 'description' => '查询的推流域名。', - 'type' => 'string', - 'example' => 'demo.aliyundoc.com', - ], - 'DataInterval' => [ - 'description' => '所查询数据的时间粒度。', - 'type' => 'string', - 'example' => '300', - ], - 'BpsDataPerInterval' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C3F2C2C4-59BB-4B62-81FF-345BE557E3E3'], + 'FrameRateAndBitRateInfos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的网络带宽数据。', + 'FrameRateAndBitRateInfo' => [ + 'description' => '播流的帧率和码率信息。', 'type' => 'array', 'items' => [ + 'description' => '播流的帧率和码率信息。', 'type' => 'object', 'properties' => [ - 'BpsValue' => [ - 'description' => 'bps数据值。单位:bit/s。', - 'type' => 'string', - 'example' => '11288111', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], + 'VideoFrameRate' => ['description' => '直播流的视频帧率。单位:FPS。', 'type' => 'number', 'format' => 'float', 'example' => '24.9'], + 'StreamUrl' => ['description' => '直播流的URL。', 'type' => 'string', 'example' => 'rtmp://demo.aliyundoc.com/test/liveStream****_3_4'], + 'AudioFrameRate' => ['description' => '直播流的音频帧率。单位:FPS。', 'type' => 'number', 'format' => 'float', 'example' => '42.9'], + 'BitRate' => ['description' => '直播流的码率。单位:Bps。', 'type' => 'number', 'format' => 'float', 'example' => '30693.96'], ], ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], + ['errorCode' => 'InvalidQueryTime.Exceed', 'errorMessage' => 'QueryTime exceed three month.', 'description' => '查询时间距离当前时间超过三个月。'], + ['errorCode' => 'InvalidQueryTime.Malformed', 'errorMessage' => 'Specified QueryTime is malformed.', 'description' => '指定的查询时间无效。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"BpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"BpsValue\\": \\"11288111\\",\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2017-12-10T21:00:00Z\\n 2017-12-10T20:00:00Z\\n 3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\n demo.aliyundoc.com\\n 300\\n \\n 11288111\\n 2017-12-10T20:00:00Z\\n \\n","errorExample":""}]', - 'title' => '查询推流域名推流网络带宽监控数据', - 'description' => '- 获取的带宽数据单位为bit/s。'."\n" - .'- 支持批量域名查询,多个域名用英文逗号(,)分隔。'."\n" - .'- 不指定StartTime和EndTime时,默认读取过去24小时的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" - .'- 最多可获取最近90天的数据。'."\n" + 'title' => '查询直播域名下流帧率和码率数据', + 'summary' => '查询推流域名下流帧率和码率数据。', + 'description' => '调用本接口查询的推流实时码率和帧率可以用来感知上行推流质量。数据采集和统计有一定延迟,建议查询5分钟前的数据。'."\n" + ."\n" + .'>请使用本接口替换原有的DescribeLiveStreamsFrameRateAndBitRateData(已废弃)接口。'."\n" + ."\n\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveDomainPushTrafficData' => [ - 'summary' => '调用DescribeLiveDomainPushTrafficData获取推流域名推流流量监控数据。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainFrameRateAndBitRateData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C3F2C2C4-59BB-4B62-81FF-345BE557E3E3\\",\\n \\"FrameRateAndBitRateInfos\\": {\\n \\"FrameRateAndBitRateInfo\\": [\\n {\\n \\"VideoFrameRate\\": 24.9,\\n \\"StreamUrl\\": \\"rtmp://demo.aliyundoc.com/test/liveStream****_3_4\\",\\n \\"AudioFrameRate\\": 42.9,\\n \\"BitRate\\": 30693.96\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n C3F2C2C4-59BB-4B62-81FF-345BE557E3E3\\n \\n \\n 24.9\\n 30693.96\\n 42.9\\n rtmp://demo.aliyundoc.com/test/liveStream****_3_4\\n \\n \\n","errorExample":""}]', + ], + 'DescribeLiveDomainLimit' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -24277,149 +20136,50 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '推流域名。'."\n" - .'支持批量域名查询,多个域名用英文逗号(,)分隔。'."\n" - .'若参数为空,默认返回所有推流域名合并后数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'demo.aliyundoc.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'不填默认读取过去24小时数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], - ], - [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度。单位:秒。取值:'."\n" - ."\n" - .'- **300**。'."\n" - .'- **3600**。'."\n" - .'- **86400**。'."\n" - ."\n" - .'不传和传的值不支持时,使用默认值300秒。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], - ], - [ - 'name' => 'IspNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - .'可通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得,不传默认为所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'alibaba', - ], - ], - [ - 'name' => 'LocationNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => '区域英文名。'."\n" - .'可通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得,不传默认为所有区域。', - 'type' => 'string', - 'required' => false, - 'example' => 'tianjin', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '推流数量限制和转码数量限制列表。', 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'DomainName' => [ - 'description' => '推流域名。', - 'type' => 'string', - 'example' => 'demo.aliyundoc.com', - ], - 'DataInterval' => [ - 'description' => '数据时间粒度。', - 'type' => 'string', - 'example' => '300', - ], - 'TrafficDataPerInterval' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A3136B58-5876-4168-83CA-B562********'], + 'LiveDomainLimitList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的流量数据。', + 'LiveDomainLimit' => [ + 'description' => '推流数量限制和转码数量限制列表。', 'type' => 'array', 'items' => [ - 'description' => '流量数据时间粒度。', + 'description' => '推流数量限制和转码数量限制列表。', 'type' => 'object', 'properties' => [ - 'TrafficValue' => [ - 'description' => '流量数据值。单位:Byte。', - 'type' => 'string', - 'example' => '1288111', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T20:05:00Z', - ], + 'LimitTranscodeNum' => ['description' => '转码数量限制。单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'CurrentTranscodeNum' => ['description' => '域名当前的转码流数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'LimitNum' => ['description' => '推流数量限制。单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'LimitTransferNum' => ['description' => '中心转推数量限制,单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'CurrentNum' => ['description' => '域名当前的原始流数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'CurrentTransferNum' => ['description' => '域名当前的中心转推流数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'DomainName' => ['description' => '您查询的主播流域名。', 'type' => 'string', 'example' => 'example.com'], ], ], ], ], + 'description' => '', ], ], ], @@ -24427,1192 +20187,780 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TrafficValue\\": \\"1288111\\",\\n \\"TimeStamp\\": \\"2017-12-10T20:05:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2017-12-10T21:00:00Z\\n3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\ndemo.aliyundoc.com\\n\\n \\n 1288111\\n 2017-12-10T20:05:00Z\\n \\n\\n300\\n2017-12-10T20:00:00Z\\n","errorExample":""}]', - 'title' => '查询推流域名推流流量监控数据', - 'description' => '- 获取的流量监控数据单位为Byte。'."\n" - .'- 支持批量域名查询,多个域名用英文逗号(,)分隔。'."\n" - .'- 不指定StartTime和EndTime时,默认读取过去24小时的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" - .'- 最多可获取最近90天的数据。'."\n" + 'title' => '查询域名推流数量限制和转码数量限制', + 'summary' => '调用DescribeLiveDomainLimit查询指定播流域名的推流数量限制和转码数量限制。', + 'description' => '本接口支持的播流域名为主播流域名。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveStreamPushMetricDetailData' => [ - 'summary' => '查询指定域名推流app及流粒度数据。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP 状态码 |语义|'."\n" + .'|--------|--------|--------|--------|'."\n" + .'|Missing DomainName|DomainName is mandatory for this action.|400|缺少参数。|'."\n" + .'|InvalidParam|Parameter invalid.|400|参数错误。|'."\n" + .'|InvalidDomain.NotFound|The domain provided does not exist in our records.|404|当前账户下未查到此域名。|', + 'changeSet' => [ + ['createdAt' => '2024-01-23T07:50:24.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainLimit', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562********\\",\\n \\"LiveDomainLimitList\\": {\\n \\"LiveDomainLimit\\": [\\n {\\n \\"LimitTranscodeNum\\": 50,\\n \\"CurrentTranscodeNum\\": 10,\\n \\"LimitNum\\": 100,\\n \\"LimitTransferNum\\": 50,\\n \\"CurrentNum\\": 10,\\n \\"CurrentTransferNum\\": 10,\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n A3136B58-5876-4168-83CA-B562781981A0\\n \\n 50\\n 10\\n 100\\n 50\\n 10\\n 10\\n example.com\\n \\n","errorExample":""}]', + ], + 'DescribeLiveDomainLog' => [ + 'summary' => '获取直播指定域名的原始访问日志的下载地址。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', 'systemTags' => [ 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeCode' => '107021', + 'abilityTreeNodes' => ['FEATURElive066BXV'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '- 需要查询的加速域名。仅支持单个域名查询,传多个域名将报错。'."\n" - .'- 不指定AppName和StreamName时,按指定加速域名返回此域名下所有流粒度的数据,所有查询数据不聚合。'."\n" - .'- DomainName不为空且AppName为all和StreamName为all时,返回指定加速域名下所有流粒度的聚合数据。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流域名或推流域名。'."\n" + .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。'."\n" + .'> - 只支持单个域名查询。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页大小。取值:'."\n" + ."\n" + .'- **1~1000**之间的任意整数。'."\n" + .'- 默认值为**300**。'."\n" + .'- 最大值为**1000**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '20', 'default' => '300'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '当前页码。'."\n" + .'取值范围为[1,9223372036854775807]'."\n" + .'>若不指定PageNumber查询,将默认返回第一页数据。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'default' => '1'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。'."\n" - ."\n" - .'格式为:YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2022-09-10T20:00:00Z', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '2016-10-20T04:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'结束时间需大于起始时间。起始时间和结束时间,间隔不超过31天。', 'type' => 'string', 'required' => false, 'example' => '2016-10-20T05:00:00Z'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '获取数据结束时间点,日期格式按照ISO8601表示法,并使用UTC时间,结束时间需大于起始时间,且不能相差超过1天。'."\n" - ."\n" - .'格式为:YYYY-MM-DDThh:mm:ssZ。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2022-09-10T21:00:00Z', + 'type' => 'object', + 'properties' => [ + 'DomainName' => ['description' => '播流域名或推流域名。'."\n", 'type' => 'string', 'example' => 'example.com'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'DomainLogDetails' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DomainLogDetail' => [ + 'description' => 'DomainLogDetail组成的数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'LogCount' => ['description' => '本页返回的总条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'LogInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LogInfoDetail' => [ + 'description' => 'LogInfoDetail组成的数据。'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2016-10-20T05:00:00Z'], + 'LogSize' => ['description' => '日志大小。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'StartTime' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2016-10-20T04:00:00Z'], + 'LogName' => ['description' => '日志名称。', 'type' => 'string', 'example' => 'developer.aliyundoc.com_2016_10_20_040000_050000.gz'], + 'LogPath' => ['description' => '日志路径。'."\n", 'type' => 'string', 'example' => 'learn.aliyundoc.com/developer.aliyundoc.com/2016_10_20/example.aliyundoc.com_2016_10_20_040000_050000.gz?Expires=1522659931&OSSAccessKeyId=LTAI******eo4ZEuA&Signature=C01p%2BtA%******KP9Sru2Oxwy7Do0%3D'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + 'PageInfos' => [ + 'description' => '页面信息。', + 'type' => 'object', + 'properties' => [ + 'PageIndex' => ['description' => '返回数据的页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '分页大小。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'Total' => ['description' => '总日志条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', ], ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"DomainLogDetails\\": {\\n \\"DomainLogDetail\\": [\\n {\\n \\"LogCount\\": 10,\\n \\"LogInfos\\": {\\n \\"LogInfoDetail\\": [\\n {\\n \\"EndTime\\": \\"2016-10-20T05:00:00Z\\",\\n \\"LogSize\\": 10,\\n \\"StartTime\\": \\"2016-10-20T04:00:00Z\\",\\n \\"LogName\\": \\"developer.aliyundoc.com_2016_10_20_040000_050000.gz\\",\\n \\"LogPath\\": \\"learn.aliyundoc.com/developer.aliyundoc.com/2016_10_20/example.aliyundoc.com_2016_10_20_040000_050000.gz?Expires=1522659931&OSSAccessKeyId=LTAI******eo4ZEuA&Signature=C01p%2BtA%******KP9Sru2Oxwy7Do0%3D\\"\\n }\\n ]\\n },\\n \\"PageInfos\\": {\\n \\"PageIndex\\": 1,\\n \\"PageSize\\": 20,\\n \\"Total\\": 20\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\nexample.com\\n\\n \\n 10\\n \\n \\n 10\\n 2016-10-20T05:00:00Z\\n 2016-10-20T04:00:00Z\\n developer.aliyundoc.com_2016_10_20_040000_050000.gz\\n learn.aliyundoc.com/developer.aliyundoc.com/2016_10_20/example.aliyundoc.com_2016_10_20_040000_050000.gz?Expires=1522659931&OSSAccessKeyId=LTAI******eo4ZEuA&Signature=C01p%2BtA%******KP9Sru2Oxwy7Do0%3D\\n \\n \\n \\n 20\\n 20\\n 1\\n \\n \\n\\n","errorExample":""}]', + 'title' => '查询日志下载地址', + 'description' => '- 调用一次API仅支持查询单个域名的离线日志。'."\n" + .'- 可选参数StartTime和EndTime需要同时指定,指定起止时间后查询指定时间范围内的日志。'."\n" + .'- 不指定StartTime和EndTime时,默认读取过去24小时的日志数据。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-29T03:51:17.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainLog'], + ], + ], + 'ramActions' => [ [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。指定应用名称,查询对应应用流粒度的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DescribeLiveDomainMapping' => [ + 'summary' => '查询推流域名、主播流域名和子播流域名映射。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'StreamName', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。指定StreamName时,按指定AppName的指定StreamName,返回流粒度的数据(指定StreamName时,必须指定AppName)。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'NextPageToken', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '分页查询token,每次查询最多返回5000行数据,当要查询的数据超过5000行时,响应数据会提供下次查询数据的起始索引。'."\n" - ."\n" - .'请求时传入该token,将从上一次查询结束的下一行继续查询未获取的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', - ], + 'schema' => ['description' => '您要查询的域名。域名可以是以下类型:'."\n" + ."\n" + .'- 推流域名。'."\n" + ."\n" + .'- 主播流域名。'."\n" + ."\n" + .'- 子播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'EndTime' => [ - 'description' => '获取数据结束时间点,日期格式按照ISO8601表示法,并使用UTC时间。'."\n" - ."\n" - .'格式为:YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'example' => '2022-09-10T21:00:00Z', - ], - 'NextPageToken' => [ - 'description' => '分页查询token,每次查询最多返回5000行数据,当要查询的数据超过5000行时,响应数据会提供下次查询数据的起始索引。'."\n" - ."\n" - .'请求时传入该token,将从上一次查询结束的下一行继续查询未获取的数据。', - 'type' => 'string', - 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', - ], - 'PageSize' => [ - 'description' => '返回数据行数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5000', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5EBF2AC3-4B73-40A5-8B32-83F49D5F035E', - ], - 'StartTime' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。'."\n" - ."\n" - .'格式为:YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'example' => '2022-09-10T20:00:00Z', - ], - 'StreamDetailData' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F6CD8'], + 'LiveDomainModels' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'StreamData' => [ - 'description' => '返回数据组。', + 'LiveDomainModel' => [ + 'description' => '直播域名映射列表。', 'type' => 'array', 'items' => [ - 'description' => '返回数据组。', + 'description' => '直播域名映射列表。', 'type' => 'object', 'properties' => [ - 'AppName' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'ReqBps' => [ - 'description' => '流每分钟总带宽,单位:Bps。', - 'type' => 'number', - 'format' => 'float', - 'example' => '133.33', - ], - 'ReqTraffic' => [ - 'description' => '流每分钟总流量,单位:Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000', - ], - 'StreamName' => [ - 'description' => '流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2022-09-10T20:00:00Z', - ], + 'Type' => ['description' => '查询域名的属性。取值:'."\n" + ."\n" + .'- **vhost**:主播流域名。'."\n" + .'- **publish**:推流域名。'."\n" + .'- **play**:子播流域名。', 'type' => 'string', 'example' => 'play'], + 'DomainName' => ['description' => '查询域名的映射域名。', 'type' => 'string', 'example' => 'example.aliyundoc.com'], ], ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified StartTime or EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidPageToken', - 'errorMessage' => 'The token of page is invalid.', - ], - [ - 'errorCode' => 'InvalidAppName.Mismatch', - 'errorMessage' => 'The AppName param must be passed.', - ], - [ - 'errorCode' => 'InvalidStreamProtocol.NotSupport', - 'errorMessage' => 'The specified stream protocol is not support.', - ], - [ - 'errorCode' => 'InvalidStreamName.LengthTooLong', - 'errorMessage' => 'The specified stream name is too long.', - ], - [ - 'errorCode' => 'InvalidAppName.LengthTooLong', - 'errorMessage' => 'The specified app name is too long.', - ], - [ - 'errorCode' => 'InvalidTime.ValueNotSupported', - 'errorMessage' => 'Specified Time is malformed.', - ], - ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2022-09-10T21:00:00Z\\",\\n \\"NextPageToken\\": \\"UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\",\\n \\"PageSize\\": 5000,\\n \\"RequestId\\": \\"5EBF2AC3-4B73-40A5-8B32-83F49D5F035E\\",\\n \\"StartTime\\": \\"2022-09-10T20:00:00Z\\",\\n \\"StreamDetailData\\": {\\n \\"StreamData\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"ReqBps\\": 133.33,\\n \\"ReqTraffic\\": 1000,\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"TimeStamp\\": \\"2022-09-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n example.com\\n 2022-09-10T21:00:00Z\\n UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\n 5000\\n 5EBF2AC3-4B73-40A5-8B32-83F49D5F035E\\n 2022-09-10T20:00:00Z\\n \\n liveApp****\\n 133.33\\n 1000\\n liveStream****\\n 2022-09-10T20:00:00Z\\n \\n","errorExample":""}]', - 'title' => '查询指定域名推流流粒度批量数据', - 'description' => '- 仅支持单个域名查询,多个域名会报错。'."\n" - .'- 数据最大查询跨度:24小时。'."\n" - .'- 数据最小查询粒度:1分钟。'."\n" - .'- 数据最大查询范围:31天。'."\n" - .'- 本接口为监控数据接口,数据采集处理方式不同于计费,不能用于计算用量进行对账参考。'."\n" + 'title' => '查询直播域名映射', + 'description' => '先获取需要查询的推流域名、主播流域名和子播流域名,再调用本接口查询直播域名映射。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveDomainPublishErrorCode' => [ - 'summary' => '查询推流域名下某个时间段内的推流状态码。', - 'methods' => [ - 'get', - 'post', + .'本接口的单用户QPS限制为500次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-29T03:51:17.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainMapping'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainMapping', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F6CD8\\",\\n \\"LiveDomainModels\\": {\\n \\"LiveDomainModel\\": [\\n {\\n \\"Type\\": \\"play\\",\\n \\"DomainName\\": \\"example.aliyundoc.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F6CD8\\n \\n play\\n example.aliyundoc.com\\n \\n","errorExample":""}]', + ], + 'DescribeLiveDomainMonitoringUsageData' => [ + 'summary' => '调用DescribeLiveDomainMonitoringUsageData获取域名广目监播用量数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '204356', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeCode' => '195294', + 'abilityTreeNodes' => ['FEATUREliveSM955S'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '推流域名,允许传入多个推流域名,多个域名之间用英文逗号(,)分隔。'."\n" - ."\n" - .'> 该参数为必填参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'example1.aliyundoc.com,example2.aliyundoc.com', - ], + 'schema' => ['description' => '需要查询的主播流域名。'."\n" + ."\n" + .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + .'- 若参数为空,默认返回所有直播域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'AppName', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '按照AppName进行过滤汇聚,若指定了AppName,则DomainName必须指定一个特定的推流域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'AppName', - ], + 'schema' => ['description' => '开始时间。获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。'."\n" + .'- 格式为:YYYY-MM-DDThh:mm:ssZ。'."\n" + .'- 最小数据粒度为1小时。'."\n" + .'- 不写默认读取过去24小时数据。', 'type' => 'string', 'required' => false, 'example' => '2022-12-10T20:00:00Z'], ], [ - 'name' => 'StartTime', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> 不写默认查询过去1小时的数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2016-06-29T09:00:00Z', - ], + 'schema' => ['description' => '结束时间。结束时间需大于起始时间;日期格式按照ISO8601表示法,并使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2022-12-10T22:00:00Z'], ], [ - 'name' => 'EndTime', + 'name' => 'Region', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> 不写默认查询过去1小时的数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2016-06-29T09:10:00Z', - ], + 'schema' => ['description' => '直播中心Region。若参数为空,默认返回所有Region合并后数据,支持批量查询,多个Region用半角逗号(,)分隔。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '监播场次ID,若参数为空,默认返回所有监播场次合并后数据,支持批量查询,多个ID用半角逗号(,)分隔。', 'type' => 'string', 'required' => false, 'example' => 'e62af24d-a354-3b0c-9f1f-da592c4b****'], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '查询的时间粒度,可以使用**3600**和**86400**,即小时和天粒度。', 'type' => 'string', 'required' => false, 'example' => '3600'], + ], + [ + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => ['description' => '分组键。默认为**resolution**,即按清晰度分组,可选值为**domain**,**region**,**instance**,**resolution**之一。可以指定多个,多个值用半角逗号(,)分隔。', 'type' => 'string', 'required' => false, 'example' => 'resolution', 'default' => 'resolution'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'DataInterval' => [ - 'description' => '查询数据的时间粒度,单位是秒。默认值为60。', - 'type' => 'string', - 'example' => '60', - ], - 'DomainName' => [ - 'description' => '推流域名。', - 'type' => 'string', - 'example' => 'example1.aliyundoc.com,example2.aliyundoc.com', - ], - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2016-06-29T09:10:00Z', - ], - 'RealTimeCodeData' => [ - 'description' => '每个时间间隔的错误码占比数据。', - 'type' => 'array', - 'items' => [ - 'description' => '每个时间间隔的错误码占比数据。', - 'type' => 'object', - 'properties' => [ - 'CodeData' => [ - 'description' => '各返回码占比使用数据列表。', - 'type' => 'array', - 'items' => [ - 'description' => '各返回码占比使用数据列表。', - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '响应码。响应码取值:'."\n" - .'- 3:读数据超时 。'."\n" - .'- 4:写数据错误 。'."\n" - .'- 6:写数据超时 。'."\n" - .'- 200:成功。'."\n" - .'- 500:内部系统未知错误 。'."\n" - .'- 501:推流异常。'."\n" - .'- 502:信令耗时过长 。'."\n" - .'- 401:推流参数异常 。'."\n" - .'- 403:推流鉴权失败。', - 'type' => 'string', - 'example' => '200', - ], - 'Count' => [ - 'description' => '响应数量。', - 'type' => 'string', - 'example' => '20', - ], - 'Proportion' => [ - 'description' => '响应数量占比。', - 'type' => 'string', - 'example' => '66.04', - ], - ], + 'DomainName' => ['description' => '域名。', 'type' => 'string', 'example' => 'example.com'], + 'EndTime' => ['description' => '查询结束时间。日期格式按照 ISO8601 表示法,并使用 UTC 时间。格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2022-12-10T22:00:00Z'], + 'InstanceId' => ['description' => '监播场次ID。', 'type' => 'string', 'example' => 'e62af24d-a354-3b0c-9f1f-da592c4b****'], + 'MonitoringData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'MonitoringDataItem' => [ + 'description' => '广目监播用量明细。', + 'type' => 'array', + 'items' => [ + 'description' => '明细详情。', + 'type' => 'object', + 'properties' => [ + 'DomainName' => ['description' => '域名。只有当**Split**指定了domain时有效。', 'type' => 'string', 'example' => 'example.com'], + 'Duration' => ['description' => '时长,单位为分钟。', 'type' => 'integer', 'format' => 'int32', 'example' => '2000'], + 'InstanceId' => ['description' => '监播场次ID。只有当**Split**指定了instance时有效。', 'type' => 'string', 'example' => 'e62af24d-a354-3b0c-9f1f-da592c4b****'], + 'Region' => ['description' => '直播中心Region。只有当**Split**指定了Region时有效。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'Resolution' => ['description' => '分辨率.。只有当**Split**指定了resolution时有效。', 'type' => 'string', 'example' => '720P'], + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC 时间。格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2022-12-10T20:00:00Z'], ], ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2016-06-29T09:01:00Z', - ], ], ], + 'description' => '', ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BC858082-736F-4A25-867B-E5B67C******', - ], - 'StartTime' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2016-06-29T09:00:00Z', - ], + 'Region' => ['description' => '直播中心Region。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3******'], + 'StartTime' => ['description' => '查询起始时间。日期格式按照 ISO8601 表示法,并使用 UTC 时间。格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2022-12-10T20:00:00Z'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DataInterval\\": \\"60\\",\\n \\"DomainName\\": \\"example1.aliyundoc.com,example2.aliyundoc.com\\",\\n \\"EndTime\\": \\"2016-06-29T09:10:00Z\\",\\n \\"RealTimeCodeData\\": [\\n {\\n \\"CodeData\\": [\\n {\\n \\"Code\\": \\"200\\",\\n \\"Count\\": \\"20\\",\\n \\"Proportion\\": \\"66.04\\"\\n }\\n ],\\n \\"TimeStamp\\": \\"2016-06-29T09:01:00Z\\"\\n }\\n ],\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C******\\",\\n \\"StartTime\\": \\"2016-06-29T09:00:00Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BC858082-736F-4A25-867B-E5B67C85ACF7\\n 60\\n example.com,example.aliyundoc.com\\n 2016-06-29T09:00:00Z\\n 2016-06-29T09:10:00Z\\n \\n 2016-06-29T09:01:00Z\\n \\n 200\\n 20\\n 66.04\\n \\n \\n","errorExample":""}]', - 'title' => '查询域名推流状态码', - 'description' => '- 本接口为监控数据接口,数据采集处理方式不同于计费,不能用于计算用量进行对账参考。'."\n" + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2022-12-10T22:00:00Z\\",\\n \\"InstanceId\\": \\"e62af24d-a354-3b0c-9f1f-da592c4b****\\",\\n \\"MonitoringData\\": {\\n \\"MonitoringDataItem\\": [\\n {\\n \\"DomainName\\": \\"example.com\\",\\n \\"Duration\\": 2000,\\n \\"InstanceId\\": \\"e62af24d-a354-3b0c-9f1f-da592c4b****\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"Resolution\\": \\"720P\\",\\n \\"TimeStamp\\": \\"2022-12-10T20:00:00Z\\"\\n }\\n ]\\n },\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3******\\",\\n \\"StartTime\\": \\"2022-12-10T20:00:00Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2022-12-10T22:00:00Z\\n 2022-12-10T20:00:00Z\\n 3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\n cn-shanghai\\n e62af24d-a354-3b0c-9f1f-da592c4b****\\n example.com\\n \\n cn-shanghai\\n 2022-12-10T20:00:00Z\\n 2000\\n e62af24d-a354-3b0c-9f1f-da592c4b****\\n example.com\\n 720P\\n \\n","errorExample":""}]', + 'title' => '获取域名广目监播用量', + 'description' => '- 支持批量域名查询,多个域名用半角逗号(,)分隔。'."\n" .'- 最多可获取最近90天的数据。'."\n" - .'- 接口数据延时在3-5分钟。'."\n" + .'- 查询数据的时间粒度为小时或天。'."\n" + .'- 最大支持查询时间跨度31天。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveUpVideoAudioInfo' => [ - 'summary' => '查询一段时间内的流的上行推流的音视频参数。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'extraInfo' => '## 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP状态码 | 语义 |'."\n" + .'|-------------|-------|-----------------|-------|'."\n" + .'| Throttling | Request was denied due to request throttling. | 503 | 请求被流量控制限制 |'."\n" + .'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | 域名不存在或不属于当前用户 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainMonitoringUsageData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainMonitoringUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveDomainMultiStreamConfig' => [ + 'summary' => '查询双流灾备配置状态。', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107116', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeCode' => '250493', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'Domain', 'in' => 'query', + 'schema' => ['description' => '主播放域名。', 'type' => 'string', 'required' => true, 'example' => 'pliveplay.gstv.com.cn'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'F486A44F-6B35-5A96-BF2C-************'], + 'Switch' => [ + 'description' => '功能开关。取值:'."\n" + .'- **on**:开启'."\n" + .'- **off**:关闭', + 'type' => 'string', + 'enumValueTitles' => ['off' => 'off', 'on' => 'on'], + 'example' => 'on', + ], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'CodeGetPushbackDomainError', 'errorMessage' => 'Unable to get the push domain name, please check the domain name mapping configuration.', 'description' => '无法获取推流域名,请检查域名映射配置。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询双流灾备配置状态', + 'changeSet' => [ + ['createdAt' => '2025-04-27T04:00:13.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainMultiStreamConfig'], + ], + ], + 'ramActions' => [ [ - 'name' => 'Stream', - 'in' => 'query', - 'schema' => [ - 'description' => '查询的流名,需要完整填写,格式为:`rtmp://推流域名/app名/流名`', - 'type' => 'string', - 'required' => true, - 'example' => 'rtmp://example.com/AppName/StreamName', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainMultiStreamConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F486A44F-6B35-5A96-BF2C-************\\",\\n \\"Switch\\": \\"on\\"\\n}","type":"json"}]', + ], + 'DescribeLiveDomainOnlineUserNum' => [ + 'summary' => '查询域名下所有流的在线人数信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'StartTime', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '107024', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T15:00:00Z', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'EndTime', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T15:10:00Z ', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'QueryTime', + 'in' => 'query', + 'schema' => ['description' => '查询的时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'required' => false, 'example' => '2018-12-27T13:09:21Z'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '视频音频信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', - ], - 'UpItems' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3A3A8C3D-F8B2-4FBF-9319-771A11B855FA'], + 'UserCount' => ['description' => '查询时间下域名的所有在线人数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'StreamCount' => ['description' => '流数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'OnlineUserInfo' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'PublishItem' => [ - 'description' => '返回信息中聚合推流数总计。', + 'LiveStreamOnlineUserNumInfo' => [ + 'description' => '流的信息。', 'type' => 'array', 'items' => [ - 'description' => '信息。', 'type' => 'object', 'properties' => [ - 'AacHeaders' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AacHeaders' => [ - 'description' => '秒级音频AAC头,单位:次数。', - 'type' => 'array', - 'items' => [ - 'description' => '秒级音频AAC头。', - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '查询时间,用UNIX毫秒时间戳表示。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1538134750408', - ], - 'Value' => [ - 'description' => '对应质量数据在查询时间的秒级指标值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - ], - ], - ], - ], - ], - 'AppName' => [ - 'description' => '推流App名称。', - 'type' => 'string', - 'example' => 'AppName', - ], - 'AudioBitRate' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AudioBitRate' => [ - 'description' => '秒级音频码率,单位:bit/s。', - 'type' => 'array', - 'items' => [ - 'description' => '秒级音频码率。', - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '查询时间,用UNIX毫秒时间戳表示。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1538134750408', - ], - 'Value' => [ - 'description' => '对应质量数据在查询时间的秒级指标值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '24552', - ], - ], - ], - ], - ], - ], - 'AudioFrames' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AudioFrames' => [ - 'description' => '秒级音频帧率,单位:帧。', - 'type' => 'array', - 'items' => [ - 'description' => '秒级音频帧率。', - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '查询时间,用UNIX毫秒时间戳表示。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1538134750408', - ], - 'Value' => [ - 'description' => '对应质量数据在查询时间的秒级指标值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '23', - ], - ], - ], - ], - ], - ], - 'AudioInterval' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AudioInterval' => [ - 'description' => '秒级最大音频帧间隔,单位:毫秒。', - 'type' => 'array', - 'items' => [ - 'description' => '秒级最大音频帧间隔。', - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '查询时间,用UNIX毫秒时间戳表示。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1538134750408', - ], - 'Value' => [ - 'description' => '对应质量数据在查询时间的秒级指标值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '254', - ], - ], - ], - ], - ], - ], - 'AudioStamps' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AudioStamps' => [ - 'description' => '秒级音频时间戳,单位:毫秒。', - 'type' => 'array', - 'items' => [ - 'description' => '秒级音频时间戳。', - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '查询时间,用UNIX毫秒时间戳表示。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1538134750408', - ], - 'Value' => [ - 'description' => '对应质量数据在查询时间的秒级指标值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '725053422', - ], - ], - ], - ], - ], - ], - 'AvcHeaders' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AvcHeaders' => [ - 'description' => '秒级音频AVC头,单位:次数。', - 'type' => 'array', - 'items' => [ - 'description' => '秒级音频AVC头。', - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '查询时间,用UNIX毫秒时间戳表示。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1538134750408', - ], - 'Value' => [ - 'description' => '对应质量数据在查询时间的秒级指标值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '11', - ], - ], - ], - ], - ], - ], - 'CodecInfo' => [ - 'description' => '音视频编码信息。', - 'type' => 'string', - 'example' => 'H264/AAC', - ], - 'DomainName' => [ - 'description' => '推流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'ErrorFlags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ErrorFlags' => [ - 'description' => '推流断开错误码。', - 'type' => 'array', - 'items' => [ - 'description' => '推流断开错误码。', - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '查询时间,用UNIX毫秒时间戳表示。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1538134750408', - ], - 'Value' => [ - 'description' => '对应质量数据在查询时间的秒级指标值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - ], - ], - ], - ], - ], - 'PublishInterval' => [ - 'description' => '推流时长,单位为秒;"-"表示正在推流,暂无推流时长。', - 'type' => 'string', - 'example' => '-', - ], - 'PublishIp' => [ - 'description' => '推流端IP。', - 'type' => 'string', - 'example' => 'cn397', - ], - 'PublishStatus' => [ - 'description' => '推流状态,分为 “1”: “正在推流” 或 “0”: “过去推流” 两种', - 'type' => 'string', - 'example' => '1', - ], - 'PublishTime' => [ - 'description' => '推流开始时间,UTC格式。', - 'type' => 'string', - 'example' => '2015-12-10T15:00:00Z', - ], - 'StopTime' => [ - 'description' => '推流结束时间,UTC格式。', - 'type' => 'string', - 'example' => '2015-12-10T15:10:00Z', - ], - 'StreamName' => [ - 'description' => '流的名称。', - 'type' => 'string', - 'example' => 'StreamName', - ], - 'UniqueId' => [ - 'description' => '每次推流的唯一ID。', - 'type' => 'string', - 'example' => '2.-395_37261_9848098_1538080899396', - ], - 'VideoAndAudioStamp' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'V_AStamp' => [ - 'description' => '秒级音视频时间戳差值,单位:毫秒。', - 'type' => 'array', - 'items' => [ - 'description' => '秒级音视频时间戳差值。', - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '查询时间,用UNIX毫秒时间戳表示。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1538134750408', - ], - 'Value' => [ - 'description' => '对应质量数据在查询时间的秒级指标值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '359', - ], - ], - ], - ], - ], - ], - 'VideoBitRate' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VideoBitRate' => [ - 'description' => '秒级视频码率,单位:bit/s。', - 'type' => 'array', - 'items' => [ - 'description' => '秒级视频码率。', - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '查询时间,用UNIX毫秒时间戳表示。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1538134750408', - ], - 'Value' => [ - 'description' => '对应质量数据在查询时间的秒级指标值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3970160', - ], - ], - ], - ], - ], - ], - 'VideoFrames' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VideoFrames' => [ - 'description' => '秒级视频帧率,单位:帧。', - 'type' => 'array', - 'items' => [ - 'description' => '秒级视频帧率。', - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '查询时间,用UNIX毫秒时间戳表示。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1538134750408', - ], - 'Value' => [ - 'description' => '对应质量数据在查询时间的秒级指标值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '29', - ], - ], - ], - ], - ], - ], - 'VideoInterval' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VideoInterval' => [ - 'description' => '秒级最大视频帧间隔,单位:毫秒。', - 'type' => 'array', - 'items' => [ - 'description' => '秒级最大视频帧间隔。', - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '查询时间,用UNIX毫秒时间戳表示。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1538134750408', - ], - 'Value' => [ - 'description' => '对应质量数据在查询时间的秒级指标值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '278', - ], - ], - ], - ], - ], - ], - 'VideoStamps' => [ + 'StreamName' => ['description' => '流名称。', 'type' => 'string', 'example' => 'rtmp://example.com/test/liveStream****_3_1'], + 'Infos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'VideoStamps' => [ - 'description' => '秒级视频时间戳,单位:毫秒。', + 'Info' => [ + 'description' => '流统计信息。', 'type' => 'array', 'items' => [ - 'description' => '秒级视频时间戳。', 'type' => 'object', 'properties' => [ - 'Time' => [ - 'description' => '查询时间,用UNIX毫秒时间戳表示。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1538134750408', - ], - 'Value' => [ - 'description' => '对应质量数据在查询时间的秒级指标值。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '725053781', - ], + 'UserNumber' => ['description' => '转码流或原始流的人数', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'TranscodeTemplate' => ['description' => '转码模板。origin为原始流。', 'type' => 'string', 'example' => 'origin'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'InvalidDuration.ExceedOneDay', - 'errorMessage' => 'StartTime and EndTime Duration Exceeds One Day', - ], - [ - 'errorCode' => 'InvalidDuration.StratTimeBiggerEndTime', - 'errorMessage' => 'StartTime Bigger Than EndTime', - ], - ], 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter Stream invalid.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], + ['errorCode' => 'InvalidQueryTime.Exceed', 'errorMessage' => 'QueryTime exceed three month.', 'description' => '查询时间距离当前时间超过三个月。'], + ['errorCode' => 'InvalidQueryTime.Malformed', 'errorMessage' => 'Specified QueryTime is malformed.', 'description' => '指定的查询时间无效。'], ], + ], + 'title' => '查询域名下所有流某分钟的在线人数信息', + 'description' => '本接口目前只支持FLV、RTS和RTMP播放在线人数统计,暂不支持HLS播放在线人数统计。 数据采集和统计有一定延迟,建议您查询5分钟前的数据。'."\n" + ."\n" + .'>请使用本接口替换原有的DescribeLiveStreamOnlineUserNum(已废弃)接口。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为200次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainOnlineUserNum', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"UpItems\\": {\\n \\"PublishItem\\": [\\n {\\n \\"AacHeaders\\": {\\n \\"AacHeaders\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 20\\n }\\n ]\\n },\\n \\"AppName\\": \\"AppName\\",\\n \\"AudioBitRate\\": {\\n \\"AudioBitRate\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 24552\\n }\\n ]\\n },\\n \\"AudioFrames\\": {\\n \\"AudioFrames\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 23\\n }\\n ]\\n },\\n \\"AudioInterval\\": {\\n \\"AudioInterval\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 254\\n }\\n ]\\n },\\n \\"AudioStamps\\": {\\n \\"AudioStamps\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 725053422\\n }\\n ]\\n },\\n \\"AvcHeaders\\": {\\n \\"AvcHeaders\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 11\\n }\\n ]\\n },\\n \\"CodecInfo\\": \\"H264/AAC\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"ErrorFlags\\": {\\n \\"ErrorFlags\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 0\\n }\\n ]\\n },\\n \\"PublishInterval\\": \\"-\\",\\n \\"PublishIp\\": \\"cn397\\",\\n \\"PublishStatus\\": \\"1\\",\\n \\"PublishTime\\": \\"2015-12-10T15:00:00Z\\",\\n \\"StopTime\\": \\"2015-12-10T15:10:00Z\\",\\n \\"StreamName\\": \\"StreamName\\",\\n \\"UniqueId\\": \\"2.-395_37261_9848098_1538080899396\\",\\n \\"VideoAndAudioStamp\\": {\\n \\"V_AStamp\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 359\\n }\\n ]\\n },\\n \\"VideoBitRate\\": {\\n \\"VideoBitRate\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 3970160\\n }\\n ]\\n },\\n \\"VideoFrames\\": {\\n \\"VideoFrames\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 29\\n }\\n ]\\n },\\n \\"VideoInterval\\": {\\n \\"VideoInterval\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 278\\n }\\n ]\\n },\\n \\"VideoStamps\\": {\\n \\"VideoStamps\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 725053781\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n BC858082-736F-4A25-867B-E5B67C85ACF7\\n \\n 2015-12-10T15:00:00Z\\n AppName\\n H264/AAC\\n cn397\\n StreamName\\n 1\\n 2.-395_37261_9848098_1538080899396\\n -\\n 2015-12-10T15:10:00Z\\n example.com\\n \\n 29\\n \\n \\n \\n 23\\n \\n \\n \\n 725053781\\n \\n \\n \\n 725053422\\n \\n \\n \\n 359\\n \\n \\n \\n 11\\n \\n \\n \\n 20\\n \\n \\n \\n 3970160\\n \\n \\n \\n 24552\\n \\n \\n \\n 278\\n \\n \\n \\n 254\\n \\n \\n \\n 0\\n \\n \\n \\n","errorExample":""}]', - 'title' => '获取直播视频音频信息', - 'description' => '- 数据最大查询跨度为24小时。'."\n" - .'- 数据最小查询跨度为1分钟。'."\n" - .'- 数据最大查询范围为31天。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'responseParamsDescription' => '部分参数不存在时,返回空字符串。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3A3A8C3D-F8B2-4FBF-9319-771A11B855FA\\",\\n \\"UserCount\\": 1,\\n \\"StreamCount\\": 1,\\n \\"OnlineUserInfo\\": {\\n \\"LiveStreamOnlineUserNumInfo\\": [\\n {\\n \\"StreamName\\": \\"rtmp://example.com/test/liveStream****_3_1\\",\\n \\"Infos\\": {\\n \\"Info\\": [\\n {\\n \\"UserNumber\\": 1,\\n \\"TranscodeTemplate\\": \\"origin\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n rtmp://example.com/test/liveStream****_3_1\\n \\n \\n origin\\n 1\\n \\n \\n \\n\\n3A3A8C3D-F8B2-4FBF-9319-771A11B855FA\\n1\\n","errorExample":""}]', ], - 'DescribeLiveDomainRealTimeBpsData' => [ - 'summary' => '调用DescribeLiveDomainRealTimeBpsData获取域名1分钟粒度带宽数据。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLiveDomainPublishErrorCode' => [ + 'summary' => '查询推流域名下某个时间段内的推流状态码。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107032', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeCode' => '204356', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。'."\n" - ."\n" - .'多个域名之间用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example1.aliyundoc.com,example2.aliyundoc.com', - ], - ], - [ - 'name' => 'IspNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得。', - 'type' => 'string', - 'required' => false, - 'example' => 'alibaba', - ], + 'schema' => ['description' => '推流域名,允许传入多个推流域名,多个域名之间用英文逗号(,)分隔。'."\n" + ."\n" + .'> 该参数为必填参数。', 'type' => 'string', 'required' => false, 'example' => 'example1.aliyundoc.com,example2.aliyundoc.com'], ], [ - 'name' => 'LocationNameEn', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '区域英文名。'."\n" - ."\n" - .'通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得。', - 'type' => 'string', - 'required' => false, - 'example' => 'tianjin', - ], + 'schema' => ['description' => '按照AppName进行过滤汇聚,若指定了AppName,则DomainName必须指定一个特定的推流域名。', 'type' => 'string', 'required' => false, 'example' => 'AppName'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-11-30T05:39:00Z', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> 不写默认查询过去1小时的数据。', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> 不填默认查询从StartTime起一小时内的数据。 ', - 'type' => 'string', - 'required' => false, - 'example' => '2015-11-30T05:40:00Z', - ], + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> 不写默认查询过去1小时的数据。', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:10:00Z'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-11-30T05:40:00Z', - ], - 'StartTime' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-11-30T05:33:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BC858082-736F-4A25-867B-E5B6******', - ], - 'DomainName' => [ - 'description' => '播流域名信息。', - 'type' => 'string', - 'example' => 'example1.aliyundoc.com,example2.aliyundoc.com', - ], - 'DataInterval' => [ - 'description' => '查询数据的时间粒度。', - 'type' => 'string', - 'example' => '60', - ], - 'RealTimeBpsDataPerInterval' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DataModule' => [ - 'description' => '域名1分钟粒度带宽数据。', - 'type' => 'array', - 'items' => [ - 'description' => '域名1分钟粒度带宽数据。', - 'type' => 'object', - 'properties' => [ - 'Value' => [ - 'description' => '带宽数据,单位:bit/second。', - 'type' => 'string', - 'example' => '59392614.8', - ], - 'TimeStamp' => [ - 'description' => '数据时间戳。', - 'type' => 'string', - 'example' => '2015-11-30T05:39:00Z', + 'DataInterval' => ['description' => '查询数据的时间粒度,单位是秒。默认值为60。', 'type' => 'string', 'example' => '60'], + 'DomainName' => ['description' => '推流域名。', 'type' => 'string', 'example' => 'example1.aliyundoc.com,example2.aliyundoc.com'], + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2016-06-29T09:10:00Z'], + 'RealTimeCodeData' => [ + 'description' => '每个时间间隔的错误码占比数据。', + 'type' => 'array', + 'items' => [ + 'description' => '每个时间间隔的错误码占比数据。', + 'type' => 'object', + 'properties' => [ + 'CodeData' => [ + 'description' => '各返回码占比使用数据列表。', + 'type' => 'array', + 'items' => [ + 'description' => '各返回码占比使用数据列表。', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '响应码。响应码取值:'."\n" + .'- 3:读数据超时 。'."\n" + .'- 4:写数据错误 。'."\n" + .'- 6:写数据超时 。'."\n" + .'- 200:成功。'."\n" + .'- 500:内部系统未知错误 。'."\n" + .'- 501:推流异常。'."\n" + .'- 502:信令耗时过长 。'."\n" + .'- 401:推流参数异常 。'."\n" + .'- 403:推流鉴权失败。', 'type' => 'string', 'example' => '200'], + 'Count' => ['description' => '响应数量。', 'type' => 'string', 'example' => '20'], + 'Proportion' => ['description' => '响应数量占比。', 'type' => 'string', 'example' => '66.04'], ], ], ], + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2016-06-29T09:01:00Z'], ], ], ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B67C******'], + 'StartTime' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2016-06-29T09:00:00Z'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified StartTime or EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'Specified domain name is malformed.', - ], - ], - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-11-30T05:40:00Z\\",\\n \\"StartTime\\": \\"2015-11-30T05:33:00Z\\",\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B6******\\",\\n \\"DomainName\\": \\"example1.aliyundoc.com,example2.aliyundoc.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeBpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"59392614.8\\",\\n \\"TimeStamp\\": \\"2015-11-30T05:39:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2015-11-30T05:40:00Z\\nBC858082-736F-4A25-867B-E5B67C85ACF7\\nexample.com,example.aliyundoc.com\\n60\\n2015-11-30T05:33:00Z\\n\\n \\n 59392614.8\\n 2015-11-30T05:39:00Z\\n \\n\\n","errorExample":"{\\n \\"RealTimeBpsDataPerInterval\\":{\\n \\"DataModule\\":[\\n {\\n \\"TimeStamp\\":\\"2018-01-02T11:05:00Z\\",\\n \\"Value\\":16710625.733333332\\n },\\n {\\n \\"TimeStamp\\":\\"2018-01-02T11:04:00Z\\",\\n \\"Value\\":59392614.8\\n }\\n ]\\n },\\n \\"RequestId\\":\\"B49E6DDA-F413-422B-B58E-2FA23F286726\\"\\n}"}]', - 'title' => '获取域名1分钟粒度带宽数据', - 'description' => '- 调用本接口查询指定域名的流量和带宽使用情况。'."\n" - .'- 可以查询最近7天内的数据,单次查询StartTime和EndTime跨度不能超过24小时。'."\n" - .'- 如果StartTime和EndTime均未指定,默认返回当前时间起1小时内的数据。'."\n" - .'- 本接口为监控数据接口,数据采集处理方式不同于计费,不能用于计算用量进行对账参考。'."\n" - ."\n\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DataInterval\\": \\"60\\",\\n \\"DomainName\\": \\"example1.aliyundoc.com,example2.aliyundoc.com\\",\\n \\"EndTime\\": \\"2016-06-29T09:10:00Z\\",\\n \\"RealTimeCodeData\\": [\\n {\\n \\"CodeData\\": [\\n {\\n \\"Code\\": \\"200\\",\\n \\"Count\\": \\"20\\",\\n \\"Proportion\\": \\"66.04\\"\\n }\\n ],\\n \\"TimeStamp\\": \\"2016-06-29T09:01:00Z\\"\\n }\\n ],\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C******\\",\\n \\"StartTime\\": \\"2016-06-29T09:00:00Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BC858082-736F-4A25-867B-E5B67C85ACF7\\n 60\\n example.com,example.aliyundoc.com\\n 2016-06-29T09:00:00Z\\n 2016-06-29T09:10:00Z\\n \\n 2016-06-29T09:01:00Z\\n \\n 200\\n 20\\n 66.04\\n \\n \\n","errorExample":""}]', + 'title' => '查询域名推流状态码', + 'description' => '- 本接口为监控数据接口,数据采集处理方式不同于计费,不能用于计算用量进行对账参考。'."\n" + .'- 最多可获取最近90天的数据。'."\n" + .'- 接口数据延时在3-5分钟。'."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveDomainRealTimeTrafficData' => [ - 'summary' => '调用DescribeLiveDomainRealTimeTrafficData查询直播域名的实时流量监控数据。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainPublishErrorCode'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainPublishErrorCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveDomainPushBpsData' => [ + 'summary' => '调用DescribeLiveDomainPushBpsData获取推流域名的推流网络带宽监控数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -25623,80 +20971,55 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107036', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。'."\n" - ."\n" - .'多个域名之间用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com,example.aliyundoc.com', - ], + 'schema' => ['description' => '推流域名。'."\n" + .'支持批量域名查询,多个域名用英文逗号(,)分隔。'."\n" + .'若参数为空,默认返回所有推流域名合并后数据。', 'type' => 'string', 'required' => false, 'example' => 'demo.aliyundoc.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> 不写默认读取过去1小时数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T15:00:00Z', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'不写默认读取过去24小时数据。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z'], ], [ - 'name' => 'IspNameEn', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得。', - 'type' => 'string', - 'required' => false, - 'example' => 'alibaba', - ], + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z'], ], [ - 'name' => 'LocationNameEn', + 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '区域英文名。'."\n" - ."\n" - .'通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得。', - 'type' => 'string', - 'required' => false, - 'example' => 'tianjin', - ], + 'schema' => ['description' => '查询数据的时间粒度。单位:秒。取值:'."\n" + ."\n" + .'- **300**。'."\n" + .'- **3600**。'."\n" + .'- **86400**。'."\n" + ."\n" + .'不传和传的值不支持时,使用默认值300秒。', 'type' => 'string', 'required' => false, 'example' => '300'], ], [ - 'name' => 'EndTime', + 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T15:01:00Z', - ], + 'schema' => ['description' => '运营商英文名.'."\n" + .'可通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得,不传默认为所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'alibaba'], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => '区域英文名。'."\n" + .'可通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得,不传默认为所有区域。', 'type' => 'string', 'required' => false, 'example' => 'tianjin'], ], ], 'responses' => [ @@ -25704,119 +21027,77 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-12-10T15:01:00Z', - ], - 'StartTime' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-12-10T15:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57', - ], - 'DomainName' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'example' => 'example.com,example.aliyundoc.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔。单位:秒。', - 'type' => 'string', - 'example' => '60', - ], - 'RealTimeTrafficDataPerInterval' => [ + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], + 'StartTime' => ['description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F'], + 'DomainName' => ['description' => '查询的推流域名。', 'type' => 'string', 'example' => 'demo.aliyundoc.com'], + 'DataInterval' => ['description' => '所查询数据的时间粒度。', 'type' => 'string', 'example' => '300'], + 'BpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => '每个时间间隔的流量数据。', + 'description' => '每个时间间隔的网络带宽数据。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => '流量数据。单位:字节。', - 'type' => 'string', - 'example' => '0', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-12-10T15:01:00Z', - ], + 'BpsValue' => ['description' => 'bps数据值。单位:bit/s。', 'type' => 'string', 'example' => '11288111'], + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'StartTime and EndTime can not be single.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], - [ - 'errorCode' => 'Abs.DomainName.Malformed', - 'errorMessage' => 'The size of DomainName is too big.', - ], - [ - 'errorCode' => 'InvalidInterval.Malformed', - 'errorMessage' => 'Specified Interval is malformed.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T15:01:00Z\\",\\n \\"StartTime\\": \\"2015-12-10T15:00:00Z\\",\\n \\"RequestId\\": \\"A666D44F-19D6-490E-97CF-1A64AB962C57\\",\\n \\"DomainName\\": \\"example.com,example.aliyundoc.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeTrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0\\",\\n \\"TimeStamp\\": \\"2015-12-10T15:01:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2015-12-10T15:01:00Z\\n 2015-12-10T15:00:00Z\\n A666D44F-19D6-490E-97CF-1A64AB962C57\\n example.com,example.aliyundoc.com\\n 60\\n \\n 0\\n 2015-12-10T15:01:00Z\\n \\n","errorExample":""}]', - 'title' => '获取加速域名的1分钟流量监控数据', - 'description' => '- 调用本接口查询播流域名下某个区域、运营商、时间段内的实时带宽流量。'."\n" - .'- 不指定StartTime和EndTime时,默认读取过去1小时的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" - .'- 本接口为监控数据接口,数据采集处理方式不同于计费,不能用于计算用量进行对账参考。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"BpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"BpsValue\\": \\"11288111\\",\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2017-12-10T21:00:00Z\\n 2017-12-10T20:00:00Z\\n 3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\n demo.aliyundoc.com\\n 300\\n \\n 11288111\\n 2017-12-10T20:00:00Z\\n \\n","errorExample":""}]', + 'title' => '查询推流域名推流网络带宽监控数据', + 'description' => '- 获取的带宽数据单位为bit/s。'."\n" + .'- 支持批量域名查询,多个域名用英文逗号(,)分隔。'."\n" + .'- 不指定StartTime和EndTime时,默认读取过去24小时的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" .'- 最多可获取最近90天的数据。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口无单用户QPS限制,请您根据实际需要合理调用。', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveDomainRealTimeHttpCodeData' => [ - 'summary' => '获取加速域名1分钟粒度的HTTP返回码占比。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainPushBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveDomainPushTrafficData' => [ + 'summary' => '调用DescribeLiveDomainPushTrafficData获取推流域名推流流量监控数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -25827,82 +21108,54 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107034', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。'."\n" - .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。'."\n" - .'> - 多个域名之间用半角逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com,example.aliyundoc.com', - ], + 'schema' => ['description' => '推流域名。'."\n" + .'支持批量域名查询,多个域名用英文逗号(,)分隔。'."\n" + .'若参数为空,默认返回所有推流域名合并后数据。', 'type' => 'string', 'required' => false, 'example' => 'demo.aliyundoc.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> 若StartTime和EndTime参数都为空,默认返回当前时间起**1**小时内的数据。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-11-30T05:39:00Z', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'不填默认读取过去24小时数据。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'> 若StartTime和EndTime参数都为空,默认返回当前时间起**1**小时内的数据。'."\n" - .' ', - 'type' => 'string', - 'required' => false, - 'example' => '2015-11-30T05:40:00Z', - ], + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z'], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '查询数据的时间粒度。单位:秒。取值:'."\n" + ."\n" + .'- **300**。'."\n" + .'- **3600**。'."\n" + .'- **86400**。'."\n" + ."\n" + .'不传和传的值不支持时,使用默认值300秒。', 'type' => 'string', 'required' => false, 'example' => '300'], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'通过[DescribeCdnRegionAndIsp](~~448109~~)接口获得。', - 'type' => 'string', - 'required' => false, - 'example' => 'alibaba', - ], + 'schema' => ['description' => '运营商英文名。'."\n" + .'可通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得,不传默认为所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'alibaba'], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '区域英文名。'."\n" - ."\n" - .'通过[DescribeCdnRegionAndIsp](~~448109~~)接口获得。', - 'type' => 'string', - 'required' => false, - 'example' => 'tianjin', - ], + 'schema' => ['description' => '区域英文名。'."\n" + .'可通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得,不传默认为所有区域。', 'type' => 'string', 'required' => false, 'example' => 'tianjin'], ], ], 'responses' => [ @@ -25910,139 +21163,198 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-11-30T05:40:00Z', - ], - 'StartTime' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-11-30T05:33:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', - ], - 'DomainName' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'example' => 'example.com,example.aliyundoc.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔。单位:秒。默认值为60。', - 'type' => 'string', - 'example' => '60', - ], - 'RealTimeHttpCodeData' => [ + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], + 'StartTime' => ['description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F'], + 'DomainName' => ['description' => '推流域名。', 'type' => 'string', 'example' => 'demo.aliyundoc.com'], + 'DataInterval' => ['description' => '数据时间粒度。', 'type' => 'string', 'example' => '300'], + 'TrafficDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'UsageData' => [ - 'description' => '每个时间间隔的HTTP返回码占比数据。', + 'DataModule' => [ + 'description' => '每个时间间隔的流量数据。', 'type' => 'array', 'items' => [ + 'description' => '流量数据时间粒度。', 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2015-11-30T05:39:00Z', - ], - 'Value' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RealTimeCodeProportionData' => [ - 'description' => '各返回码占比使用数据列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => 'Http返回码。', - 'type' => 'string', - 'example' => '200', - ], - 'Proportion' => [ - 'description' => '响应数量占比。', - 'type' => 'string', - 'example' => '66.046511627907', - ], - 'Count' => [ - 'description' => '响应数量。', - 'type' => 'string', - 'example' => '20', - ], - ], - ], - ], - ], - ], + 'TrafficValue' => ['description' => '流量数据值。单位:Byte。', 'type' => 'string', 'example' => '1288111'], + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2017-12-10T20:05:00Z'], ], ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TrafficValue\\": \\"1288111\\",\\n \\"TimeStamp\\": \\"2017-12-10T20:05:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2017-12-10T21:00:00Z\\n3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\ndemo.aliyundoc.com\\n\\n \\n 1288111\\n 2017-12-10T20:05:00Z\\n \\n\\n300\\n2017-12-10T20:00:00Z\\n","errorExample":""}]', + 'title' => '查询推流域名推流流量监控数据', + 'description' => '- 获取的流量监控数据单位为Byte。'."\n" + .'- 支持批量域名查询,多个域名用英文逗号(,)分隔。'."\n" + .'- 不指定StartTime和EndTime时,默认读取过去24小时的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" + .'- 最多可获取最近90天的数据。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainPushTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', + ], + ], + ], + 'DescribeLiveDomainPvUvData' => [ + 'summary' => '查询指定直播域名的PV、UV数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '107030', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '播流域名。'."\n" + .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2018-03-17T16:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间,需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2018-03-20T16:00:00Z'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '直播域名的PV、UV数据。', + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2018-03-20T16:00:00Z'], + 'StartTime' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2018-03-17T16:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC'], + 'DomainName' => ['description' => '播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔。单位:秒。固定值为3600。', 'type' => 'string', 'example' => '3600'], + 'PvUvDataInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PvUvDataInfo' => [ + 'description' => 'PV、UV数据列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'pv、uv数据列表。', + 'type' => 'object', + 'properties' => [ + 'PV' => ['description' => 'PV数据。', 'type' => 'string', 'example' => '3036'], + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2018-03-19T16:00:00Z'], + 'UV' => ['description' => 'UV数据。', 'type' => 'string', 'example' => '2'], + ], + ], + ], + ], + 'description' => '', + ], + ], ], ], ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], + ['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'Specified Time is malformed.', 'description' => '指定的时间无效。'], + ], + ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-11-30T05:40:00Z\\",\\n \\"StartTime\\": \\"2015-11-30T05:33:00Z\\",\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"DomainName\\": \\"example.com,example.aliyundoc.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeHttpCodeData\\": {\\n \\"UsageData\\": [\\n {\\n \\"TimeStamp\\": \\"2015-11-30T05:39:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeCodeProportionData\\": [\\n {\\n \\"Code\\": \\"200\\",\\n \\"Proportion\\": \\"66.046511627907\\",\\n \\"Count\\": \\"20\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2015-11-30T05:40:00Z\\nBC858082-736F-4A25-867B-E5B67C85ACF7\\nexample.com,example.aliyundoc.com\\n60\\n2015-11-30T05:33:00Z\\n\\n \\n 2015-11-30T05:39:00Z\\n \\n \\n 66.046511627907\\n 20\\n 200\\n \\n \\n \\n\\n","errorExample":"{\\n \\"RealTimeHttpCodeData\\": {\\n \\"UsageData\\": [\\n {\\n \\"TimeStamp\\": \\"2015-11-30T05:40:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeCodeProportionData\\": [\\n {\\n \\"Proportion\\": \\"66.046511627907\\",\\n \\"Code\\": \\"200\\"\\n },\\n {\\n \\"Proportion\\": \\"4.72868217054264\\",\\n \\"Code\\": \\"206\\"\\n },\\n {\\n \\"Proportion\\": \\"0.155038759689922\\",\\n \\"Code\\": \\"302\\"\\n },\\n {\\n \\"Proportion\\": \\"0.62015503875969\\",\\n \\"Code\\": \\"304\\"\\n },\\n {\\n \\"Proportion\\": \\"28.4496124031008\\",\\n \\"Code\\": \\"500\\"\\n }\\n ]\\n }\\n },\\n {\\n \\"TimeStamp\\": \\"2015-11-30T05:39:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeCodeProportionData\\": [\\n {\\n \\"Proportion\\": \\"66.046511627907\\",\\n \\"Code\\": \\"200\\"\\n },\\n {\\n \\"Proportion\\": \\"4.72868217054264\\",\\n \\"Code\\": \\"206\\"\\n },\\n {\\n \\"Proportion\\": \\"0.155038759689922\\",\\n \\"Code\\": \\"302\\"\\n },\\n {\\n \\"Proportion\\": \\"0.62015503875969\\",\\n \\"Code\\": \\"304\\"\\n },\\n {\\n \\"Proportion\\": \\"28.4496124031008\\",\\n \\"Code\\": \\"500\\"\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"DataInterval\\": \\"60\\",\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"DomainName\\": \\"test.com,abc.com\\",\\n \\"EndTime\\": \\"2015-11-30T05:40:00Z\\",\\n \\"StartTime\\": \\"2015-11-30T05:33:00Z\\"\\n}"}]', - 'title' => '查询直播域名实时HTTP返回码占比', - 'description' => '本接口支持查询的数据时间粒度:'."\n" - .'|时间粒度|单次查询的最大时间跨度|可查询历史时间范围|数据延迟|'."\n" - .'|-----|------|-------|-------|'."\n" - .'|1分钟|1小时|7天|5分钟|'."\n" - .'|5分钟|3天|93天|15分钟|'."\n" - .'|1小时|31天|186天|通常4小时|'."\n" - .'|1天|无限制|366天|次日4点以后|'."\n" - ."\n" + 'title' => '查询直播域名PV/UV数据', + 'description' => '- 调用本接口可以观看视频用户所在地域分布、观看各个加速域名的访问排名、统计当前域名下一定时间段内独立请求的IP次数。'."\n" + .'- 不指定StartTime和EndTime时,默认读取过去24小时的数据,同时支持按指定的起止时间查询。'."\n" + .'- 不支持批量域名查询。'."\n" + .'- 最多可获取最近90天的数据。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveStreamHistoryUserNum' => [ - 'summary' => '调用DescribeLiveStreamHistoryUserNum查询直播流历史在线人数。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '### 特殊错误码'."\n" + .'|错误代码|描述|HTTP 状态码|语义|'."\n" + .'|--------|--------|----|----|'."\n" + .'|Throttling|Request was denied due to request throttling.|503|请求因流量控制被限制。|'."\n" + .'|InvalidDomain.NotFound|The domain provided does not belong to you.|404|域名不存在或不属于当前用户。|'."\n" + .'|InvalidTime.ValueNotSupported|Specified Time is malformed.|400|EndTime和StartTime差值超过90天或时间参数错误。|', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainPvUvData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-03-20T16:00:00Z\\",\\n \\"StartTime\\": \\"2018-03-17T16:00:00Z\\",\\n \\"RequestId\\": \\"E9D3257A-1B7C-414C-90C1-8D07AC47BCAC\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"3600\\",\\n \\"PvUvDataInfos\\": {\\n \\"PvUvDataInfo\\": [\\n {\\n \\"PV\\": \\"3036\\",\\n \\"TimeStamp\\": \\"2018-03-19T16:00:00Z\\",\\n \\"UV\\": \\"2\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2018-03-20T16:00:00Z\\nE9D3257A-1B7C-414C-90C1-8D07AC47BCAC\\nexample.com\\n3600\\n2018-03-17T16:00:00Z\\n\\n \\n 2\\n 3036\\n 2018-03-19T16:00:00Z\\n \\n\\n","errorExample":""}]', + ], + 'DescribeLiveDomainRealTimeBpsData' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -26053,64 +21365,47 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeCode' => '107032', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流域名。'."\n" + ."\n" + .'多个域名之间用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example1.aliyundoc.com,example2.aliyundoc.com'], ], [ - 'name' => 'AppName', + 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得。', 'type' => 'string', 'required' => false, 'example' => 'alibaba'], ], [ - 'name' => 'StreamName', + 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', - ], + 'schema' => ['description' => '区域英文名。'."\n" + ."\n" + .'通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得。', 'type' => 'string', 'required' => false, 'example' => 'tianjin'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> 支持最大的查询范围是最近**30**天。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-21T08:00:00Z', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2015-11-30T05:39:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。需晚于开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> StartTime和EndTime时间间隔在一天内,且EndTime不超过当前时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-22T08:00:00Z', - ], + 'schema' => ['description' => '结束时间。需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> 不填默认查询从StartTime起一小时内的数据。 ', 'type' => 'string', 'required' => false, 'example' => '2015-11-30T05:40:00Z'], ], ], 'responses' => [ @@ -26118,80 +21413,80 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F5FF8', - ], - 'LiveStreamUserNumInfos' => [ + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-11-30T05:40:00Z'], + 'StartTime' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-11-30T05:33:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B6******'], + 'DomainName' => ['description' => '播流域名信息。', 'type' => 'string', 'example' => 'example1.aliyundoc.com,example2.aliyundoc.com'], + 'DataInterval' => ['description' => '查询数据的时间粒度。', 'type' => 'string', 'example' => '60'], + 'RealTimeBpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'LiveStreamUserNumInfo' => [ - 'description' => '直播流历史在线人数信息。', + 'DataModule' => [ + 'description' => '域名1分钟粒度带宽数据。', 'type' => 'array', 'items' => [ + 'description' => '域名1分钟粒度带宽数据。', 'type' => 'object', 'properties' => [ - 'UserNum' => [ - 'description' => '当前时间点人数。', - 'type' => 'string', - 'example' => '1', - ], - 'StreamTime' => [ - 'description' => '流时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2017-10-20T06:20:00Z', - ], + 'Value' => ['description' => '带宽数据,单位:bit/second。', 'type' => 'string', 'example' => '59392614.8'], + 'TimeStamp' => ['description' => '数据时间戳。', 'type' => 'string', 'example' => '2015-11-30T05:39:00Z'], ], ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time or current time.', - ], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'Specified domain name is malformed.', 'description' => '指定的域名无效。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F5FF8\\",\\n \\"LiveStreamUserNumInfos\\": {\\n \\"LiveStreamUserNumInfo\\": [\\n {\\n \\"UserNum\\": \\"1\\",\\n \\"StreamTime\\": \\"2017-10-20T06:20:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n \\n 2017-10-20T06:20:00Z\\n 1\\n \\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F5FF8\\n","errorExample":"{\\n \\"LiveStreamUserNumInfos\\":{\\n \\"LiveStreamUserNumInfo\\":[\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:20:00Z\\",\\n \\"UserNum\\":0\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:19:00Z\\",\\n \\"UserNum\\":0\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:18:00Z\\",\\n \\"UserNum\\":15\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:17:00Z\\",\\n \\"UserNum\\":0\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:16:00Z\\",\\n \\"UserNum\\":0\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:15:00Z\\",\\n \\"UserNum\\":6\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:14:00Z\\",\\n \\"UserNum\\":0\\n }\\n ]\\n },\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F5FF8\\"\\n}"}]', - 'title' => '查询直播流历史在线人数', - 'description' => '- 调用本接口查询直播流历史在线人数,整体数据延时2~5分钟。'."\n" - ."\n" - .'- 该接口仅支持查询FLV和RTMP流的历史在线人数。'."\n" - ."\n" - .'- 该接口不支持查询转码流的播放人数。'."\n" + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '获取域名1分钟粒度带宽数据', + 'summary' => '调用DescribeLiveDomainRealTimeBpsData获取域名1分钟粒度带宽数据。', + 'description' => '- 调用本接口查询指定域名的流量和带宽使用情况。'."\n" + .'- 可以查询最近7天内的数据,单次查询StartTime和EndTime跨度不能超过24小时。'."\n" + .'- 如果StartTime和EndTime均未指定,默认返回当前时间起1小时内的数据。'."\n" + .'- 本接口为监控数据接口,数据采集处理方式不同于计费,不能用于计算用量进行对账参考。'."\n" ."\n\n" .'## QPS限制'."\n" - ."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveStreamCount' => [ - 'summary' => '获取直播流的实时在线原始流和转码流流数信息。', - 'methods' => [ - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainRealTimeBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-11-30T05:40:00Z\\",\\n \\"StartTime\\": \\"2015-11-30T05:33:00Z\\",\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B6******\\",\\n \\"DomainName\\": \\"example1.aliyundoc.com,example2.aliyundoc.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeBpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"59392614.8\\",\\n \\"TimeStamp\\": \\"2015-11-30T05:39:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2015-11-30T05:40:00Z\\nBC858082-736F-4A25-867B-E5B67C85ACF7\\nexample.com,example.aliyundoc.com\\n60\\n2015-11-30T05:33:00Z\\n\\n \\n 59392614.8\\n 2015-11-30T05:39:00Z\\n \\n\\n","errorExample":"{\\n \\"RealTimeBpsDataPerInterval\\":{\\n \\"DataModule\\":[\\n {\\n \\"TimeStamp\\":\\"2018-01-02T11:05:00Z\\",\\n \\"Value\\":16710625.733333332\\n },\\n {\\n \\"TimeStamp\\":\\"2018-01-02T11:04:00Z\\",\\n \\"Value\\":59392614.8\\n }\\n ]\\n },\\n \\"RequestId\\":\\"B49E6DDA-F413-422B-B58E-2FA23F286726\\"\\n}"}]', + ], + 'DescribeLiveDomainRealTimeHttpCodeData' => [ + 'summary' => '获取加速域名1分钟粒度的HTTP返回码占比。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -26202,32 +21497,49 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeCode' => '107034', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。'."\n" - .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流域名。'."\n" + .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。'."\n" + .'> - 多个域名之间用半角逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com,example.aliyundoc.com'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> 若StartTime和EndTime参数都为空,默认返回当前时间起**1**小时内的数据。'."\n", 'type' => 'string', 'required' => false, 'example' => '2015-11-30T05:39:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'> 若StartTime和EndTime参数都为空,默认返回当前时间起**1**小时内的数据。'."\n" + .' ', 'type' => 'string', 'required' => false, 'example' => '2015-11-30T05:40:00Z'], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'通过[DescribeCdnRegionAndIsp](~~448109~~)接口获得。', 'type' => 'string', 'required' => false, 'example' => 'alibaba'], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => '区域英文名。'."\n" + ."\n" + .'通过[DescribeCdnRegionAndIsp](~~448109~~)接口获得。', 'type' => 'string', 'required' => false, 'example' => 'tianjin'], ], ], 'responses' => [ @@ -26235,113 +21547,104 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'FCFFE4A4-F34F-4EEF-B401-36A01689AFBC', - ], - 'StreamCountInfos' => [ + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-11-30T05:40:00Z'], + 'StartTime' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-11-30T05:33:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7'], + 'DomainName' => ['description' => '播流域名。', 'type' => 'string', 'example' => 'example.com,example.aliyundoc.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔。单位:秒。默认值为60。', 'type' => 'string', 'example' => '60'], + 'RealTimeHttpCodeData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'StreamCountInfo' => [ - 'description' => '流信息统计内容。', + 'UsageData' => [ + 'description' => '每个时间间隔的HTTP返回码占比数据。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => ' 实时流类型。取值:'."\n" - ."\n" - .'- **raw**:原始流。'."\n" - .'- **trans**:转码流。', - 'type' => 'string', - 'example' => 'raw', - ], - 'Count' => [ - 'description' => '在线流数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3', - ], - 'Limit' => [ - 'description' => '并发推流数量限制,只有白名单用户才显示。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'StreamCountDetails' => [ + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2015-11-30T05:39:00Z'], + 'Value' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'StreamCountDetail' => [ - 'description' => '流统计信息详情。', + 'RealTimeCodeProportionData' => [ + 'description' => '各返回码占比使用数据列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'VideoDataRate' => [ - 'description' => '视频码率,该字段只有转码流数量统计时才有。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '390', - ], - 'Format' => [ - 'description' => '视频编码格式。取值:'."\n" - ."\n" - .'- **h264**。'."\n" - .'- **h265**。', - 'type' => 'string', - 'example' => 'h264', - ], - 'Count' => [ - 'description' => '在线流数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], + 'Code' => ['description' => 'Http返回码。', 'type' => 'string', 'example' => '200'], + 'Proportion' => ['description' => '响应数量占比。', 'type' => 'string', 'example' => '66.046511627907'], + 'Count' => ['description' => '响应数量。', 'type' => 'string', 'example' => '20'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"FCFFE4A4-F34F-4EEF-B401-36A01689AFBC\\",\\n \\"StreamCountInfos\\": {\\n \\"StreamCountInfo\\": [\\n {\\n \\"Type\\": \\"raw\\",\\n \\"Count\\": 3,\\n \\"Limit\\": 10,\\n \\"StreamCountDetails\\": {\\n \\"StreamCountDetail\\": [\\n {\\n \\"VideoDataRate\\": 390,\\n \\"Format\\": \\"h264\\",\\n \\"Count\\": 2\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n FCFFE4A4-F34F-4EEF-B401-36A01689AFBC\\n \\n raw\\n 3\\n 10\\n \\n 390\\n h264\\n 2\\n \\n \\n","errorExample":""}]', - 'title' => '查询在线直播流数量', - 'description' => '先获取主播流域名,再调用本接口获取直播流的实时在线原始流和转码流流数信息。调用接口返回的视频编码格式为h264和h265。'."\n" + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-11-30T05:40:00Z\\",\\n \\"StartTime\\": \\"2015-11-30T05:33:00Z\\",\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"DomainName\\": \\"example.com,example.aliyundoc.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeHttpCodeData\\": {\\n \\"UsageData\\": [\\n {\\n \\"TimeStamp\\": \\"2015-11-30T05:39:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeCodeProportionData\\": [\\n {\\n \\"Code\\": \\"200\\",\\n \\"Proportion\\": \\"66.046511627907\\",\\n \\"Count\\": \\"20\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2015-11-30T05:40:00Z\\nBC858082-736F-4A25-867B-E5B67C85ACF7\\nexample.com,example.aliyundoc.com\\n60\\n2015-11-30T05:33:00Z\\n\\n \\n 2015-11-30T05:39:00Z\\n \\n \\n 66.046511627907\\n 20\\n 200\\n \\n \\n \\n\\n","errorExample":"{\\n \\"RealTimeHttpCodeData\\": {\\n \\"UsageData\\": [\\n {\\n \\"TimeStamp\\": \\"2015-11-30T05:40:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeCodeProportionData\\": [\\n {\\n \\"Proportion\\": \\"66.046511627907\\",\\n \\"Code\\": \\"200\\"\\n },\\n {\\n \\"Proportion\\": \\"4.72868217054264\\",\\n \\"Code\\": \\"206\\"\\n },\\n {\\n \\"Proportion\\": \\"0.155038759689922\\",\\n \\"Code\\": \\"302\\"\\n },\\n {\\n \\"Proportion\\": \\"0.62015503875969\\",\\n \\"Code\\": \\"304\\"\\n },\\n {\\n \\"Proportion\\": \\"28.4496124031008\\",\\n \\"Code\\": \\"500\\"\\n }\\n ]\\n }\\n },\\n {\\n \\"TimeStamp\\": \\"2015-11-30T05:39:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeCodeProportionData\\": [\\n {\\n \\"Proportion\\": \\"66.046511627907\\",\\n \\"Code\\": \\"200\\"\\n },\\n {\\n \\"Proportion\\": \\"4.72868217054264\\",\\n \\"Code\\": \\"206\\"\\n },\\n {\\n \\"Proportion\\": \\"0.155038759689922\\",\\n \\"Code\\": \\"302\\"\\n },\\n {\\n \\"Proportion\\": \\"0.62015503875969\\",\\n \\"Code\\": \\"304\\"\\n },\\n {\\n \\"Proportion\\": \\"28.4496124031008\\",\\n \\"Code\\": \\"500\\"\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"DataInterval\\": \\"60\\",\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"DomainName\\": \\"test.com,abc.com\\",\\n \\"EndTime\\": \\"2015-11-30T05:40:00Z\\",\\n \\"StartTime\\": \\"2015-11-30T05:33:00Z\\"\\n}"}]', + 'title' => '查询直播域名实时HTTP返回码占比', + 'description' => '本接口支持查询的数据时间粒度:'."\n" + .'|时间粒度|单次查询的最大时间跨度|可查询历史时间范围|数据延迟|'."\n" + .'|-----|------|-------|-------|'."\n" + .'|1分钟|1小时|7天|5分钟|'."\n" + .'|5分钟|3天|93天|15分钟|'."\n" + .'|1小时|31天|186天|通常4小时|'."\n" + .'|1天|无限制|366天|次日4点以后|'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为1次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveStreamTranscodeStreamNum' => [ - 'summary' => '调用DescribeLiveStreamTranscodeStreamNum实时查询转码流路数。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainRealTimeHttpCodeData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveDomainRealTimeTrafficData' => [ + 'summary' => '调用DescribeLiveDomainRealTimeTrafficData查询直播域名的实时流量监控数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -26352,137 +21655,134 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107109', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], + 'abilityTreeCode' => '107036', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流域名。'."\n" + ."\n" + .'多个域名之间用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com,example.aliyundoc.com'], ], [ - 'name' => 'SplitType', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '分组类型。'."\n" - .'* 域名(默认)'."\n" - .'* 模板', - 'type' => 'string', - 'required' => false, - 'example' => 'template', - 'default' => 'domain', - 'enum' => [ - 'domain', - 'template', - ], - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> 不写默认读取过去1小时数据。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T15:00:00Z'], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得。', 'type' => 'string', 'required' => false, 'example' => 'alibaba'], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => '区域英文名。'."\n" + ."\n" + .'通过[DescribeCdnRegionAndIsp](~~91077~~)接口获得。', 'type' => 'string', 'required' => false, 'example' => 'tianjin'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T15:01:00Z'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', 'properties' => [ - 'UntranscodeNumber' => [ - 'description' => '未转码流数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '27', - ], - 'LazyTranscodedNumber' => [ - 'description' => '触发转码流数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'TranscodedNumber' => [ - 'description' => '转码流数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '150191A4-DD88-5941-B48C-9DF59E0A8B1F', - ], - 'Total' => [ - 'description' => '转码流数量总和。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '57', - ], - 'TranscodeStreamCountDetails' => [ - 'description' => '转码模板数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Template' => [ - 'description' => '转码模板名。', - 'type' => 'string', - 'example' => 'template_name', - ], - 'Count' => [ - 'description' => '转码模板流数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-12-10T15:01:00Z'], + 'StartTime' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-12-10T15:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57'], + 'DomainName' => ['description' => '播流域名。', 'type' => 'string', 'example' => 'example.com,example.aliyundoc.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔。单位:秒。', 'type' => 'string', 'example' => '60'], + 'RealTimeTrafficDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => '每个时间间隔的流量数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => '流量数据。单位:字节。', 'type' => 'string', 'example' => '0'], + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-12-10T15:01:00Z'], + ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'StartTime and EndTime can not be single.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], + ['errorCode' => 'Abs.DomainName.Malformed', 'errorMessage' => 'The size of DomainName is too big.', 'description' => ''], + ['errorCode' => 'InvalidInterval.Malformed', 'errorMessage' => 'Specified Interval is malformed.', 'description' => ''], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '获取加速域名的1分钟流量监控数据', + 'description' => '- 调用本接口查询播流域名下某个区域、运营商、时间段内的实时带宽流量。'."\n" + .'- 不指定StartTime和EndTime时,默认读取过去1小时的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" + .'- 本接口为监控数据接口,数据采集处理方式不同于计费,不能用于计算用量进行对账参考。'."\n" + .'- 最多可获取最近90天的数据。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口无单用户QPS限制,请您根据实际需要合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainRealTimeTrafficData'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainRealTimeTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"UntranscodeNumber\\": 27,\\n \\"LazyTranscodedNumber\\": 10,\\n \\"TranscodedNumber\\": 30,\\n \\"RequestId\\": \\"150191A4-DD88-5941-B48C-9DF59E0A8B1F\\",\\n \\"Total\\": 57,\\n \\"TranscodeStreamCountDetails\\": [\\n {\\n \\"Template\\": \\"template_name\\",\\n \\"Count\\": 30\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 27\\n 10\\n 30\\n 150191A4-DD88-5941-B48C-9DF59E0A8B1F\\n 57\\n","errorExample":""}]', - 'title' => '获取直播流转码流数量', - 'description' => '本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T15:01:00Z\\",\\n \\"StartTime\\": \\"2015-12-10T15:00:00Z\\",\\n \\"RequestId\\": \\"A666D44F-19D6-490E-97CF-1A64AB962C57\\",\\n \\"DomainName\\": \\"example.com,example.aliyundoc.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeTrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0\\",\\n \\"TimeStamp\\": \\"2015-12-10T15:01:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2015-12-10T15:01:00Z\\n 2015-12-10T15:00:00Z\\n A666D44F-19D6-490E-97CF-1A64AB962C57\\n example.com,example.aliyundoc.com\\n 60\\n \\n 0\\n 2015-12-10T15:01:00Z\\n \\n","errorExample":""}]', ], - 'DescribeLiveDomainPvUvData' => [ - 'summary' => '查询指定直播域名的PV、UV数据。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLiveDomainRealtimeLogDelivery' => [ + 'summary' => '调用DescribeLiveDomainRealtimeLogDelivery查询域名实时日志投递信息。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -26493,173 +21793,274 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107030', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeCode' => '107035', + 'abilityTreeNodes' => ['FEATURElive066BXV'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '播流域名。'."\n" - .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '域名实时投递状态。取值:'."\n" + ."\n" + .'- online:开启实时投递。'."\n" + .'- offline:未开启实时投递。', 'type' => 'string', 'example' => 'online'], + 'Logstore' => ['description' => '实时投递SLS的LogStoreName。', 'type' => 'string', 'example' => 'logstore_example'], + 'Project' => ['description' => '实时投递SLS的ProjectName。', 'type' => 'string', 'example' => 'project_example'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '2F8F3852-912F-42AC-80EB-F1CF4284DE93'], + 'Region' => ['description' => '实时投递SLS的Region。', 'type' => 'string', 'example' => 'cn-shanghai'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'Domain.NotFound', 'errorMessage' => 'Domain not found', 'description' => ''], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '查询域名实时日志投递信息', + 'description' => '调用本接口查询域名实时日志投递状态,无其他特殊使用说明,调用时请保证参数设置符合要求。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '## 特定错误码'."\n" + ."\n" + .'| HttpCode| 错误码 | 描述 |'."\n" + .'|--------------------------|-------------------------------------------|-----------|'."\n" + .'| 404 | Domain.NotFound | 域名未开通实时日志投递服务。 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainRealtimeLogDelivery'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": \\"online\\",\\n \\"Logstore\\": \\"logstore_example\\",\\n \\"Project\\": \\"project_example\\",\\n \\"RequestId\\": \\"2F8F3852-912F-42AC-80EB-F1CF4284DE93\\",\\n \\"Region\\": \\"cn-shanghai\\"\\n}","errorExample":""},{"type":"xml","example":"\\n online\\n logstore_example\\n project_example\\n 2F8F3852-912F-42AC-80EB-F1CF4284DE93\\n cn-shanghai\\n","errorExample":""}]', + ], + 'DescribeLiveDomainRecordUsageData' => [ + 'summary' => '调用DescribeLiveDomainRecordUsageData查询直播录制路数、转封装用量。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '需要查询的主播流域名。'."\n" + ."\n" + .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + .'- 若参数为空,默认返回所有直播域名合并后的数据。'."\n" + .'- 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], + ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-03-17T16:00:00Z', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'- 最小数据粒度为5分钟。'."\n" + .'- 不填默认读取过去24小时数据。'."\n" + ."\n" + .'>起始时间最早可设置为从当前时间开始的90天内,精确到秒。', 'type' => 'string', 'required' => false, 'example' => '2021-05-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间,需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-03-20T16:00:00Z', - ], + 'schema' => ['description' => '结束时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。取值要求:'."\n" + ."\n" + .'- 需晚于起始时间(StartTime)。'."\n" + .'- 结束时间减去起始时间(查询数据的时间跨度)最长31天。超出31天请求失败并报错。'."\n", 'type' => 'string', 'required' => false, 'example' => '2021-05-10T21:00:00Z'], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => ['description' => '地区。取值:'."\n" + ."\n" + .'- **cn-beijing**:北京'."\n" + ."\n" + .'- **cn-shanghai**:上海'."\n" + ."\n" + .'- **cn-shenzhen**:深圳'."\n" + ."\n" + .'- **cn-qingdao**:青岛'."\n" + ."\n" + .'- **ap-southeast-1**:新加坡'."\n" + ."\n" + .'- **eu-central-1**:德国'."\n" + ."\n" + .'- **ap-northeast-1**:东京'."\n" + ."\n" + .'- **ap-southeast-5**:雅加达', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], + ], + [ + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => ['description' => '分组键。取值:'."\n" + ."\n" + .'- **domain**:查询结果按域名分组。'."\n" + .'- **record_fmt**:查询结果按录制类型分组。'."\n" + ."\n" + .'> 可选一个,也可多选。多选时用英文逗号(,)分隔。默认为`domain,record_fmt`。置为空或`null`的时候即不区分上述键。', 'type' => 'string', 'required' => false, 'example' => 'domain,record_fmt', 'default' => 'record_fmt,domain'], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '查询数据的时间粒度。单位:秒。取值:'."\n" + ."\n" + .'- 60。'."\n" + ."\n" + .'- 300。'."\n" + ."\n" + .'- 3600。'."\n" + ."\n" + .'- 86400。'."\n" + ."\n" + .'>不传或传值不支持时,查询时间跨度在31天以内的时间粒度默认值为300秒;查询时间跨度大于31天的时间粒度默认值为86400。', 'type' => 'string', 'required' => false, 'example' => '300'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '直播域名的PV、UV数据。', 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2018-03-20T16:00:00Z', - ], - 'StartTime' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2018-03-17T16:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC', - ], - 'DomainName' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔。单位:秒。固定值为3600。', - 'type' => 'string', - 'example' => '3600', - ], - 'PvUvDataInfos' => [ + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2021-05-10T21:00:00Z'], + 'StartTime' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2021-05-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB'], + 'RecordUsageData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'PvUvDataInfo' => [ - 'description' => 'PV、UV数据列表。', + 'DataModule' => [ + 'description' => '每个时间间隔的录制用量数据。', 'type' => 'array', 'items' => [ - 'description' => 'pv、uv数据列表。', 'type' => 'object', 'properties' => [ - 'PV' => [ - 'description' => 'PV数据。', - 'type' => 'string', - 'example' => '3036', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2018-03-19T16:00:00Z', - ], - 'UV' => [ - 'description' => 'UV数据。', - 'type' => 'string', - 'example' => '2', - ], + 'Type' => ['description' => '录制文件类型。'."\n" + .'请求参数SplitBy取值包含`record_fmt`时有效。', 'type' => 'string', 'example' => 'MP4'], + 'Domain' => ['description' => '主播流域名。'."\n" + .'请求参数SplitBy取值包含`domain`时返回。', 'type' => 'string', 'example' => 'example.com'], + 'Region' => ['description' => '地区。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'TimeStamp' => ['description' => '起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2021-05-10T20:00:00Z'], + 'Duration' => ['description' => '录制时长用量,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '3560'], + 'Count' => ['description' => '峰值路数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], - [ - 'errorCode' => 'InvalidTime.ValueNotSupported', - 'errorMessage' => 'Specified Time is malformed.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidRecordFmt.NotSupported', 'errorMessage' => 'The RecordFmt parameter is not supported.', 'description' => 'RecordFmt不支持查询输入的类型,请输入文档指定的格式'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-03-20T16:00:00Z\\",\\n \\"StartTime\\": \\"2018-03-17T16:00:00Z\\",\\n \\"RequestId\\": \\"E9D3257A-1B7C-414C-90C1-8D07AC47BCAC\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"3600\\",\\n \\"PvUvDataInfos\\": {\\n \\"PvUvDataInfo\\": [\\n {\\n \\"PV\\": \\"3036\\",\\n \\"TimeStamp\\": \\"2018-03-19T16:00:00Z\\",\\n \\"UV\\": \\"2\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2018-03-20T16:00:00Z\\nE9D3257A-1B7C-414C-90C1-8D07AC47BCAC\\nexample.com\\n3600\\n2018-03-17T16:00:00Z\\n\\n \\n 2\\n 3036\\n 2018-03-19T16:00:00Z\\n \\n\\n","errorExample":""}]', - 'title' => '查询直播域名PV/UV数据', - 'description' => '- 调用本接口可以观看视频用户所在地域分布、观看各个加速域名的访问排名、统计当前域名下一定时间段内独立请求的IP次数。'."\n" - .'- 不指定StartTime和EndTime时,默认读取过去24小时的数据,同时支持按指定的起止时间查询。'."\n" - .'- 不支持批量域名查询。'."\n" - .'- 最多可获取最近90天的数据。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2021-05-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2021-05-10T20:00:00Z\\",\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-910811DEBFEB\\",\\n \\"RecordUsageData\\": {\\n \\"DataModule\\": [\\n {\\n \\"Type\\": \\"MP4\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"TimeStamp\\": \\"2021-05-10T20:00:00Z\\",\\n \\"Duration\\": 3560,\\n \\"Count\\": 1\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2021-05-10T20:00:00Z\\n 2021-05-10T21:00:00Z\\n 4B460F8B-993C-4F48-B98A-910811DEBFEB\\n \\n \\n MP4\\n 3560\\n 1\\n example.com\\n 2021-05-10T20:00:00Z\\n \\n \\n","errorExample":""}]', + 'title' => '查询直播录制路数、转封装用量', + 'description' => '- 统计每日录制并发路数、不同时间间隔打点数据。可以用来统计每日并发录制峰值路数、每月并发录制峰值路数。'."\n" + .'- 时移的路数不会被包含在录制路数中重复计算。'."\n" + .'- 支持到域名粒度查询,支持批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + ."\n" + .'- 数据粒度1分钟,最长查询跨度24小时,最长保存时间60天。'."\n" + ."\n" + .'- 数据粒度1小时,最长查询跨度31天,最长保存时间180天。'."\n" + ."\n" + .'- 数据粒度1天,最长查询跨度90天,最长保存时间366天。'."\n" ."\n\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => '### 特殊错误码'."\n" - .'|错误代码|描述|HTTP 状态码|语义|'."\n" - .'|--------|--------|----|----|'."\n" - .'|Throttling|Request was denied due to request throttling.|503|请求因流量控制被限制。|'."\n" - .'|InvalidDomain.NotFound|The domain provided does not belong to you.|404|域名不存在或不属于当前用户。|'."\n" - .'|InvalidTime.ValueNotSupported|Specified Time is malformed.|400|EndTime和StartTime差值超过90天或时间参数错误。|', - ], - 'DescribeLiveTopDomainsByFlow' => [ - 'summary' => '调用DescribeLiveTopDomainsByFlow获取用户按流量排名的域名。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" + .'|------------|--------|---------|------|'."\n" + .'| Throttling | Request was denied due to request throttling. | 503 | 请求被流量控制限制。|'."\n" + .'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | 域名不存在或不属于当前用户。 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainRecordUsageData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainRecordUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveDomainSnapshotData' => [ + 'summary' => '调用DescribeLiveDomainSnapshotData查询直播域名截图张数。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -26670,57 +22071,31 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'StartTime', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。'."\n" - .'格式为:YYYY-MM-DDThh:mm:ssZ(UTC时间)。最小数据粒度为5分钟,不写默认读取当月数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-03-17T16:00:00Z', - ], + 'schema' => ['description' => '需要查询的主播流域名。'."\n" + .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + .'- 若参数为空,默认返回所有直播域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.aliyundoc.com'], ], [ - 'name' => 'EndTime', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间需大于起始时间。日期格式按照ISO8601表示法,并使用UTC时间。'."\n" - .'格式为:YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-03-20T16:00:00Z', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'>支持查询最近**90**天的数据。'."\n", 'type' => 'string', 'required' => true, 'example' => '2018-01-01T00:00:00Z'], ], [ - 'name' => 'Limit', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取域名数量限制。默认为20,取值支持1~100。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => '结束时间。需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2018-01-02T00:00:00Z'], ], ], 'responses' => [ @@ -26728,124 +22103,70 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'DomainOnlineCount' => [ - 'description' => '账户下正在运行域名总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2018-03-20T16:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2018-03-17T16:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '33834C3E-388E-5FFE-A8AE-63575035C064', - ], - 'DomainCount' => [ - 'description' => '账户下域名总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'TopDomains' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D*****'], + 'SnapshotDataInfos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'TopDomain' => [ - 'description' => '域名排名列表。', + 'SnapshotDataInfo' => [ + 'description' => '直播截图张数的每日数据统计。', 'type' => 'array', 'items' => [ - 'description' => '域名排名列表。', + 'description' => '直播截图张数的详细信息。', 'type' => 'object', 'properties' => [ - 'MaxBps' => [ - 'description' => '带宽峰值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '22139626', - ], - 'Rank' => [ - 'description' => '排名。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'TotalAccess' => [ - 'description' => '访问次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '107784230', - ], - 'TrafficPercent' => [ - 'description' => '流量占比。', - 'type' => 'string', - 'example' => '30.64191989360235', - ], - 'DomainName' => [ - 'description' => '域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'TotalTraffic' => [ - 'description' => '总流量。', - 'type' => 'string', - 'example' => '2043859876683.9001', - ], - 'MaxBpsTime' => [ - 'description' => '带宽峰值时刻。', - 'type' => 'string', - 'example' => '1457111400', - ], + 'Date' => ['description' => '日期,具体到天。格式为yyyyMMdd。', 'type' => 'string', 'example' => '20180209'], + 'Total' => ['description' => '单日截图总张数。', 'type' => 'integer', 'format' => 'int32', 'example' => '110'], ], ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'StartTime or EndTime is mismatch.', 'description' => ''], + ['errorCode' => 'InvalidParamter', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数无效,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainOnlineCount\\": 1,\\n \\"EndTime\\": \\"2018-03-20T16:00:00Z\\",\\n \\"StartTime\\": \\"2018-03-17T16:00:00Z\\",\\n \\"RequestId\\": \\"33834C3E-388E-5FFE-A8AE-63575035C064\\",\\n \\"DomainCount\\": 1,\\n \\"TopDomains\\": {\\n \\"TopDomain\\": [\\n {\\n \\"MaxBps\\": 22139626,\\n \\"Rank\\": 1,\\n \\"TotalAccess\\": 107784230,\\n \\"TrafficPercent\\": \\"30.64191989360235\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"TotalTraffic\\": \\"2043859876683.9001\\",\\n \\"MaxBpsTime\\": \\"1457111400\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 2018-03-20T16:00:00Z\\n 2018-03-17T16:00:00Z\\n 33834C3E-388E-5FFE-A8AE-63575035C064\\n 1\\n \\n 22139626\\n 1\\n 107784230\\n 30.64191989360235\\n example.com\\n 2043859876683.9001\\n 1457111400\\n \\n","errorExample":""}]', - 'title' => '获取流最多域名', - 'description' => '- 不指定StartTime和EndTime时,默认读取当月的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" - .'- 最多可获取90天的数据。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D*****\\",\\n \\"SnapshotDataInfos\\": {\\n \\"SnapshotDataInfo\\": [\\n {\\n \\"Date\\": \\"20180209\\",\\n \\"Total\\": 110\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n B955107D-E658-4E77-B913-E0AC3D31693F\\n \\n \\n 20180209\\n 110\\n \\n \\n","errorExample":""}]', + 'title' => '查询直播域名截图张数数据', + 'description' => '- 可以用来统计单日截图总张数。'."\n" + .'- 支持查询最近90天的数据。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveStreamsTotalCount' => [ - 'summary' => '调用DescribeLiveStreamsTotalCount接口获取天粒度累计直播流路数。', - 'methods' => [ - 'post', - 'get', + .'本接口无单用户QPS限制,请您根据实际需要合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainSnapshotData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveDomainStagingConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -26856,1095 +22177,583 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '推流域名或播放域名,查域名级别数据时必传。最多支持10个域名批量查询,多个域名用半角逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'Typ', - 'in' => 'query', - 'schema' => [ - 'description' => '不传,默认查域名级别的数据。传aliuid查UID维度的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'aliuid', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'> 支持最大的查询范围是最近1.5年。', - 'type' => 'string', - 'required' => true, - 'example' => '2023-07-24T16:00:00Z', - ], + 'schema' => ['description' => '加速域名。', 'type' => 'string', 'required' => true, 'example' => 'developer.aliyundoc.com'], ], [ - 'name' => 'EndTime', + 'name' => 'FunctionNames', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。需晚于开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'> StartTime和EndTime时间间隔在15天内,且EndTime不超过当前时间。当天数据第二天才查询。', - 'type' => 'string', - 'required' => true, - 'example' => '2023-07-25T16:00:00Z', - ], + 'schema' => ['description' => '功能列表名称,多个用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'aliauth'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'String FCFFE4A4-F34F-4EEF-B401-36A01689AFBC', - ], - 'StreamCountList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'StreamCountInfos' => [ - 'description' => '流信息统计内容。', - 'type' => 'array', - 'items' => [ - 'description' => '统计内容详情。', - 'type' => 'object', - 'properties' => [ - 'Count' => [ - 'description' => '累计直播流数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '934', - ], - 'Timestamp' => [ - 'description' => '时间。', - 'type' => 'string', - 'example' => '2023-07-24T16:00:00Z', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C80705BF-0F76-41FA-BAD1-5B59296A4E59'], + 'DomainConfigs' => [ + 'description' => '域名配置。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '配置状态,取值:'."\n" + .'- **success**:成功。'."\n" + .'- **testing**:配置校验中。'."\n" + .'- **failed**:失败。'."\n" + .'- **configuring**:配置中。', 'type' => 'string', 'example' => 'success'], + 'ConfigId' => ['description' => '配置ID。', 'type' => 'string', 'example' => '6295'], + 'FunctionName' => ['description' => '功能名称。', 'type' => 'string', 'example' => 'aliauth'], + 'FunctionArgs' => [ + 'description' => '功能配置。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ArgName' => ['description' => '配置名称。', 'type' => 'string', 'example' => 'auth_type'], + 'ArgValue' => ['description' => '配置的值。', 'type' => 'string', 'example' => 'req_auth'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', - ], - [ - 'errorCode' => 'Duration.Exceed', - 'errorMessage' => 'Duration between StartTime and EndTime is too long.', - ], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidDomain.NotFound', - 'errorMessage' => 'The domain provided does not belong to you.', - ], + ], + 'title' => '查询灰度环境配置信息', + 'summary' => '调用DescribeLiveDomainStagingConfig查询灰度环境配置信息。', + 'description' => '## 使用说明'."\n" + .'先获取加速域名,再调用本接口查询灰度环境配置信息。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainStagingConfig'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"String\\\\tFCFFE4A4-F34F-4EEF-B401-36A01689AFBC\\",\\n \\"StreamCountList\\": {\\n \\"StreamCountInfos\\": [\\n {\\n \\"Count\\": 934,\\n \\"Timestamp\\": \\"2023-07-24T16:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n String\\tFCFFE4A4-F34F-4EEF-B401-36A01689AFBC\\n \\n 934\\n 2023-07-24T16:00:00Z\\n \\n","errorExample":""}]', - 'title' => '获取天粒度累计直播流路数', - 'description' => '- 最大查询时间跨度:15天。'."\n" - .'- 最大查询时间范围:最长可查近1.5年的数据。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'extraInfo' => '| 错误代码 | 描述 | HTTP状态码 | 语义|'."\n" - .'| :-----| :-----| :---- |:----|'."\n" - .'| InvalidStartTime.Malformed | Specified StartTime is malformed. |400|开始时间错误 |'."\n" - .'| InvalidEndTime.Malformed |Specified EndTime is malformed. |400 | 结束时间错误|'."\n" - .'| MissingDomainName | DomainName is mandatory for this action. | 400 | 缺少DomainName值 |'."\n" - .'|InvalidParam |Parameter invalid. | 400 |参数错误 |'."\n" - .'| Duration.Exceed |Duration between StartTime and EndTime is too long. | 400 | 查询的时间段过长 |'."\n" - .'|InvalidDomain.NotFound | The domain provided does not belong to you. |404 |域名不存在或不属于当前用户 |'."\n" - .'| InternalError | The request processing has failed due to backend service exception. | 500 | 内部错误|'."\n" - ."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C80705BF-0F76-41FA-BAD1-5B59296A4E59\\",\\n \\"DomainConfigs\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"ConfigId\\": \\"6295\\",\\n \\"FunctionName\\": \\"aliauth\\",\\n \\"FunctionArgs\\": [\\n {\\n \\"ArgName\\": \\"auth_type\\",\\n \\"ArgValue\\": \\"req_auth\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n\\nC80705BF-0F76-41FA-BAD1-5B59296A4E59\\n\\n success\\n aliauth\\n 6295\\n \\n req_auth\\n auth_type\\n \\n\\n","errorExample":""}]', ], - 'DescribeLiveStreamMetricDetailData' => [ - 'summary' => '调用DescribeLiveStreamMetricDetailData查询指定域名流粒度批量数据,单次查询最多返回5000行数据。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLiveDomainStreamTranscodeData' => [ + 'summary' => '调用DescribeLiveDomainStreamTranscodeData查询域名转码用量数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'cn-shenzhen' => 'cn-shenzhen', - ], - 'example' => 'cn-shenzhen', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '- 需要查询的加速域名。仅支持单个域名查询,传多个域名将报错。'."\n" - .'- 不指定AppName和StreamName时,按域名返回所有流粒度的数据。'."\n" - .'- 域名为空时,查询用户下的所有加速域名的聚合数据'."\n" - .'- DomainName不为空且AppName为all和StreamName为all时,返回指定加速域名下的聚合数据。'."\n" - .'- 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '需要查询的主播流域名。'."\n" + ."\n" + .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + .'- 若参数为空,默认返回所有直播域名合并后的数据。'."\n" + .'- 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => '查询起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'- 最小数据时间粒度为1小时。'."\n" + .'- 不填默认读取过去24小时数据。', 'type' => 'string', 'required' => true, 'example' => '2017-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间需大于起始时间,不能相差超过1天;日期格式按照ISO8601表示法,并使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2015-12-10T21:00:00Z', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '应用名称,查询指定应用流粒度的数据。'."\n" - ."\n" - .'>指定StreamName时,必须指定AppName。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '查询结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2017-12-10T22:00:00Z'], ], [ - 'name' => 'StreamName', + 'name' => 'Precision', 'in' => 'query', 'schema' => [ - 'description' => '流名称,按照设置的AppName指定StreamName,返回流粒度的数据。'."\n" - ."\n" - .'> 指定StreamName时,必须指定AppName。', + 'description' => '查询的时间精度。取值:'."\n" + .'- **min**(默认):以分钟为单位。'."\n" + .'- **sec**:以秒为单位。', 'type' => 'string', 'required' => false, - 'example' => 'liveStream****', + 'enumValueTitles' => ['sec' => '以秒为单位', 'min' => '以分钟为单位'], + 'example' => 'min', + 'default' => 'min', + 'enum' => ['min', 'sec'], ], ], [ - 'name' => 'Protocol', + 'name' => 'Interval', 'in' => 'query', 'schema' => [ - 'description' => '流协议名,目前支持:**flv**、**hls**、**rtmp**、**rts**和**p2p**。'."\n" + 'description' => '查询的时间粒度。单位:秒。取值:'."\n" ."\n" - .'支持查询多个协议的数据,不同协议之间用英文逗号(,)分隔。但多个协议的数据不会聚合,按照流的粒度输出。'."\n" + .'- **3600**:按小时粒度。'."\n" + .'- **86400**:按天粒度。'."\n" ."\n" - .'> **rts**选项可查询artc协议的超低延时直播流。'."\n" - .'> - 使用rts可能需要额外统计xxx_AliRTS-opu转码流。原因:Web端播超低延时直播时,会生成流名后加上_AliRTS-opus后缀的转码流进行自动转码,产生转码流数据。详细请参见[rts亚秒延时自动转码](~~2948703~~)。', + .'> 不填默认按小时。', 'type' => 'string', 'required' => false, - 'example' => 'flv', + 'enumValueTitles' => [3600 => '按小时粒度', 86400 => '按天粒度'], + 'example' => '3600', + 'enum' => ['3600', '86400'], ], ], [ - 'name' => 'NextPageToken', + 'name' => 'Split', 'in' => 'query', - 'schema' => [ - 'description' => '分页查询token,每次查询最多返回5000行数据,当要查询的数据超过5000行时,响应数据会提供下次查询数据的起始索引。请求时传入该token,将从上一次查询结束的下一行继续查询未获取的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67CIBKLw*****', - ], + 'schema' => ['description' => '分组键。取值:'."\n" + ."\n" + .'- **domain**:域名。如果此参数Split(分组键)取值为domain时,返回参数Domain才生效。'."\n" + .'- **region**:直播中心地域。如果此参数Split(分组键)取值为region时,返回参数Region才生效。'."\n" + .'- **transcode_type**:转码类型。如果此参数Split(分组键)取值为transcode_type时,返回参数TanscodeType才生效。'."\n" + .'- **resolution**:分辨率。如果此参数Split(分组键)取值为resolution时,返回参数Resolution才生效。'."\n" + .'- **fps**:帧率。如果此参数Split(分组键)取值为fps时,返回参数Fps才生效。'."\n" + ."\n" + .'可选一个,也可多选,用英文逗号(,)分隔。'."\n" + ."\n" + .'默认为`domain,region,transcode_type,resolution,fps`,即全部进行分组。'."\n", 'type' => 'string', 'required' => false, 'example' => 'domain', 'default' => 'domain,region,transcode_type,resolution,fps'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '查询数据。', 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => '查询的加速域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2015-12-10T21:00:00Z', - ], - 'NextPageToken' => [ - 'description' => '下一次返回数据的起始索引,当查询的数据未获取完时返回该值。', - 'type' => 'string', - 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=', - ], - 'PageSize' => [ - 'description' => '返回数据行数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5000', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'StreamDetailData' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B******'], + 'TranscodeDataList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'StreamData' => [ - 'description' => '返回数据组。', + 'TranscodeData' => [ + 'description' => '每个时间间隔的网络带宽数据。', 'type' => 'array', 'items' => [ - 'description' => '返回数据组。', 'type' => 'object', 'properties' => [ - 'AppName' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'example' => 'app', - ], - 'Bps' => [ - 'description' => '流每分钟平均带宽,单位:bps。', - 'type' => 'number', - 'format' => 'float', - 'example' => '423304182.66', - ], - 'Count' => [ - 'description' => '流每分钟总在线人数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '423304182', - ], - 'FlvBps' => [ - 'description' => 'FLV协议带宽,单位:bps。'."\n" - ."\n" - .'> 指定协议不满足时,不返回。', - 'type' => 'number', - 'format' => 'float', - 'example' => '454', - ], - 'FlvCount' => [ - 'description' => 'FLV协议在线人数。'."\n" - ."\n" - .'> 指定协议不满足时,不返回。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '32', - ], - 'FlvTraffic' => [ - 'description' => 'FLV协议流量,单位:Byte。'."\n" - ."\n" - .'> 指定协议不满足时,不返回。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1254', - ], - 'HlsBps' => [ - 'description' => 'HLS协议带宽,单位:bps。'."\n" - ."\n" - .'> 指定协议不满足时,不返回。', - 'type' => 'number', - 'format' => 'float', - 'example' => '4456', - ], - 'HlsCount' => [ - 'description' => 'HLS协议在线人数。'."\n" - ."\n" - .'> 目前不支持。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '56', - ], - 'HlsTraffic' => [ - 'description' => 'HLS协议流量,单位:Byte。'."\n" - ."\n" - .'> 指定协议不满足时,不返回。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '568', - ], - 'NewConns' => [ - 'description' => '流每分钟新建连接数。', - 'type' => 'string', - 'example' => '450', - ], - 'P2pBps' => [ - 'description' => 'P2P协议带宽,单位:bps。'."\n" - ."\n" - .'>指定协议不满足时,不返回.', - 'type' => 'number', - 'format' => 'float', - 'example' => '6845', - ], - 'P2pCount' => [ - 'description' => 'P2P协议在线人数。'."\n" - ."\n" - .'> 指定协议不满足时,不返回。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '78', - ], - 'P2pTraffic' => [ - 'description' => 'P2P协议流量,单位:Byte。'."\n" - ."\n" - .'> 指定协议不满足时,不返回。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '4102', - ], - 'RtmpBps' => [ - 'description' => 'RTMP协议带宽,单位:bps。'."\n" - ."\n" - .'>指定协议不满足时,不返回。', - 'type' => 'number', - 'format' => 'float', - 'example' => '3323', - ], - 'RtmpCount' => [ - 'description' => 'RTMP协议在线人数。'."\n" - ."\n" - .'> 指定协议不满足时,不返回。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '63', - ], - 'RtmpTraffic' => [ - 'description' => 'RTMP协议流量,单位:Byte。'."\n" - ."\n" - .'> 指定协议不满足时,不返回。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '5568', - ], - 'RtsBps' => [ - 'description' => 'RTS协议带宽,单位:bps。'."\n" - ."\n" - .'> 指定协议不满足时,不返回。', - 'type' => 'number', - 'format' => 'float', - 'example' => '2361', - ], - 'RtsCount' => [ - 'description' => 'RTS协议在线人数。'."\n" - ."\n" - .'> 指定协议不满足时,不返回。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '89', - ], - 'RtsTraffic' => [ - 'description' => 'RTS协议流量,单位:Byte。'."\n" - ."\n" - .'> 指定协议不满足时,不返回。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2322', - ], - 'StreamName' => [ - 'description' => '流名称。', - 'type' => 'string', - 'example' => 'test.flv', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'Traffic' => [ - 'description' => '流每分钟总流量,单位:Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '423304182', - ], + 'TanscodeType' => ['description' => '转码类型。取值:'."\n" + ."\n" + .'> 如果请求参数Split(分组键)为transcode_type时,此返回参数才生效。'."\n" + ."\n\n" + .''."\n" + ."\n" + .'- **H264STD**:H.264标准转码。'."\n" + .'- **H265STD**:H.265标准转码。'."\n" + ."\n" + .''."\n" + ."\n" + .'- **H264NBHD**:H.264窄带高清转码。'."\n" + .'- **H265NBHD**:H.265窄带高清转码。'."\n" + .'- **AUDIO**:音频转码。', 'type' => 'string', 'example' => 'H264STD'], + 'Domain' => ['description' => '主播流域名。'."\n" + ."\n" + .'> 如果请求参数Split(分组键)为domain时,此返回参数才生效。', 'type' => 'string', 'example' => 'example.com'], + 'Region' => ['description' => '域名所属地域。 取值:'."\n" + ."\n" + .'> 如果请求参数Split(分组键)为region时,此返回参数才生效。'."\n" + .'- **cn-beijing**:北京。'."\n" + .'- **cn-shanghai**:上海。'."\n" + .'- **cn-qingdao**:青岛。'."\n" + .'- **cn-shenzhen**:深圳。'."\n" + .'- **ap-northeast-1**:日本。'."\n" + .'- **ap-southeast-1**:新加坡。'."\n" + .'- **ap-southeast-5**:印尼。'."\n" + .'- **eu-central-1**:德国。', 'type' => 'string', 'example' => 'cn-beijing'], + 'Duration' => ['description' => '时长。单位:分钟。', 'type' => 'integer', 'format' => 'int32', 'example' => '2000'], + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'Fps' => ['description' => '帧率。'."\n" + ."\n" + .'> 如果请求参数Split(分组键)为fps时,此返回参数才生效。', 'type' => 'string', 'example' => 'normal'], + 'Resolution' => ['description' => '分辨率。取值:'."\n" + ."\n" + .'> 如果请求参数Split(分组键)为resolution时,此返回参数才生效。'."\n" + ."\n" + .'- **2K**'."\n" + .'- **4K**'."\n" + .'- **LD**:流畅。'."\n" + .'- **SD**:标清。'."\n" + .'- **HD**:高清。'."\n" + .'- **def**:音频。', 'type' => 'string', 'example' => 'HD'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidPageToken', - 'errorMessage' => 'The token of page is invalid.', - ], - [ - 'errorCode' => 'InvalidAppName.Mismatch', - 'errorMessage' => 'The AppName param must be passed.', - ], - [ - 'errorCode' => 'InvalidStreamProtocol.NotSupport', - 'errorMessage' => 'The specified stream protocol is not support.', - ], - [ - 'errorCode' => 'InvalidStreamName.LengthTooLong', - 'errorMessage' => 'The specified stream name is too long.', - ], - [ - 'errorCode' => 'InvalidAppName.LengthTooLong', - 'errorMessage' => 'The specified app name is too long.', - ], - [ - 'errorCode' => 'InvalidTime.ValueNotSupported', - 'errorMessage' => 'Specified Time is malformed.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidParamPrecision', 'errorMessage' => 'The parameter Precision is invalid, please check StartTime and EndTime or Precision.', 'description' => 'Precision 参数错误,请检查StartTime、EndTime或者Precision 参数。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2015-12-10T21:00:00Z\\",\\n \\"NextPageToken\\": \\"UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\",\\n \\"PageSize\\": 5000,\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"StartTime\\": \\"2015-12-10T20:00:00Z\\",\\n \\"StreamDetailData\\": {\\n \\"StreamData\\": [\\n {\\n \\"AppName\\": \\"app\\",\\n \\"Bps\\": 423304182.66,\\n \\"Count\\": 423304182,\\n \\"FlvBps\\": 454,\\n \\"FlvCount\\": 32,\\n \\"FlvTraffic\\": 1254,\\n \\"HlsBps\\": 4456,\\n \\"HlsCount\\": 56,\\n \\"HlsTraffic\\": 568,\\n \\"NewConns\\": \\"450\\",\\n \\"P2pBps\\": 6845,\\n \\"P2pCount\\": 78,\\n \\"P2pTraffic\\": 4102,\\n \\"RtmpBps\\": 3323,\\n \\"RtmpCount\\": 63,\\n \\"RtmpTraffic\\": 5568,\\n \\"RtsBps\\": 2361,\\n \\"RtsCount\\": 89,\\n \\"RtsTraffic\\": 2322,\\n \\"StreamName\\": \\"test.flv\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\",\\n \\"Traffic\\": 423304182\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2015-12-10T21:00:00Z\\n 2015-12-10T20:00:00Z\\n B955107D-E658-4E77-B913-E0AC3D31693E\\n UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\n 5000\\n example.com\\n \\n 4102\\n 3323\\n 4456\\n 6845\\n test.flv\\n 78\\n 423304182\\n 63\\n 89\\n 2361\\n 423304192\\n 568\\n 454\\n 423304182\\n 2322\\n 5568\\n 56\\n app\\n 32\\n 1254\\n 2015-12-10T20:00:00Z\\n 450\\n \\n","errorExample":""}]', - 'title' => '查询指定域名流粒度批量数据', - 'description' => '若指定域名第一次使用此接口进行流粒度数据的查询,需先[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)进行后端配置后方可使用。'."\n" - .'请在工单中提供如下信息:'."\n" - .'- 需要查询的域名。'."\n" - .'- 对应域名下最高并发直播流数。'."\n" - .'- 每个直播流最高并发在线人数。'."\n" - .'- 对应客户端请求包含的协议类型。'."\n" - ."\n" - .'>当前接口将于2025年9月31号不再进行维护,请及时切换到新版流粒度接口[DescribeLiveUserStreamMetricData](~~2948552~~),新版流粒度接口无需后台配置即可使用。>'."\n" - ."\n\n" - .'## 使用限制'."\n" - .'- 默认不支持HLS的在线人数统计。'."\n" - ."\n" - .'- 仅支持单个域名查询。'."\n" - ."\n" - .'- 数据最大查询跨度:24小时。'."\n" - ."\n" - .'- 数据最小查询粒度:1分钟。'."\n" - ."\n" - .'- 数据最大查询范围:31天。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B******\\",\\n \\"TranscodeDataList\\": {\\n \\"TranscodeData\\": [\\n {\\n \\"TanscodeType\\": \\"H264STD\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"Region\\": \\"cn-beijing\\",\\n \\"Duration\\": 2000,\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"Fps\\": \\"normal\\",\\n \\"Resolution\\": \\"HD\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\n\\n \\n normal\\n cn-beijing\\n 2000\\n H264STD\\n example.com\\n 2017-12-10T20:00:00Z\\n HD\\n \\n\\n","errorExample":""}]', + 'title' => '查询域名转码用量数据', + 'description' => '- 可以用来统计每个时间间隔的网络带宽数据。'."\n" + .'- 支持批量域名查询,多个域名用英文逗号(,)分隔。'."\n" + .'- 最多可获取最近90天的数据。'."\n" + .'- 数据时间粒度为小时或天。'."\n" + .'- 不同转码类型与转码分辨率对应的计费档次,请参见[直播转码计费说明](~~90424~~)中的转码账单中不同实例规格对应的转码计费档次说明。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveStreamDetailFrameRateAndBitRateData' => [ - 'summary' => '查询RTMP协议直播流的详细音视频帧率码率。', - 'methods' => [ - 'get', - 'post', + .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '## 特殊错误码'."\n" + .'|ErrorCode 错误码 |Message 错误信息 |HTTP 状态 |语义 |'."\n" + .'| ------------- |------------ | ----- | ----- |'."\n" + .'|Throttling |Request was denied due to request throttling. |503 |请求被流量控制限制。|'."\n" + .'|InvalidDomain.NotFound |The domain provided does not belong to you. |404 |域名不存在或不属于当前用户。|', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainStreamTranscodeData'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainStreamTranscodeData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveDomainTimeShiftData' => [ + 'summary' => '查询直播时移用量数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '215287', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '您的推流域名或播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'AppName', - ], + 'schema' => ['description' => '需要查询的主播流域名。'."\n" + ."\n" + .'> '."\n" + .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。'."\n" + .'> - 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + .'> - 若参数为空,默认返回所有直播域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'StreamName', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'exampleStreamName', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> - 最小数据粒度为5分钟。'."\n" + .'> - 不写默认读取过去24小时数据。', 'type' => 'string', 'required' => false, 'example' => '2021-03-03T00:00:00Z'], ], [ - 'name' => 'StartTime', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-21T08:00:00Z', - ], + 'schema' => ['description' => '结束时间。结束时间需大于起始时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2021-03-03T02:00:00Z'], ], [ - 'name' => 'EndTime', + 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> StartTime 和 EndTime 指定不合法,或者不指定 StartTime 和 EndTime 时,默认读取过去 1 小时的数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-22T08:00:00Z', - ], + 'schema' => ['description' => '查询数据的时间粒度。单位:秒。取值:'."\n" + ."\n" + .'- 300。'."\n" + .'- 3600。'."\n" + .'- 86400。'."\n" + ."\n" + .'不传或传值不支持时,使用默认值300秒。', 'type' => 'string', 'required' => false, 'example' => '300'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'FrameRateAndBitRateInfos' => [ - 'description' => '每个时间间隔的详细音视频帧率码率数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'AudioBitRate' => [ - 'description' => '直播流的音频码率。单位:Bps。', - 'type' => 'number', - 'format' => 'float', - 'example' => '200', - ], - 'AudioFrameRate' => [ - 'description' => '直播流的音频帧率。单位:FPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '60', - ], - 'BitRate' => [ - 'description' => '直播流的码率。单位:Bps。', - 'type' => 'number', - 'format' => 'float', - 'example' => '1420', - ], - 'StreamUrl' => [ - 'description' => '直播流的URL。', - 'type' => 'string', - 'example' => 'rtmp://example.com/AppName/exampleStreamName', - ], - 'Time' => [ - 'description' => '统计时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2016-09-13T16:04:00Z', - ], - 'VideoBitRate' => [ - 'description' => '直播流的视频码率。单位:Bps。', - 'type' => 'number', - 'format' => 'float', - 'example' => '1200', - ], - 'VideoFrameRate' => [ - 'description' => '直播流的视频帧率。单位:FPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '30', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '8AE1CB3A-6510-442E-A6B9-EF03D05B3E09'], + 'TimeShiftData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => '每个时间间隔的时移用量数据。', + 'type' => 'array', + 'items' => [ + 'description' => '每个时间间隔的时移用量数据。', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '时移类型。可以是HLS_D1、HLS_D7等。', 'type' => 'string', 'example' => 'HLS_D7'], + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2021-03-03T00:00:00Z'], + 'Size' => ['description' => '时移存储用量。单位:Byte。', 'type' => 'string', 'example' => '1664165660'], + ], ], ], ], - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', + 'description' => '', ], ], + 'description' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"FrameRateAndBitRateInfos\\": [\\n {\\n \\"AudioBitRate\\": 200,\\n \\"AudioFrameRate\\": 60,\\n \\"BitRate\\": 1420,\\n \\"StreamUrl\\": \\"rtmp://example.com/AppName/exampleStreamName\\",\\n \\"Time\\": \\"2016-09-13T16:04:00Z\\",\\n \\"VideoBitRate\\": 1200,\\n \\"VideoFrameRate\\": 30\\n }\\n ],\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 200\\n 60\\n 1420\\n rtmp://example.com/AppName/exampleStreamName\\n \\n 1200\\n 30\\n \\n BC858082-736F-4A25-867B-E5B67C85ACF7\\n","errorExample":""}]', - 'title' => '查询RTMP协议直播流的详细音视频帧率码率', - 'description' => '- 调用本接口查询RTMP协议的直播流在设置时间范围内的一组音视频帧率和音视频码率。'."\n" - .'- 本接口为监控数据接口,数据采集处理方式不同于计费,不能用于计算用量进行对账参考。'."\n" - .'- 适用于获取90天内的历史数据。'."\n" - .'- 接口数据延时在3-5分钟。'."\n" - .'- 单次请求的时间跨度最大为1小时。', - 'responseParamsDescription' => '> 直播流的总码率与音频码率、视频码率的计算采集方式是不同的,音频码率与视频码率的数值之和不一定与总码率相等。本接口返回数据仅用于参考和监控之用,不能用于计算用量和对账。', - ], - 'DescribeLiveUserStreamMetricData' => [ - 'summary' => '用于查询指定加速域名下的流粒度批量数据,支持多种协议。', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8AE1CB3A-6510-442E-A6B9-EF03D05B3E09\\",\\n \\"TimeShiftData\\": {\\n \\"DataModule\\": [\\n {\\n \\"Type\\": \\"HLS_D7\\",\\n \\"TimeStamp\\": \\"2021-03-03T00:00:00Z\\",\\n \\"Size\\": \\"1664165660\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n \\n HLS_D7\\n 1664165660\\n 2021-03-03T00:00:00Z\\n \\n\\n8AE1CB3A-6510-442E-A6B9-EF03D05B3E09\\n","errorExample":""}]', + 'title' => '查询直播时移用量数据', + 'description' => '- 可以用来统计每个时间间隔的时移用量数据。'."\n" + .'- 最多可获取最近90天的数据。'."\n" + .'- 数据间隔固定为1小时。'."\n" + .'- 最长获取数据时间跨度31天。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '### 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" + .'|------------|--------|---------|------|'."\n" + .'| Throttling | Request was denied due to request throttling. | 503 | 请求被流量控制限制。|'."\n" + .'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | 域名不存在或不属于当前用户。|', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainTimeShiftData'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainTimeShiftData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveDomainTrafficData' => [ + 'summary' => '查询直播域名网络流量监控数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '214643', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的加速域名。'."\n" - ."\n\n" - .'> 仅支持单个域名查询,传多个域名将报错。域名为空时,查询用户下的所有加速域名的聚合数据。不指定 `AppName` 和 `StreamName` 时,按域名返回所有流粒度的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'test.com', - ], - ], - [ - 'name' => 'StartTime', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点,日期格式按照 ISO8601 表示法,并使用 UTC 时间。格式为:`YYYY-MM-DDThh:mm:ssZ`。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'EndTime', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间需大于起始时间,不能相差超过 1 天;日期格式按照 ISO8601 表示法,并使用 UTC 时间。格式为:`YYYY-MM-DDThh:mm:ssZ`。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2015-12-10T21:00:00Z', - ], + 'schema' => ['description' => '播流域名。支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。若参数为空,默认返回所有直播域名合并后的数据。'."\n" + .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'AppName', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '应用名称。指定应用名称,查询对应应用流粒度的数据;指定 `StreamName` 时,必须指定 `AppName`。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'app', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'>支持查询最近**90**天的数据。'."\n", 'type' => 'string', 'required' => false, 'example' => '2017-12-10T14:00:00Z'], ], [ - 'name' => 'StreamName', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '流名称。指定 `StreamName` 时,按指定 `AppName` 的指定 `StreamName`,返回流粒度的数据(指定 `StreamName` 时,必须指定 `AppName`)。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test.flv', - ], + 'schema' => ['description' => '结束时间。需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'required' => false, 'example' => '2017-12-10T15:00:00Z'], ], [ - 'name' => 'Protocol', + 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '流协议名。指定流协议名查询流对应协议的数据,目前支持:`flv`, `hls`, `rtmp`, `rts`, `p2p`。支持查询多个协议的数据,协议间用 `,` 分隔,多个协议的数据不会聚合,按照流的粒度输出。'."\n" - .'> **rts**选项可查询artc协议的超低延时直播流。'."\n" - .'> - 使用rts可能需要额外统计xxx_AliRTS-opu转码流。原因:Web端播超低延时直播时,会生成流名后加上_AliRTS-opus后缀的转码流进行自动转码,产生转码流数据。详细请参见[rts亚秒延时自动转码](~~2948703~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'flv', - ], + 'schema' => ['description' => '查询数据的时间粒度。单位:秒。取值:'."\n" + .'- **300**(默认值)。'."\n" + .'- **3600**。'."\n" + .'- **86400**。'."\n" + ."\n" + .'> 不传或传值不支持时,使用默认值**300**秒。', 'type' => 'string', 'required' => false, 'example' => '300'], ], [ - 'name' => 'PageNumber', + 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '运营商英文名。通过[DescribeCdnRegionAndIsp](~~91077~~)获得,不传为所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'alibaba'], ], [ - 'name' => 'PageSize', + 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '单页数据条数,单页最大5000'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '区域英文名。通过[DescribeCdnRegionAndIsp](~~91077~~)获得,不传为所有区域。', 'type' => 'string', 'required' => false, 'example' => 'tianjin'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'test.com', - ], - 'EndTime' => [ - 'description' => 'YYYY-MM-DDThh:mm:ssZ'."\n", - 'type' => 'string', - 'example' => '2015-12-10T21:00:00Z', - ], - 'PageSize' => [ - 'description' => '每页显示的条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], - 'StartTime' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。格式为:`YYYY-MM-DDThh:mm:ssZ`'."\n", - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'StreamDetailData' => [ - 'description' => '每个时间间隔的流量数据。', - 'type' => 'array', - 'items' => [ - 'description' => '返回数据组。', - 'type' => 'object', - 'properties' => [ - 'AppName' => [ - 'description' => '应用名称,无论是否指定均返回该值。', - 'type' => 'string', - 'example' => 'app', - ], - 'Bps' => [ - 'description' => '流每分钟总带宽,单位`bps`。', - 'type' => 'number', - 'format' => 'float', - 'example' => '423304182.66', - ], - 'Count' => [ - 'description' => '流每分钟总在并发连接数。'."\n" - ."\n" - .'> **并发连接数**指单位时间内同一个流下对客户端进程连接数的统计。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '423304182', - ], - 'FlvBps' => [ - 'description' => 'flv协议带宽,单位bps (指定协议不满足时,不返回)。', - 'type' => 'number', - 'format' => 'float', - 'example' => '454', - ], - 'FlvCount' => [ - 'description' => 'flv协议的并发连接数(指定协议不满足时,不返回)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '32', - ], - 'FlvTraffic' => [ - 'description' => 'flv协议流量,单位byte (指定协议不满足时,不返回)。', - 'type' => 'number', - 'format' => 'double', - 'example' => '1254', - ], - 'HlsBps' => [ - 'description' => 'hls协议带宽,单位bps (指定协议不满足时,不返回)。', - 'type' => 'number', - 'format' => 'float', - 'example' => '4456', - ], - 'HlsCount' => [ - 'description' => 'hls协议的并发连接数 (指定协议不满足时,不返回)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '56', - ], - 'HlsTraffic' => [ - 'description' => 'hls协议流量,单位byte (指定协议不满足时,不返回)。', - 'type' => 'number', - 'format' => 'double', - 'example' => '568', - ], - 'NewConns' => [ - 'description' => '流每分钟新建连接数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '450', - ], - 'P2pBps' => [ - 'description' => 'p2p协议带宽,单位bps (指定协议不满足时,不返回)。', - 'type' => 'number', - 'format' => 'float', - 'example' => '6845', - ], - 'P2pCount' => [ - 'description' => 'p2p协议的并发连接数(指定协议不满足时,不返回)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '78', - ], - 'P2pTraffic' => [ - 'description' => 'p2p协议流量,单位byte (指定协议不满足时,不返回)。', - 'type' => 'number', - 'format' => 'double', - 'example' => '4102', - ], - 'RtmpBps' => [ - 'description' => 'rtmp协议带宽,单位bps (指定协议不满足时,不返回)。', - 'type' => 'number', - 'format' => 'float', - 'example' => '3323', - ], - 'RtmpCount' => [ - 'description' => 'rtmp协议的并发连接数(指定协议不满足时,不返回)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '63', - ], - 'RtmpTraffic' => [ - 'description' => 'rtmp协议流量,单位byte (指定协议不满足时,不返回)。', - 'type' => 'number', - 'format' => 'double', - 'example' => '5568', - ], - 'RtsBps' => [ - 'description' => 'rts协议带宽,单位bps (指定协议不满足时,不返回)。', - 'type' => 'number', - 'format' => 'double', - 'example' => '2361', - ], - 'RtsCount' => [ - 'description' => 'rts协议的并发连接数 (指定协议不满足时,不返回)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '89', - ], - 'RtsTraffic' => [ - 'description' => 'rts协议流量,单位byte (指定协议不满足时,不返回)。', - 'type' => 'number', - 'format' => 'double', - 'example' => '2322', - ], - 'StreamName' => [ - 'description' => '流名称,无论是否指定均返回该值。', - 'type' => 'string', - 'example' => 'test.flv', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'Traffic' => [ - 'description' => '流每分钟总流量,单位byte。', - 'type' => 'number', - 'format' => 'double', - 'example' => '423304182', + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2017-12-10T15:00:00Z'], + 'StartTime' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2017-12-10T14:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E'], + 'DomainName' => ['description' => '播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '查询数据的时间粒度。', 'type' => 'string', 'example' => '300'], + 'TrafficDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => '每个时间间隔的流量数据。', + 'type' => 'array', + 'items' => [ + 'description' => '每个时间间隔的流量数据。', + 'type' => 'object', + 'properties' => [ + 'TrafficValue' => ['description' => '总流量。单位:Byte。', 'type' => 'string', 'example' => '454680793'], + 'HttpTrafficValue' => ['description' => 'HTTP流量。单位:Byte。', 'type' => 'string', 'example' => '0'], + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2017-12-10T15:00:05Z'], + 'HttpsTrafficValue' => ['description' => 'HTTPS流量。单位:Byte。', 'type' => 'string', 'example' => '454680793'], + ], ], ], ], - ], - 'TotalCount' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '50', - ], - 'PageNumber' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Meter.ParamError', - 'errorMessage' => 'Param Error:%s,Please Check Again.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Meter.AuthError', - 'errorMessage' => 'Authentication Failed,Please Try Again.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], ], - 500 => [ - [ - 'errorCode' => 'Meter.ServerInternalError', - 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', - ], - [ - 'errorCode' => 'Meter.DataSourceQueryError', - 'errorMessage' => 'Data Source Error:%s,Please Try Again.', - ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T15:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T14:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TrafficValue\\": \\"454680793\\",\\n \\"HttpTrafficValue\\": \\"0\\",\\n \\"TimeStamp\\": \\"2017-12-10T15:00:05Z\\",\\n \\"HttpsTrafficValue\\": \\"454680793\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n2017-12-10T15:00:00Z\\nB955107D-E658-4E77-B913-E0AC3D31693E\\nexample.com\\n\\n \\n 0\\n 454680793\\n 454680793\\n 2017-12-10T15:00:05Z\\n \\n\\n300\\n2017-12-10T14:00:00Z\\n","errorExample":"{\\n \\"DataInterval\\":\\"300\\",\\n \\"DomainName\\":\\"test.com\\",\\n \\"EndTime\\":\\"2017-12-10T21:00:00Z\\",\\n \\"RequestId\\":\\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"StartTime\\":\\"2017-12-10T20:00:00Z\\",\\n \\"TrafficDataPerInterval\\":{\\n \\"DataModule\\":[\\n {\\n \\"HttpTrafficValue\\":\\"0\\",\\n \\"HttpsTrafficValue\\":\\"423304182\\",\\n \\"TimeStamp\\":\\"2017-12-10T20:00:00Z\\",\\n \\"TrafficValue\\":\\"423304182\\"\\n },\\n {\\n \\"HttpTrafficValue\\":\\"0\\",\\n \\"HttpsTrafficValue\\":\\"454680793\\",\\n \\"TimeStamp\\":\\"2017-12-10T20:00:05Z\\",\\n \\"TrafficValue\\":\\"454680793\\"\\n }\\n ]\\n }\\n}"}]', + 'title' => '查询直播域名流量数据', + 'description' => '- 不指定StartTime和EndTime时,默认读取过去24小时的数据。'."\n" + .'- 本接口为监控数据接口,数据采集处理方式不同于计费,不能用于计算用量进行对账参考。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainTrafficData'], ], - 502 => [ - [ - 'errorCode' => 'Meter.ReadyTsError', - 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DomainName\\": \\"test.com\\",\\n \\"EndTime\\": \\"2015-12-10T21:00:00Z\\",\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"StartTime\\": \\"2015-12-10T20:00:00Z\\",\\n \\"StreamDetailData\\": [\\n {\\n \\"AppName\\": \\"app\\",\\n \\"Bps\\": 423304182.66,\\n \\"Count\\": 423304182,\\n \\"FlvBps\\": 454,\\n \\"FlvCount\\": 32,\\n \\"FlvTraffic\\": 1254,\\n \\"HlsBps\\": 4456,\\n \\"HlsCount\\": 56,\\n \\"HlsTraffic\\": 568,\\n \\"NewConns\\": 450,\\n \\"P2pBps\\": 6845,\\n \\"P2pCount\\": 78,\\n \\"P2pTraffic\\": 4102,\\n \\"RtmpBps\\": 3323,\\n \\"RtmpCount\\": 63,\\n \\"RtmpTraffic\\": 5568,\\n \\"RtsBps\\": 2361,\\n \\"RtsCount\\": 89,\\n \\"RtsTraffic\\": 2322,\\n \\"StreamName\\": \\"test.flv\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\",\\n \\"Traffic\\": 423304182\\n }\\n ],\\n \\"TotalCount\\": 50,\\n \\"PageNumber\\": 1\\n}","type":"json"}]', - 'title' => '查询指定域名流粒度批量数据', - 'description' => '> 暂不支持HLS协议新建连接数查询,HLS的并发连接数按照默认格式的请求进行统计,特殊格式的请求需[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)进行配置。默认格式如下:'."\n" - .'> - m3u8请求示例:http(s)://example.aliyundoc.com/Appname/ StreamName.m3u8'."\n" - .'> - ts请求示例:http(s)://example.aliyundoc.com/Appname/ StreamName/153xxxxxxxx_137xxxxx.ts'."\n" - .'## 请求说明'."\n" - .'- **单次查询限制**:单次查询最多返回5000行数据。'."\n" - .'- **域名查询限制**:仅支持单个域名查询,多个域名会报错。'."\n" - .'- **时间跨度限制**:数据最大查询跨度为24小时。'."\n" - .'- **时间粒度限制**:数据最小查询粒度为1分钟。'."\n" - .'- **查询范围限制**:数据最大查询范围为31天。'."\n" - .'- **调用频率限制**:单用户调用频率为10次/秒。'."\n" - .'- **特殊参数组合**:当`DomainName`不为空且`AppName`和`StreamName`都设置为`all`时,将返回加速域名下的聚合数据。', ], - 'DescribeLiveDomainRecordUsageData' => [ - 'summary' => '调用DescribeLiveDomainRecordUsageData查询直播录制路数、转封装用量。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLiveDrmUsageData' => [ + 'summary' => '查询指定时间范围内DRM用量数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -27955,125 +22764,53 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的主播流域名。'."\n" - ."\n" - .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - .'- 若参数为空,默认返回所有直播域名合并后的数据。'."\n" - .'- 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '直播域名。'."\n" + .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + .'- 若参数为空,默认返回所有直播域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'- 最小数据粒度为5分钟。'."\n" - .'- 不填默认读取过去24小时数据。'."\n" - ."\n" - .'>起始时间最早可设置为从当前时间开始的90天内,精确到秒。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-05-10T20:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。最小数据粒度为5分钟', 'type' => 'string', 'required' => true, 'example' => '2021-05-01T16:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。取值要求:'."\n" - ."\n" - .'- 需晚于起始时间(StartTime)。'."\n" - .'- 结束时间减去起始时间(查询数据的时间跨度)最长31天。超出31天请求失败并报错。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2021-05-10T21:00:00Z', - ], + 'schema' => ['description' => '结束时间需大于起始时间,获日期格式按照ISO8601表示法,并使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ', 'type' => 'string', 'required' => true, 'example' => '2021-05-02T16:00:00Z'], ], [ - 'name' => 'Region', + 'name' => 'Interval', 'in' => 'query', 'schema' => [ - 'description' => '地区。取值:'."\n" - ."\n" - .'- **cn-beijing**:北京'."\n" - ."\n" - .'- **cn-shanghai**:上海'."\n" - ."\n" - .'- **cn-shenzhen**:深圳'."\n" - ."\n" - .'- **cn-qingdao**:青岛'."\n" - ."\n" - .'- **ap-southeast-1**:新加坡'."\n" - ."\n" - .'- **eu-central-1**:德国'."\n" - ."\n" - .'- **ap-northeast-1**:东京'."\n" + 'description' => '查询数据的时间粒度。单位:秒。取值:'."\n" + .'- 300'."\n" + .'- 3600'."\n" + .'- 86400'."\n" ."\n" - .'- **ap-southeast-5**:雅加达', + .'不传或传值不支持时,使用默认值3600秒。', 'type' => 'string', 'required' => false, - 'example' => 'cn-shanghai', + 'enumValueTitles' => [300 => '300秒', 3600 => '3600秒', 86400 => '86400秒'], + 'example' => '3600', + 'default' => '3600', + 'enum' => ['300', '3600', '86400'], ], ], [ 'name' => 'SplitBy', 'in' => 'query', - 'schema' => [ - 'description' => '分组键。取值:'."\n" - ."\n" - .'- **domain**:查询结果按域名分组。'."\n" - .'- **record_fmt**:查询结果按录制类型分组。'."\n" - ."\n" - .'> 可选一个,也可多选。多选时用英文逗号(,)分隔。默认为`domain,record_fmt`。置为空或`null`的时候即不区分上述键。', - 'type' => 'string', - 'required' => false, - 'example' => 'domain,record_fmt', - 'default' => 'record_fmt,domain', - ], - ], - [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度。单位:秒。取值:'."\n" - ."\n" - .'- 60。'."\n" - ."\n" - .'- 300。'."\n" - ."\n" - .'- 3600。'."\n" - ."\n" - .'- 86400。'."\n" - ."\n" - .'>不传或传值不支持时,查询时间跨度在31天以内的时间粒度默认值为300秒;查询时间跨度大于31天的时间粒度默认值为86400。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '分组键。默认为domain,region,drm_type。可选值为domain、region、drm_type 中的一个或多个,多个使用逗号(半角)分隔。置为空或null即不区分上述键。', 'type' => 'string', 'required' => false, 'example' => 'domain,region,drm_type'], ], ], 'responses' => [ @@ -28081,139 +22818,73 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2021-05-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '起始时间。', - 'type' => 'string', - 'example' => '2021-05-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB', - ], - 'RecordUsageData' => [ + 'DrmUsageData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => '每个时间间隔的录制用量数据。', + 'description' => '每个时间间隔的DRM用量数据。', 'type' => 'array', 'items' => [ + 'description' => '每个时间间隔的DRM用量数据。', 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => '录制文件类型。'."\n" - .'请求参数SplitBy取值包含`record_fmt`时有效。', - 'type' => 'string', - 'example' => 'MP4', - ], - 'Domain' => [ - 'description' => '主播流域名。'."\n" - .'请求参数SplitBy取值包含`domain`时返回。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Region' => [ - 'description' => '地区。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'TimeStamp' => [ - 'description' => '起始时刻。', - 'type' => 'string', - 'example' => '2021-05-10T20:00:00Z', - ], - 'Duration' => [ - 'description' => '录制时长用量,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3560', - ], - 'Count' => [ - 'description' => '峰值路数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], + 'Count' => ['description' => '调用次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'Domain' => ['description' => '用量域名,SplitBy指定domain时,分组输出。', 'type' => 'string', 'example' => 'example.com'], + 'DrmType' => ['description' => 'DRM类型,SplitBy指定drm_type时,分组输出。', 'type' => 'string', 'example' => 'Widevine'], + 'Region' => ['description' => '直播中心,SplitBy指定region时,分组输出。', 'type' => 'string', 'example' => 'cn-beijing'], + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC 时间。格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2021-05-01T16:00:00Z'], ], ], ], ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '91FC2D9D-B042-4634-8A5C-7B8E7482C22D'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified StartTime or EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidRecordFmt.NotSupported', - 'errorMessage' => 'The RecordFmt parameter is not supported.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2021-05-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2021-05-10T20:00:00Z\\",\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-910811DEBFEB\\",\\n \\"RecordUsageData\\": {\\n \\"DataModule\\": [\\n {\\n \\"Type\\": \\"MP4\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"TimeStamp\\": \\"2021-05-10T20:00:00Z\\",\\n \\"Duration\\": 3560,\\n \\"Count\\": 1\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2021-05-10T20:00:00Z\\n 2021-05-10T21:00:00Z\\n 4B460F8B-993C-4F48-B98A-910811DEBFEB\\n \\n \\n MP4\\n 3560\\n 1\\n example.com\\n 2021-05-10T20:00:00Z\\n \\n \\n","errorExample":""}]', - 'title' => '查询直播录制路数、转封装用量', - 'description' => '- 统计每日录制并发路数、不同时间间隔打点数据。可以用来统计每日并发录制峰值路数、每月并发录制峰值路数。'."\n" - .'- 时移的路数不会被包含在录制路数中重复计算。'."\n" - .'- 支持到域名粒度查询,支持批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - ."\n" - .'- 数据粒度1分钟,最长查询跨度24小时,最长保存时间60天。'."\n" - ."\n" - .'- 数据粒度1小时,最长查询跨度31天,最长保存时间180天。'."\n" - ."\n" - .'- 数据粒度1天,最长查询跨度90天,最长保存时间366天。'."\n" - ."\n\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" - .'|------------|--------|---------|------|'."\n" - .'| Throttling | Request was denied due to request throttling. | 503 | 请求被流量控制限制。|'."\n" - .'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | 域名不存在或不属于当前用户。 |', - ], - 'DescribeLiveDomainSnapshotData' => [ - 'summary' => '调用DescribeLiveDomainSnapshotData查询直播域名截图张数。', - 'methods' => [ - 'post', - 'get', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DrmUsageData\\": {\\n \\"DataModule\\": [\\n {\\n \\"Count\\": 1,\\n \\"Domain\\": \\"example.com\\",\\n \\"DrmType\\": \\"Widevine\\",\\n \\"Region\\": \\"cn-beijing\\",\\n \\"TimeStamp\\": \\"2021-05-01T16:00:00Z\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"91FC2D9D-B042-4634-8A5C-7B8E7482C22D\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 1\\n example.com\\n Widevine\\n cn-beijing\\n 2021-05-01T16:00:00Z\\n \\n 91FC2D9D-B042-4634-8A5C-7B8E7482C22D\\n","errorExample":""}]', + 'title' => '获取直播DRM用量数据', + 'description' => '### 使用说明'."\n" + .'- 最多可获取最近90天的数据。'."\n" + .'- 最大允许时间跨度31天。'."\n" + .'### QPS限制'."\n" + .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDrmUsageData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDrmUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveEdgeTransfer' => [ + 'summary' => '调用DescribeLiveEdgeTransfer查询直播转推配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -28224,54 +22895,18 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveMH1XD3', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的主播流域名。'."\n" - .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - .'- 若参数为空,默认返回所有直播域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.aliyundoc.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'>支持查询最近**90**天的数据。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2018-01-01T00:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2018-01-02T00:00:00Z', - ], + 'schema' => ['description' => '推流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], ], 'responses' => [ @@ -28279,83 +22914,61 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D*****', - ], - 'SnapshotDataInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SnapshotDataInfo' => [ - 'description' => '直播截图张数的每日数据统计。', - 'type' => 'array', - 'items' => [ - 'description' => '直播截图张数的详细信息。', - 'type' => 'object', - 'properties' => [ - 'Date' => [ - 'description' => '日期,具体到天。', - 'type' => 'string', - 'example' => '20180209', - ], - 'Total' => [ - 'description' => '单日截图总张数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '110', - ], - ], - ], - ], - ], - ], + 'HttpDns' => ['description' => '获取转推目标地址的HTTPDNS接口。', 'type' => 'string', 'example' => 'http://developer.aliyundoc.com/****'], + 'AppName' => ['description' => '直播流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '53FCB985-C67C-467B-B2B3-398430A21E14'], + 'TransferArgs' => ['description' => '推流参数是否透传。取值:'."\n" + .'- **yes**:推流参数透传。'."\n" + .'- **no**:推流参数不透传。', 'type' => 'string', 'example' => 'yes'], + 'StreamName' => ['description' => '推流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'TargetDomainList' => ['description' => '转推域名列表,多个用英文逗号(,)分隔。', 'type' => 'string', 'example' => 'learn.aliyundoc.com,guide.aliyundoc.com'], + 'DomainName' => ['description' => '推流域名。', 'type' => 'string', 'example' => 'demo.aliyundoc.com'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'StartTime or EndTime is mismatch.', - ], - [ - 'errorCode' => 'InvalidParamter', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D*****\\",\\n \\"SnapshotDataInfos\\": {\\n \\"SnapshotDataInfo\\": [\\n {\\n \\"Date\\": \\"20180209\\",\\n \\"Total\\": 110\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n B955107D-E658-4E77-B913-E0AC3D31693F\\n \\n \\n 20180209\\n 110\\n \\n \\n","errorExample":""}]', - 'title' => '查询直播域名截图张数数据', - 'description' => '- 可以用来统计单日截图总张数。'."\n" - .'- 支持查询最近90天的数据。'."\n" - ."\n\n" + 'title' => '查询直播转推配置', + 'description' => '先获取推流域名,再调用本接口查询直播边缘转推配置。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口无单用户QPS限制,请您根据实际需要合理调用。', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeLiveDetectPornData' => [ - 'summary' => '调用DescribeLiveDetectPornData获取查询直播审核用量数据。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveEdgeTransfer'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveEdgeTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"HttpDns\\": \\"http://developer.aliyundoc.com/****\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"RequestId\\": \\"53FCB985-C67C-467B-B2B3-398430A21E14\\",\\n \\"TransferArgs\\": \\"yes\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"TargetDomainList\\": \\"learn.aliyundoc.com,guide.aliyundoc.com\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\"\\n}","errorExample":""},{"type":"xml","example":"\\n http://developer.aliyundoc.com/****\\n liveApp****\\n 53FCB985-C67C-467B-B2B3-398430A21E14\\n yes\\n liveStream****\\n learn.aliyundoc.com,guide.aliyundoc.com\\n demo.aliyundoc.com\\n","errorExample":""}]', + ], + 'DescribeLiveGrtnDuration' => [ + 'summary' => '调用DescribeLiveGrtnDuration查询连麦通话时长用量数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -28363,208 +22976,96 @@ ], 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的主播流域名。'."\n" - .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - ."\n" - .'- 若参数为空,默认返回所有直播域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> - 最多可获取最近90天的数据。'."\n" - .'- 最小数据粒度为5分钟,取值为空则默认获取最近24小时数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T08:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2022-10-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T09:00:00Z', - ], - ], - [ - 'name' => 'App', - 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], - ], - [ - 'name' => 'Stream', - 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', - ], - ], - [ - 'name' => 'Fee', - 'in' => 'query', - 'schema' => [ - 'description' => '用户每天拥有免费的图片扫描额度。取值:'."\n" - ."\n" - .'- **free**'."\n" - .'- **charge**', - 'type' => 'string', - 'required' => false, - 'example' => 'free', - ], + 'schema' => ['description' => '结束时间需大于起始时间,查询粒度≥5分钟且≤31天;日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2022-10-10T21:00:00Z'], ], [ - 'name' => 'Scene', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '检测场景。取值:'."\n" - ."\n" - .'- **porn**(默认值):鉴黄。'."\n" - .'- **terrorism**:暴恐涉政。'."\n" - .'- **ad**:图文违规。'."\n" - .'- **live**:不良直播场景。'."\n" - .'- **logo**:logo检测。', - 'type' => 'string', - 'required' => false, - 'example' => 'porn', - ], + 'schema' => ['description' => '应用ID,支持查询多个应用ID,多个ID用逗号(半角)分隔,最多可查询30个ID。默认返回所有应用合并后的数据。', 'type' => 'string', 'required' => false, 'example' => '4346289a-a790-4869-9e23-22766d5e****'], ], [ - 'name' => 'Region', + 'name' => 'Area', 'in' => 'query', - 'schema' => [ - 'description' => '域名所属地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '区域代号。支持:'."\n" + .'- CN:中国内地。'."\n" + .'- OverSeas:海外大区。'."\n" + .'- AP1:亚太1区,包含中国香港地区、中国澳门地区、中国台湾地区、日本以及东南亚除越南和印尼之外的国家。'."\n" + .'- AP2:亚太2区,包含印尼、韩国、越南。'."\n" + .'- AP3:亚太3区,包含澳大利亚、新西兰。'."\n" + .'- NA:北美,包含美国、加拿大。'."\n" + .'- SA:南美,特指巴西。'."\n" + .'- EU:欧洲,包含乌克兰、英国、法国、荷兰、西班牙、意大利、瑞典、德国。'."\n" + .'- MEAA:中东非洲,包含南非、阿曼、阿联酋、科威特。'."\n" + ."\n" + .'不传值时默认为所有区域数据聚合输出。', 'type' => 'string', 'required' => false, 'example' => 'CN'], ], [ - 'name' => 'SplitBy', + 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '分组字段列表。多个字段用英文逗号(,)分隔。'."\n" - ."\n" - .'> 当**SplitBy**为空时,仅返回**TimeStamp**和**Count**。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****,liveStream****', - ], + 'schema' => ['description' => '查询数据的时间粒度。单位:秒。取值:'."\n" + ."\n" + .'- 300'."\n" + .'- 3600'."\n" + .'- 86400'."\n" + ."\n" + .'不传或传值不支持时,使用默认值3600秒。', 'type' => 'string', 'required' => false, 'example' => '3600'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'DetectPornData' => [ + 'RequestId' => ['description' => '该条任务请求ID。', 'type' => 'string', 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB'], + 'StreamDetailData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的网络带宽数据。', + 'StreamData' => [ + 'description' => '连麦用量数据明细。', 'type' => 'array', 'items' => [ - 'description' => '每个时间间隔的网络带宽数据。', + 'description' => '连麦用量数据明细。', 'type' => 'object', 'properties' => [ - 'Domain' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Region' => [ - 'description' => '域名所属地域。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'App' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'Stream' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2017-12-10T15:00:05Z', - ], - 'Count' => [ - 'description' => '审核数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'Scene' => [ - 'description' => '检测场景。取值:'."\n" - ."\n" - .'- **porn**(默认值):鉴黄。'."\n" - .'- **terrorism**:暴恐涉政。'."\n" - .'- **ad**:图文违规。'."\n" - .'- **live**:不良直播场景。'."\n" - .'- **logo**:logo检测。', - 'type' => 'string', - 'example' => 'porn', - ], - 'Fee' => [ - 'description' => '用户每天拥有免费的图片扫描额度。取值:'."\n" - ."\n" - .'- **free**'."\n" - .'- **charge**', - 'type' => 'string', - 'example' => 'free', - ], + 'AppId' => ['description' => '应用ID。', 'type' => 'string', 'example' => '4346289a-a790-4869-9e23-22766d5e****'], + 'Duration' => ['description' => '连麦时长,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '30'], + 'MediaProfile' => ['description' => '媒体规格,取值:'."\n" + ."\n" + .'- 0:纯音频时长,基础规格。'."\n" + .'- 480P:标清时长,视频分辨率为640×480及以下。'."\n" + .'- 720P:高清时长,视频分辨率为1280×720及以下。'."\n" + .'- 1080P:全高清时长,视频分辨率为1920×1080及以下。', 'type' => 'string', 'example' => '480P'], + 'MediaType' => ['description' => '媒体类型,取值:'."\n" + ."\n" + .'- audio:音频。'."\n" + .'- video:视频。', 'type' => 'string', 'example' => 'audio'], + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2022-12-10T20:00:00Z'], ], ], ], ], + 'description' => '', ], ], ], @@ -28572,52 +23073,61 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidAreaParameter', 'errorMessage' => 'The specified Area parameter is invalid.', 'description' => 'Area参数不正确,需要传入正确的大区简写。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidAppIdParameter', 'errorMessage' => 'The specified AppId parameter is invalid.', 'description' => ''], + ['errorCode' => 'InvalidInstanceIdParameter', 'errorMessage' => 'The specified InstanceId parameter is invalid.', 'description' => ''], + ['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'Specified Time is malformed.', 'description' => '指定的时间无效。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DetectPornData\\": {\\n \\"DataModule\\": [\\n {\\n \\"Domain\\": \\"example.com\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"App\\": \\"liveApp****\\",\\n \\"Stream\\": \\"liveStream****\\",\\n \\"TimeStamp\\": \\"2017-12-10T15:00:05Z\\",\\n \\"Count\\": 2,\\n \\"Scene\\": \\"porn\\",\\n \\"Fee\\": \\"free\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n B955107D-E658-4E77-B913-E0AC3D31693E\\n \\n example.com\\n cn-shanghai\\n liveApp****\\n liveStream****\\n 2017-12-10T15:00:05Z\\n 2\\n porn\\n free\\n \\n","errorExample":""}]', - 'title' => '查询直播审核用量数据', - 'description' => '- 最小数据粒度为5分钟,若`StartTime`取值为空则默认获取最近24小时数据。'."\n" - ."\n" - .'- 最多可获取最近90天的数据。'."\n" - ."\n" - .'- 可以用来查询每个时间间隔的网络带宽数据。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-910811DEBFEB\\",\\n \\"StreamDetailData\\": {\\n \\"StreamData\\": [\\n {\\n \\"AppId\\": \\"4346289a-a790-4869-9e23-22766d5e****\\",\\n \\"Duration\\": 30,\\n \\"MediaProfile\\": \\"480P\\",\\n \\"MediaType\\": \\"audio\\",\\n \\"TimeStamp\\": \\"2022-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n 2022-12-10T20:00:00Z\\n video\\n 720P\\n 423304182\\n \\n \\n 2022-12-10T21:00:00Z\\n video\\n 720P\\n 454680793\\n \\n \\n B955107D-E658-4E77-B913-E0AC3D31693E\\n","errorExample":""}]', + 'title' => '查询连麦通话时长用量数据', + 'description' => '- 最大查询跨度:31天。'."\n" + .'- 最小查询粒度:5分钟。'."\n" + .'- 最大查询范围:最近90天的数据。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" - .'|---------------------|----------|-----------------------------------|---------|'."\n" - .'| Throttling | Request was denied due to request throttling. | 503| 请求被流量控制限制。 |'."\n" - .'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | 域名不存在或不属于当前用户。 |'."\n", - ], - 'DescribeDomainUsageData' => [ - 'summary' => '调用DescribeDomainUsageData查询域名在特定计费区域的用量数据。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '### 特殊错误码'."\n" + .'|错误代码|描述|HTTP状态码|语义|'."\n" + .'|----|----|------|-----|'."\n" + .'|Throttling|Request was denied due to request throttling.|503|请求被流量控制限制。|'."\n" + .'|IllegalOperation|Illegal domain, operation is not permitted.|403|非法域名,无法操作。'."\n" + .'|OperationDenied|Your account does not open LIVE service yet.|403|未开通LIVE服务。|'."\n" + .'|OperationDenied|Your LIVE service is suspended.|403|LIVE服务已被停止。|'."\n" + .'|InvalidStartTime.Malformed|Specified StartTime is malformed.|400|参数错误。|'."\n" + .'|InvalidEndTime.Malformed|Specified EndTime is malformed.|400|时间格式错误。|'."\n" + .'|InvalidTime.Malformed|Specified StartTime or EndTime is malformed.|400|开始时间或结束时间格式错误。|'."\n" + .'|InvalidEndTime.Mismatch|Specified end time does not math the specified start time.|400|开始时间和结束时间不匹配。|'."\n" + .'|InvalidTimeSpan|The time span exceeds the limit.|400|查询跨度错误。|'."\n" + .'|InvalidAppIdParameter|The specified AppId parameter is invalid.|400|AppID参数错误。|'."\n" + .'|InvalidParameterInterval|Invalid Parameter Interval.|400|Interval参数错误。|', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveGrtnDuration', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveHttpsDomainList' => [ + 'summary' => '查询用户证书服务所有已配置证书信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -28628,523 +23138,238 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '106980', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeCode' => '191821', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播域名。'."\n" - .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - ."\n" - .'- 若参数为空,默认返回所有直播域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2015-12-10T20:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'需大于起始时间,且与起始时间相差不能超过**31**天。', - 'type' => 'string', - 'required' => true, - 'example' => '2015-12-10T21:00:00Z', - ], - ], - [ - 'name' => 'Type', - 'in' => 'query', - 'schema' => [ - 'description' => '需要获取的用量类型。'."\n" - ."\n" - .'当**Field**取值为**bps**或**traf** 时,该参数取值范围:'."\n" - .'- **rts**:RTS带宽或流量。'."\n" - .'- **quic**:QUIC带宽或流量。'."\n" - ."\n" - .'当**Field**取值为**req\\_traf**或**req\\_bps** 时,该参数取值范围:'."\n" - .'- **push**:推流带宽或流量。'."\n" - .'- **push_proxy**:转推带宽或流量。', - 'type' => 'string', - 'required' => false, - 'example' => 'all', - 'default' => 'all', - 'enum' => [ - 'static', - 'dynamic', - 'quic', - 'rts', - 'push', - 'normal', - 'all', - 'push_proxy', - ], - ], - ], - [ - 'name' => 'Field', - 'in' => 'query', - 'schema' => [ - 'description' => '查询用量的数据类型。取值:'."\n" - .'- **bps**:播放带宽。'."\n" - ."\n" - .'- **traf**:流量。'."\n" - ."\n" - .'- **req\\_traf**:当Type为push时,为推流流量,当Type为push_proxy时,为转推流量。'."\n" - ."\n" - .'- **req\\_bps**:当Type为push时,为推流带宽,当Type为push_proxy时,为转推带宽。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'traf', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Area', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '区域代号。支持:'."\n" - .'- **CN**:中国内地。'."\n" - .'- **OverSeas**:海外大区。'."\n" - .'- **AP1**:亚太1区。'."\n" - .'- **AP2**:亚太2区。'."\n" - .'- **AP3**:亚太3区。'."\n" - .'- **NA**:北美。'."\n" - .'- **SA**:南美。'."\n" - .'- **EU**:欧洲。'."\n" - .'- **MEAA**:中东非洲。'."\n" - .'- **all**:全部。'."\n" - ."\n" - .'> 不传值则默认为中国内地。海外大区说明:- 亚太1区:中国香港地区、中国澳门地区、中国台湾地区、日本以及东南亚除越南和印尼之外的国家。- 亚太2区:印尼、韩国、越南。- 亚太3区:澳大利亚、新西兰。北美:美国、加拿大。- 南美:巴西。- 欧洲:乌克兰、英国、法国、荷兰、西班牙、意大利、瑞典、德国。- 中东非洲:南非、阿曼、阿联酋、科威特。', - 'type' => 'string', - 'required' => false, - 'example' => 'CN', - 'default' => 'CN', - ], + 'schema' => ['description' => '取得第几页,取值范围为:**[1,10000]**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5', 'default' => '1'], ], [ - 'name' => 'DataProtocol', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '需要获取的数据的协议。取值:'."\n" - ."\n" - .'- **http**:HTTP协议。'."\n" - ."\n" - .'- **https**:HTTPS协议。'."\n" - ."\n" - .'- **quic**:QUIC协议。'."\n" - ."\n" - .'- **all**(默认):以上全部协议。', - 'type' => 'string', - 'required' => false, - 'example' => 'all', - 'default' => 'all', - ], + 'schema' => ['description' => '分页大小,默认为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'default' => '20'], ], [ - 'name' => 'Interval', + 'name' => 'Keyword', 'in' => 'query', - 'schema' => [ - 'description' => '强制指定获取指定时间粒度的数据,单位为秒。支持**300**(5分钟)、**3600**(1小时)和**86400**(1天)。'."\n" - ."\n\n" - ."\n\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '加速域名。', 'type' => 'string', 'required' => false, 'example' => 'demo.aliyun.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-12-10T21:00Z', - ], - 'Type' => [ - 'description' => '用量类型。', - 'type' => 'string', - 'example' => 'all', - ], - 'StartTime' => [ - 'description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-12-10T20:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'Area' => [ - 'description' => '用量区域。', - 'type' => 'string', - 'example' => 'CN', - ], - 'DomainName' => [ - 'description' => '直播域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔。单位:秒。', - 'type' => 'string', - 'example' => '300', - ], - 'UsageDataPerInterval' => [ + 'CertInfos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => '每条记录的流量数据。', + 'CertInfo' => [ + 'description' => '证书信息列表。', 'type' => 'array', 'items' => [ + 'description' => '列表详情。', 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => '用量。'."\n" - .'- 当Field为traf或req_traf时单位是字节(Byte)。'."\n" - ."\n" - .'- 当Field为bps或req_bps时单位是bps。'."\n" - ."\n" - .'- 当Field为acc时单位是次数。', - 'type' => 'string', - 'example' => '423304182', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], + 'CertCommonName' => ['description' => '证书主域名。', 'type' => 'string', 'example' => 'example.org'], + 'CertExpireTime' => ['description' => '证书过期时间。日期格式按照 yyyy-MM-dd HH:mm:ss 表示法,并使用 UTC+8(东八区)时间。', 'type' => 'string', 'example' => '2018-12-26 14:45:09'], + 'CertName' => ['description' => '证书名称。', 'type' => 'string', 'example' => 'test'], + 'CertStartTime' => ['description' => '证书开始时间。日期格式按照 yyyy-MM-dd HH:mm:ss 表示法,并使用 UTC+8(东八区)时间。', 'type' => 'string', 'example' => '2018-11-26 14:45:09'], + 'CertStatus' => ['description' => '证书状态。'."\n" + .'- **ok**:正常。'."\n" + .'- **mismatch**:域名与证书不匹配。'."\n" + .'- **expired**:已过期。'."\n" + .'- **expire_soon**:即将过期。', 'type' => 'string', 'example' => 'mismatch'], + 'CertType' => ['description' => '证书类型。'."\n" + .'- **cas**:云盾证书。'."\n" + .'- **upload**:自定义上传。', 'type' => 'string', 'example' => 'cas'], + 'CertUpdateTime' => ['description' => '证书更新时间。日期格式按照 yyyy-MM-dd HH:mm:ss 表示法,并使用 UTC+8(东八区)时间。', 'type' => 'string', 'example' => '2019-01-08 18:33:16'], + 'DomainName' => ['description' => '加速域名。', 'type' => 'string', 'example' => 'example.com'], ], ], ], ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F5E8DF64-7175-4186-9B06-F002C0BBD0C5'], + 'TotalCount' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '16'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvaildParameter', - 'errorMessage' => 'Invalid Parameter', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified Time is malformed.', - ], - [ - 'errorCode' => 'InvalidParameterField', - 'errorMessage' => 'The specified Field is invalid.', - ], - [ - 'errorCode' => 'InvalidParameterType', - 'errorMessage' => 'The specified Type is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], + ['errorCode' => 'NoHttpsDomain', 'errorMessage' => 'Your account doesn\'t have https domain.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T21:00Z\\",\\n \\"Type\\": \\"all\\",\\n \\"StartTime\\": \\"2015-12-10T20:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"Area\\": \\"CN\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"UsageDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"423304182\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n example.com\\n 300\\n \\n \\n 2015-12-10T20:00:00Z\\n 423304182\\n \\n \\n 2015-12-10T20:05:00Z\\n 454680793\\n \\n \\n 2015-12-10T20:10:00Z\\n 501718342\\n \\n \\n 2015-12-10T20:15:00Z\\n 434816025\\n \\n \\n B955107D-E658-4E77-B913-E0AC3D31693E\\n 2015-12-10T20:00Z\\n 2015-12-10T21:00Z\\n CN\\n all\\n","errorExample":""}]', - 'title' => '查询域名在特定计费区域的用量数据', - 'description' => '- 此接口支持批量域名查询,多个域名用英文逗号(,)分隔,最多一次可以查询100个域名。如果DomainName参数为空,则返回账号下所有域名的数据。'."\n" - .'- 用量数据包括流量、带宽和请求数三类,单位分别为Byte、bps和次数。'."\n" - .'- 如果不指定Interval参数,最长可查询近1年的数据,单次查询的最大时间跨度为31天。查询时间为1~3天,数据按小时粒度返回;查询时间大于3天,数据按天粒度返回。'."\n" + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"CertCommonName\\": \\"example.org\\",\\n \\"CertExpireTime\\": \\"2018-12-26 14:45:09\\",\\n \\"CertName\\": \\"test\\",\\n \\"CertStartTime\\": \\"2018-11-26 14:45:09\\",\\n \\"CertStatus\\": \\"mismatch\\",\\n \\"CertType\\": \\"cas\\",\\n \\"CertUpdateTime\\": \\"2019-01-08 18:33:16\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"F5E8DF64-7175-4186-9B06-F002C0BBD0C5\\",\\n \\"TotalCount\\": 16\\n}","errorExample":""},{"type":"xml","example":"\\n 16\\n F5E8DF64-7175-4186-9B06-F002C0BBD0C5\\n \\n 2018-11-26 14:45:09\\n 2018-12-26 14:45:09\\n 2019-01-08 18:33:16\\n cas\\n test\\n mismatch\\n example.com\\n example.org\\n \\n","errorExample":""}]', + 'title' => '查询证书服务列表接口', + 'description' => '调用本接口可查询证书服务中该用户所有已配置的证书和域名信息。'."\n" ."\n" - .'- 指定Interval参数时,支持单次查询的时间跨度、对应的可查询历史数据时间范围和数据延迟如下:'."\n" + .'调用前须确保账号下至少有一个直播域名已通过 SetLiveDomainCertificate 开启 HTTPS 证书,否则将返回 NoHttpsDomain(400)。'."\n" ."\n" - .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟'."\n" - .'| -------------- | -------------- | ------ | ------ |'."\n" - .'| 5分钟 | 3天 | 93天 | 15分钟'."\n" - .'| 1小时 | 31天 | 186天 | 4小时'."\n" - .'| 1天 | 90天 | 366天 | 次日凌晨4点'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '>接口查询T时刻数据时,T+N时刻可获取到稳态数据,N为2小时。
示例:当您查询12月21日下午1点钟数据,可在12月21日下午3点钟获取到1点及1点前的稳态数据。', - 'responseParamsDescription' => ' ', - 'extraInfo' => '### 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" - .'|------------------------------|--------------------------------------------------------|-----------|----------------------------------|'."\n" - .'| Throttling | Request was denied due to request throttling. | 503 | 请求被流量控制限制 |'."\n" - .'| IllegalOperation | Illegal domain, operation is not permitted. | 403 | 非法域名,无法操作 |'."\n" - .'| OperationDenied | Your account does not open Live service yet. | 403 | 未开通Live服务 |'."\n" - .'| OperationDenied | Your Live service is suspended. | 403 | Live服务已被停止 |'."\n" - .'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | 域名不存在或不属于当前用户 |'."\n" - .'| InvalidDomain.Offline | The domain provided is offline. | 404 | 域名已下线 |'."\n" - .'| ServiceBusy | The specified Domain is configuring, please retry later. | 403 | 域名正在配置中,请稍后再试 |'."\n" - .'| InvalidDomain.Configure_failed | Failed to configure the provided domain. | 500 | 域名配置失败 |'."\n" - .'| InvalidParameter | Invalid Parameter. | 400 | 参数错误 |'."\n" - .'| InvalidParameterProduct | Invalid Parameter Product. | 400 | Product参数错误 |'."\n" - .'| InvalidParameterArea | Invalid Parameter Area. | 400 | Area参数错误 |'."\n" - .'| InvalidParameterField | Invalid Parameter Field. | 400 | Field参数错误 |'."\n" - .'| InvalidParameterStartTime | Invalid Parameter StartTime. | 400 | StartTime参数错误 |'."\n" - .'| InvalidParameterEndTime | Invalid Parameter EndTime. | 400 | EndTime参数错误 |'."\n" - .'| InvalidTimeRange | StartTime and EndTime range should less than 1 month. | 400 | EndTime和StartTime差值不能超过31天 |'."\n" - .'| InvalidParameterInterval | Invalid Parameter Interval. | 400 | Interval参数错误 |'."\n", - ], - 'DescribeLivePushProxyUsageData' => [ - 'summary' => '调用DescribeLivePushProxyUsageData查询直播中心转推用量数据。', - 'methods' => [ - 'post', - 'get', + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveHttpsDomainList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveInteractionMetricData' => [ + 'summary' => '调用DescribeLiveInteractionMetricData查询实时音视频指标数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeCode' => '193672', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'MetricType', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '指标类型。取值:'."\n" + .'- JoinChannelSucRate:5秒加入频道成功率。'."\n" + .'- VideoStuckRate:视频卡顿率。'."\n" + .'- AudioStuckRate:音频卡顿率。'."\n" + .'- FirstFrameCost:首帧耗时。', 'type' => 'string', 'required' => true, 'example' => 'FirstFrameCost'], ], [ - 'name' => 'Region', + 'name' => 'BeginTs', 'in' => 'query', - 'schema' => [ - 'description' => '查询不同直播中心, 支持批量地区查询,多个地区用逗号(半角)分隔。取值:'."\n" - .'- cn-beijing:北京'."\n" - .'- cn-shanghai:上海'."\n" - .'- cn-shenzhen:深圳'."\n" - .'- cn-qingdao:青岛'."\n" - .'- ap-southeast-1:新加坡'."\n" - .'- eu-central-1:德国'."\n" - .'- ap-northeast-1:东京'."\n" - .'- ap-southeast-5:雅加达'."\n" - ."\n" - .'若参数为空,默认返回所有Region合并后数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-beijing', - ], + 'schema' => ['description' => '开始时间,用UNIX时间戳表示,单位:毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1698195600000'], ], [ - 'name' => 'DomainName', + 'name' => 'EndTs', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的主播流域名。'."\n" - .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - .'- 若参数为空,默认返回所有直播域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '结束时间,用UNIX时间戳表示,单位:毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1698201013000'], ], [ - 'name' => 'StartTime', + 'name' => 'Os', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ,默认返回近七天的数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-10-10T20:00:00Z', - ], + 'schema' => ['description' => '操作系统。取值:iOS、Android。', 'type' => 'string', 'required' => false, 'example' => 'Android'], ], [ - 'name' => 'EndTime', + 'name' => 'TerminalType', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间需大于起始时间,日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-10-10T21:00:00Z', - ], + 'schema' => ['description' => '终端类型。取值:web、mobile。', 'type' => 'string', 'required' => false, 'example' => 'mobile'], ], [ - 'name' => 'SplitBy', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '分组键,若参数为空,默认为region,按照聚合后数据输出。多个使用逗号(半角)分隔,取值:'."\n" - .'- domain:域名。如果此参数SplitBy(分组键)取值为domain时,返回参数Domain才生效。'."\n" - .'- region(默认值):直播中心地域。如果此参数SplitBy(分组键)取值为region时,返回参数Region才生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'region', - 'default' => 'region', - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'e4d7f08a-01fe-41b5-a091-fe41060a****'], + ], + [ + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => ['title' => '管道ID'."\n" + .'频道标识', 'description' => '频道ID。', 'type' => 'string', 'required' => false, 'example' => '770513'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回数据。', + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2022-10-10T21:00:00Z', - ], - 'PushProxyData' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PushProxyDataItem' => [ - 'description' => '直播中心转推用量数据。', - 'type' => 'array', - 'items' => [ - 'description' => '直播中心转推用量数据。', - 'type' => 'object', - 'properties' => [ - 'DomainName' => [ - 'description' => '用量域名,SplitBy指定domain时,分组输出。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Region' => [ - 'description' => '直播中心,SplitBy指定region时,分组输出。', - 'type' => 'string', - 'example' => 'cn-beijing', - ], - 'StreamCount' => [ - 'description' => '直播中心转推峰值路数,单位:路。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '8', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2022-10-10T20:00:00Z', - ], - ], - ], + 'Nodes' => [ + 'description' => '节点数据。', + 'type' => 'array', + 'items' => [ + 'description' => '节点数据。', + 'type' => 'object', + 'properties' => [ + 'Timestamp' => ['description' => '查询时间,用UNIX时间戳表示,单位:毫秒。', 'type' => 'string', 'example' => '1548670257000'], + 'Value' => ['description' => '指标对应的值。', 'type' => 'string', 'example' => '66.670000'], ], ], ], - 'RequestId' => [ - 'description' => '该条任务请求ID。', - 'type' => 'string', - 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB', - ], - 'StartTime' => [ - 'description' => '起始时间。', - 'type' => 'string', - 'example' => '2022-10-10T20:00:00Z', - ], + 'RequestId' => ['title' => 'Id', 'description' => '请求ID。', 'type' => 'string', 'example' => 'A01C98C5-25AE-124A-83FE-514DF5C5BE36'], + 'SummaryData' => ['description' => '汇总数据。', 'type' => 'string', 'example' => '2000'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified StartTime or EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidTime.ValueNotSupported', - 'errorMessage' => 'Specified Time is malformed.', - ], + ['errorCode' => 'Meter.ParamError', 'errorMessage' => 'Param Error:%s,Please Check Again.', 'description' => '报错信息'], + ], + 403 => [ + ['errorCode' => 'Meter.AuthError', 'errorMessage' => 'Authentication Failed,Please Try Again.', 'description' => '鉴权失败'], + ], + 500 => [ + ['errorCode' => 'Meter.ServerInternalError', 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'description' => '服务内部异常'], + ['errorCode' => 'Meter.DataSourceQueryError', 'errorMessage' => 'Data Source Error:%s,Please Try Again.', 'description' => '数据查询错误'], + ], + 502 => [ + ['errorCode' => 'Meter.ReadyTsError', 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', 'description' => '查询的数据还未就绪'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2022-10-10T21:00:00Z\\",\\n \\"PushProxyData\\": {\\n \\"PushProxyDataItem\\": [\\n {\\n \\"DomainName\\": \\"example.com\\",\\n \\"Region\\": \\"cn-beijing\\",\\n \\"StreamCount\\": 8,\\n \\"TimeStamp\\": \\"2022-10-10T20:00:00Z\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-910811DEBFEB\\",\\n \\"StartTime\\": \\"2022-10-10T20:00:00Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C370DAF1-C838-4288-A1A0-9A87633D248E\\n 2018-09-30T16:00:00Z\\n 2018-10-31T15:59:59Z\\n \\n \\n example.com\\n 6777\\n 2018-09-30T00:00:00Z\\n \\n \\n example.com\\n 6777\\n 2018-09-30T00:00:00Z\\n \\n \\n example.com\\n 6777\\n 2018-10-01T00:00:00Z\\n \\n \\n example.com\\n 6777\\n 2018-10-01T00:00:00Z\\n \\n \\n","errorExample":""}]', - 'title' => '查询直播中心转推用量数据', - 'description' => '- 查询直播中心转推用量数据。'."\n" - .'- 最大查询跨度:31天。'."\n" - .'- 最小查询粒度:1天。'."\n" - .'- 最大查询范围:最近90天的数据'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Nodes\\": [\\n {\\n \\"Timestamp\\": \\"1548670257000\\",\\n \\"Value\\": \\"66.670000\\"\\n }\\n ],\\n \\"RequestId\\": \\"A01C98C5-25AE-124A-83FE-514DF5C5BE36\\",\\n \\"SummaryData\\": \\"2000\\"\\n}","errorExample":""},{"type":"xml","example":"\\n A01C98C5-25AE-124A-83FE-514DF5C5BE36\\n 2000\\n \\n 1548670257000\\n 66.670000\\n \\n","errorExample":""}]', + 'title' => '查询实时音视频指标数据', + 'description' => '- 可以查询最近30天内的数据,查询时间跨度不能超过24小时。'."\n" + .'- 查询粒度:5分钟。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveRealtimeDeliveryAcc' => [ - 'summary' => '调用DescribeLiveRealtimeDeliveryAcc查询实时日志投递次数。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveInteractionMetricData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveIpInfo' => [ + 'summary' => '调用DescribeLiveIpInfo验证指定IP是否为CDN节点的IP地址。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -29155,358 +23380,487 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', - ], + 'abilityTreeCode' => '107056', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'StartTime', + 'name' => 'IP', 'in' => 'query', + 'schema' => ['description' => '指定IP地址,不支持批量验证。', 'type' => 'string', 'required' => true, 'example' => '192.168.0.1'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', + 'type' => 'object', + 'properties' => [ + 'IspEname' => ['description' => '所属运营商英文名称。', 'type' => 'string', 'example' => 'telecom'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '1B1D0EE7-9559-489D-BC4E-279495EB8FB8'], + 'RegionEname' => ['description' => '所属地域英文名称。', 'type' => 'string', 'example' => 'China-Guizhou-guiyang'], + 'ISP' => ['description' => '所属运营商中文名称。', 'type' => 'string', 'example' => '电信'], + 'Region' => ['description' => '所属地域中文名称。', 'type' => 'string', 'example' => '中国-贵州省-贵阳市'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'CdnIP.NotFound', 'errorMessage' => 'Cannot find this ip in alicdn', 'description' => ''], + ], + ], + 'title' => '获取直播IP信息', + 'description' => '### QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveIpInfo'], + ], + ], + 'ramActions' => [ [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'结束时间需大于起始时间。起止时间和结束时间,间隔不超过一年。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T21:05:00Z', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveIpInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"IspEname\\": \\"telecom\\",\\n \\"RequestId\\": \\"1B1D0EE7-9559-489D-BC4E-279495EB8FB8\\",\\n \\"RegionEname\\": \\"China-Guizhou-guiyang\\",\\n \\"ISP\\": \\"电信\\",\\n \\"Region\\": \\"中国-贵州省-贵阳市\\"\\n}","errorExample":""},{"type":"xml","example":"\\n China-Guizhou-guiyang\\n 中国-贵州省-贵阳市\\n telecom\\n 1B1D0EE7-9559-489D-BC4E-279495EB8FB8\\n 电信\\n","errorExample":""}]', + ], + 'DescribeLiveLazyPullStreamConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度。单位:秒(s)。取值:'."\n" - ."\n" - .'- **300**。'."\n" - .'- **3600**。'."\n" - .'- **86400**。'."\n" - ."\n" - .'不传或传的值不支持,且时间跨度不超过3天时,默认值300秒。超过3天默认值3600秒。超过30天默认值86400秒。', - 'type' => 'string', - 'required' => false, - 'example' => '3600', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ [ - 'name' => 'Project', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '实时日志投递的Project。若参数为空,默认返回所有Project合并后数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'project_example', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'LogStore', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '实时日志投递的Logstore。若参数为空,默认返回所有Logstore合并后数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'logstore_example', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'DomainName', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。'."\n" - .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - .'- 若参数为空,默认返回所有直播域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '拉流配置。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '684306D2-2511-4977-991D-CE97E91FD7C0', - ], - 'RealTimeDeliveryAccData' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A3136B58-5876-4168-83CA-B562781981A0'], + 'LiveLazyPullConfigList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'AccData' => [ - 'description' => '实时日志投递次数信息。', + 'LiveLazyPullConfig' => [ + 'description' => '拉流配置。', 'type' => 'array', 'items' => [ + 'description' => '拉流配置。', 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'FailedNum' => [ - 'description' => '实时日志投递失败次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'SuccessNum' => [ - 'description' => '实时日志投递成功次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '321321', - ], + 'AppName' => ['description' => '应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'PullArgs' => ['description' => '回源拉流参数。', 'type' => 'string', 'example' => 'k=v'], + 'PullAppName' => ['description' => '回源播流所属应用名称。 使用播放URL中的App则该项为空。', 'type' => 'string', 'example' => 'livePullApp****'], + 'PullProtocol' => ['description' => '回源播流协议。取值:'."\n" + .'- **rtmp**'."\n" + .'- **httpflv**'."\n" + .'- **hls**', 'type' => 'string', 'example' => 'RTMP'], + 'PullDomainName' => ['description' => '回源播域名。', 'type' => 'string', 'example' => 'guide.aliyundoc.com'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'TranscodeLazy' => ['description' => '转码播放触发拉流。默认为**no**。可选值:'."\n" + ."\n" + .'- **yes**'."\n" + ."\n" + .'- **no**', 'type' => 'string', 'example' => 'no'], ], ], ], ], + 'description' => '', ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"684306D2-2511-4977-991D-CE97E91FD7C0\\",\\n \\"RealTimeDeliveryAccData\\": {\\n \\"AccData\\": [\\n {\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\",\\n \\"FailedNum\\": 0,\\n \\"SuccessNum\\": 321321\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 684306D2-2511-4977-991D-CE97E91FD7C0\\n \\n 2015-12-10T20:00:00Z\\n 0\\n 321321\\n \\n","errorExample":""}]', - 'title' => '查询实时日志投递次数', - 'description' => '- 可以统计实时日志投递次数信息。统计实时日志投递失败次数和实时日志投递成功次数。'."\n" - .'- 支持UID维度查询。'."\n" - .'- 收费次数包含投递成功和失败的全部次数。'."\n" + 'title' => '查询触发拉流配置', + 'summary' => '查询播流域名下触发拉流配置信息。', + 'description' => '本接口适用于触发拉流,调用本接口查询播流域名下触发拉流配置信息。'."\n" ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => '### 特殊错误码'."\n" - .'|错误代码|描述|HTTP 状态码|语义|'."\n" - .'|--------|--------|--------|--------|'."\n" - .'|InvalidStartTime.ValueNotSupported|The specified value of parameter StartTime is not supported.|400|EndTime和StartTime差值超过90天。|'."\n" - .'|InvalidEndTime.Mismatch|Specified EndTime does not math the specified StartTime.|400|EndTime小于StartTime|', - ], - 'DescribeLiveDomainTimeShiftData' => [ - 'summary' => '查询直播时移用量数据。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" + .'| ------------- |------------ | ----- | ----- |'."\n" + .'| Missing DomainName | DomainName is mandatory for this action.| 400 |缺少参数。|'."\n" + .'| InvalidDomain.NotFound |The domain provided does not exist in our records. |404 |当前账户下未查到域名。|'."\n" + ."\n", + 'changeSet' => [ + ['createdAt' => '2024-01-23T08:48:29.000Z', 'description' => '响应参数发生变更、错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveLazyPullStreamConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"LiveLazyPullConfigList\\": {\\n \\"LiveLazyPullConfig\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"PullArgs\\": \\"k=v\\",\\n \\"PullAppName\\": \\"livePullApp****\\",\\n \\"PullProtocol\\": \\"RTMP\\",\\n \\"PullDomainName\\": \\"guide.aliyundoc.com\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"TranscodeLazy\\": \\"no\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n A3136B58-5876-4168-83CA-B562781981A0\\n \\n liveApp****\\n k=v\\n livePullApp****\\n RTMP\\n guide.aliyundoc.com\\n example.com\\n no\\n \\n","errorExample":""}]', + ], + 'DescribeLiveMessageApp' => [ + 'summary' => '调用DescribeLiveMessageApp查询互动消息应用信息。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeCode' => '193804', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['title' => '待查询的AppID', 'description' => '待查询的互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'DomainName', + 'name' => 'DataCenter', 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '需要查询的主播流域名。'."\n" - ."\n" - .'> '."\n" - .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。'."\n" - .'> - 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - .'> - 若参数为空,默认返回所有直播域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', + 'title' => 'Schema of Response', + 'description' => '返回参数。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9FB68B5B-ED07-18F0-A3CF-083F4E74****'], + 'AppId' => ['description' => '所查询的互动消息应用ID。', 'type' => 'string', 'example' => 'demo'], + 'AppName' => ['description' => 'App名称。', 'type' => 'string', 'example' => 'testApp'], + 'AppKey' => ['description' => '互动消息应用的AppKey,在进行与该互动消息应用ID相关的各种鉴权操作时需要该信息。', 'type' => 'string', 'example' => '**********************************'], + 'AppSign' => ['description' => '互动消息应用签名,互动消息服务SDK需要该信息。', 'type' => 'string', 'example' => '**************************************************************************'], + 'AuditType' => ['description' => '安全审核方式。取值:'."\n" + .'- 0:不开启安全审核。'."\n" + .'- 1:内置安全审核。'."\n" + .'- 2:自定义安全审核。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'AuditUrl' => ['description' => 'AuditType取值为2时提供的安全审核地址。', 'type' => 'string', 'example' => 'http://example.aliyundoc.com/exampleaudit'], + 'EventCallbackUrl' => ['description' => '用户登录、登出、加入、离开群组等事件的回调地址,若为空则不开启事件回调。', 'type' => 'string', 'example' => 'http://example.aliyundoc.com/examplecallback'], + 'Disable' => ['description' => '是否禁用互动消息应用。', 'type' => 'boolean', 'example' => 'false'], + 'CreateTime' => ['description' => '创建时间,用UNIX时间戳表示,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1698305471'], + 'ModifyTime' => ['description' => '修改时间,用UNIX时间戳表示,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1698305471'], + 'MsgLifeCycle' => ['description' => 'App内群组消息的存储时效档位,取值:'."\n" + ."\n" + .'- 0:默认值,存储30天。'."\n" + .'- 1:存储90天。'."\n" + .'- 2:存储180天。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'DataCenter' => ['description' => '数据中心。', 'type' => 'string', 'example' => 'cn-shanghai'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> - 最小数据粒度为5分钟。'."\n" - .'> - 不写默认读取过去24小时数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-03-03T00:00:00Z', + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ], + ], + 'title' => '查询直播互动应用信息', + 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-03-26T02:53:05.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2025-01-23T12:00:01.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-08-01T02:18:29.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-02-22T06:01:33.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-01-09T03:34:27.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveMessageApp'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9FB68B5B-ED07-18F0-A3CF-083F4E74****\\",\\n \\"AppId\\": \\"demo\\",\\n \\"AppName\\": \\"testApp\\",\\n \\"AppKey\\": \\"**********************************\\",\\n \\"AppSign\\": \\"**************************************************************************\\",\\n \\"AuditType\\": 2,\\n \\"AuditUrl\\": \\"http://example.aliyundoc.com/exampleaudit\\",\\n \\"EventCallbackUrl\\": \\"http://example.aliyundoc.com/examplecallback\\",\\n \\"Disable\\": false,\\n \\"CreateTime\\": 1698305471,\\n \\"ModifyTime\\": 1698305471,\\n \\"MsgLifeCycle\\": 1,\\n \\"DataCenter\\": \\"cn-shanghai\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9FB68B5B-ED07-18F0-A3CF-083F4E74****\\n demo\\n testApp\\n **********************************\\n **************************************************************************\\n 2\\n http://example.aliyundoc.com/exampleaudit\\n http://example.aliyundoc.com/examplecallback\\n false\\n 1698305471\\n 1698305471\\n 1\\n cn-shanghai\\n","errorExample":""}]', + ], + 'DescribeLiveMessageGroup' => [ + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'EndTime', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '194284', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], + ], + 'parameters' => [ + [ + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。结束时间需大于起始时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-03-03T02:00:00Z', - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'Interval', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度。单位:秒。取值:'."\n" - ."\n" - .'- 300。'."\n" - .'- 3600。'."\n" - .'- 86400。'."\n" - ."\n" - .'不传或传值不支持时,使用默认值300秒。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '群组ID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], + ], + [ + 'name' => 'DataCenter', + 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '8AE1CB3A-6510-442E-A6B9-EF03D05B3E09', - ], - 'TimeShiftData' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '1815A27D-BAE2-10E6-89FD-D477951C****'], + 'GroupId' => ['description' => '群组ID。', 'type' => 'string', 'example' => 'grouptest'], + 'CreatorId' => ['description' => '创建者ID。', 'type' => 'string', 'example' => 'uid1'], + 'AdminList' => [ + 'description' => '管理员列表。', + 'type' => 'array', + 'items' => ['description' => '管理员。', 'type' => 'string', 'example' => '["uid1","uid2"]'], + ], + 'Createtime' => ['description' => '创建时间,用UNIX时间戳表示,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1698305471'], + 'GroupName' => ['description' => '群组名。', 'type' => 'string', 'example' => 'mytestgroup'], + 'GroupInfo' => ['description' => '群组扩展信息。', 'type' => 'string', 'example' => 'testgroupinfo'], + 'Delete' => ['description' => '是否已删除。', 'type' => 'boolean', 'example' => 'false'], + 'TotalTimes' => ['description' => '总Session次数。群组存在时才有此参数。', 'type' => 'integer', 'format' => 'int64', 'example' => '50'], + 'OnlineUserCounts' => ['description' => '当前在线的群用户数。群组存在时才有此参数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'MsgAmount' => [ + 'description' => '消息数分类统计。群组存在时才有此参数。', 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的时移用量数据。', - 'type' => 'array', - 'items' => [ - 'description' => '每个时间间隔的时移用量数据。', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '时移类型。可以是HLS_D1、HLS_D7等。', - 'type' => 'string', - 'example' => 'HLS_D7', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2021-03-03T00:00:00Z', - ], - 'Size' => [ - 'description' => '时移存储用量。单位:Byte。', - 'type' => 'string', - 'example' => '1664165660', - ], - ], - ], - ], - ], + 'additionalProperties' => ['type' => 'integer', 'format' => 'int64', 'example' => '{1 : 20, 2 : 30}', 'description' => '消息数。'], ], + 'Deletatime' => ['description' => '删除时间。群组已被删除时才有此参数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1698299827'], + 'Deletor' => ['description' => '删除者。群组已被删除时才有此参数。', 'type' => 'string', 'example' => 'uid1'], + 'SuperLargeGroup' => ['description' => '群组是否为超级大群。'."\n" + .'- True:是。'."\n" + .'- False:否。', 'type' => 'boolean', 'example' => 'False'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询直播互动群组详细信息', + 'summary' => '查询直播互动群组详细信息。', + 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848162~~)创建互动消息群组。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-03-26T02:50:33.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1815A27D-BAE2-10E6-89FD-D477951C****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"CreatorId\\": \\"uid1\\",\\n \\"AdminList\\": [\\n \\"[\\\\\\"uid1\\\\\\",\\\\\\"uid2\\\\\\"]\\"\\n ],\\n \\"Createtime\\": 1698305471,\\n \\"GroupName\\": \\"mytestgroup\\",\\n \\"GroupInfo\\": \\"testgroupinfo\\",\\n \\"Delete\\": false,\\n \\"TotalTimes\\": 50,\\n \\"OnlineUserCounts\\": 2,\\n \\"MsgAmount\\": {\\n \\"key\\": 0\\n },\\n \\"Deletatime\\": 1698299827,\\n \\"Deletor\\": \\"uid1\\",\\n \\"SuperLargeGroup\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 1815A27D-BAE2-10E6-89FD-D477951C****\\n grouptest\\n uid1\\n [\\"uid1\\",\\"uid2\\"]\\n 1698305471\\n mytestgroup\\n testgroupinfo\\n false\\n 50\\n 2\\n {1:20,2:30}\\n","errorExample":""}]', + ], + 'DescribeLiveMessageGroupBand' => [ + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => ['description' => '群组ID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], + ], + [ + 'name' => 'DataCenter', + 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '021D1FE7-2E87-16AC-9364-4E7EA47C****'], + 'GroupId' => ['description' => '群组ID。', 'type' => 'string', 'example' => 'grouptest'], + 'BannedUserList' => [ + 'description' => '非全员禁言时,被禁言的用户列表。', + 'type' => 'array', + 'items' => ['description' => '非全员禁言时,被禁言的用户。', 'type' => 'string', 'example' => '["uid1","uid2"]'], + ], + 'UnbannedUserList' => [ + 'description' => '全员禁言时,不被禁言的用户列表。', + 'type' => 'array', + 'items' => ['description' => '全员禁言时,不被禁言的用户。', 'type' => 'string', 'example' => '["uid3"]'], + ], + 'IsbannedAll' => ['description' => '是否全员禁言。', 'type' => 'boolean', 'example' => 'false'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8AE1CB3A-6510-442E-A6B9-EF03D05B3E09\\",\\n \\"TimeShiftData\\": {\\n \\"DataModule\\": [\\n {\\n \\"Type\\": \\"HLS_D7\\",\\n \\"TimeStamp\\": \\"2021-03-03T00:00:00Z\\",\\n \\"Size\\": \\"1664165660\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n \\n HLS_D7\\n 1664165660\\n 2021-03-03T00:00:00Z\\n \\n\\n8AE1CB3A-6510-442E-A6B9-EF03D05B3E09\\n","errorExample":""}]', - 'title' => '查询直播时移用量数据', - 'description' => '- 可以用来统计每个时间间隔的时移用量数据。'."\n" - .'- 最多可获取最近90天的数据。'."\n" - .'- 数据间隔固定为1小时。'."\n" - .'- 最长获取数据时间跨度31天。'."\n" - ."\n\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询用户禁言状态信息', + 'summary' => '调用DescribeLiveMessageGroupBand查询用户禁言状态信息。', + 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '### 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" - .'|------------|--------|---------|------|'."\n" - .'| Throttling | Request was denied due to request throttling. | 503 | 请求被流量控制限制。|'."\n" - .'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | 域名不存在或不属于当前用户。|', - ], - 'DescribeLiveDomainStreamTranscodeData' => [ - 'summary' => '调用DescribeLiveDomainStreamTranscodeData查询域名转码用量数据。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveMessageGroupBand'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveMessageGroupBand', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"021D1FE7-2E87-16AC-9364-4E7EA47C****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"BannedUserList\\": [\\n \\"[\\\\\\"uid1\\\\\\",\\\\\\"uid2\\\\\\"]\\"\\n ],\\n \\"UnbannedUserList\\": [\\n \\"[\\\\\\"uid3\\\\\\"]\\"\\n ],\\n \\"IsbannedAll\\": false\\n}","errorExample":""},{"type":"xml","example":"\\n 021D1FE7-2E87-16AC-9364-4E7EA47C****\\n grouptest\\n [\\"uid1\\",\\"uid2\\"]\\n [\\"uid3\\"]\\n false\\n","errorExample":""}]', + ], + 'DescribeLivePackageConfig' => [ + 'summary' => '查询播流域名下的直播封装配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -29517,278 +23871,410 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeNodes' => ['FEATUREliveJAENGU'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的主播流域名。'."\n" - ."\n" - .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - .'- 若参数为空,默认返回所有直播域名合并后的数据。'."\n" - .'- 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '直播域名(主播放域名)。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'StartTime', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '查询起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'- 最小数据时间粒度为1小时。'."\n" - .'- 不填默认读取过去24小时数据。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'App名,置空表示匹配所有名称。', 'type' => 'string', 'required' => false, 'example' => 'AppName'], ], [ - 'name' => 'EndTime', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '查询结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-10T22:00:00Z', - ], + 'schema' => ['description' => '直播流名,置空表示匹配所有流名。', 'type' => 'string', 'required' => false, 'example' => 'StreamName'], ], [ - 'name' => 'Precision', + 'name' => 'PageNum', 'in' => 'query', - 'schema' => [ - 'description' => '查询的时间精度。取值:'."\n" - .'- **min**(默认):以分钟为单位。'."\n" - .'- **sec**:以秒为单位。', - 'type' => 'string', - 'required' => false, - 'example' => 'min', - 'default' => 'min', - 'enum' => [ - 'min', - 'sec', - ], - ], + 'schema' => ['description' => '当前页码。默认值:1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'Interval', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '查询的时间粒度。单位:秒。取值:'."\n" - ."\n" - .'- **3600**:按小时粒度。'."\n" - .'- **86400**:按天粒度。'."\n" - ."\n" - .'> 不填默认按小时。', - 'type' => 'string', - 'required' => false, - 'example' => '3600', - 'enum' => [ - '3600', - '86400', - ], - ], + 'schema' => ['description' => '每页大小。默认值:10,取值范围:5~30。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '5', 'example' => '10', 'default' => '10'], ], [ - 'name' => 'Split', + 'name' => 'Order', 'in' => 'query', 'schema' => [ - 'description' => '分组键。取值:'."\n" - ."\n" - .'- **domain**:域名。如果此参数Split(分组键)取值为domain时,返回参数Domain才生效。'."\n" - .'- **region**:直播中心地域。如果此参数Split(分组键)取值为region时,返回参数Region才生效。'."\n" - .'- **transcode_type**:转码类型。如果此参数Split(分组键)取值为transcode_type时,返回参数TanscodeType才生效。'."\n" - .'- **resolution**:分辨率。如果此参数Split(分组键)取值为resolution时,返回参数Resolution才生效。'."\n" - .'- **fps**:帧率。如果此参数Split(分组键)取值为fps时,返回参数Fps才生效。'."\n" + 'description' => '排序。取值:'."\n" ."\n" - .'可选一个,也可多选,用英文逗号(,)分隔。'."\n" + .'- **asc**(默认值):升序。'."\n" ."\n" - .'默认为`domain,region,transcode_type,resolution,fps`,即全部进行分组。'."\n", + .'- **desc**:降序。', 'type' => 'string', 'required' => false, - 'example' => 'domain', - 'default' => 'domain,region,transcode_type,resolution,fps', + 'enumValueTitles' => ['asc' => '升序', 'desc' => '降序'], + 'example' => 'asc', + 'default' => 'asc', + 'enum' => ['asc', 'desc'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '封装配置信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B******', - ], - 'TranscodeDataList' => [ + 'LivePackageConfigList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'TranscodeData' => [ - 'description' => '每个时间间隔的网络带宽数据。', + 'LivePackageConfig' => [ + 'description' => '封装配置列表', 'type' => 'array', 'items' => [ + 'description' => '封装配置列表', 'type' => 'object', 'properties' => [ - 'TanscodeType' => [ - 'description' => '转码类型。取值:'."\n" - ."\n" - .'> 如果请求参数Split(分组键)为transcode_type时,此返回参数才生效。'."\n" - ."\n\n" - .''."\n" - ."\n" - .'- **H264STD**:H.264标准转码。'."\n" - .'- **H265STD**:H.265标准转码。'."\n" - ."\n" - .''."\n" - ."\n" - .'- **H264NBHD**:H.264窄带高清转码。'."\n" - .'- **H265NBHD**:H.265窄带高清转码。'."\n" - .'- **AUDIO**:音频转码。', - 'type' => 'string', - 'example' => 'H264STD', - ], - 'Domain' => [ - 'description' => '主播流域名。'."\n" - ."\n" - .'> 如果请求参数Split(分组键)为domain时,此返回参数才生效。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Region' => [ - 'description' => '域名所属地域。 取值:'."\n" - ."\n" - .'> 如果请求参数Split(分组键)为region时,此返回参数才生效。'."\n" - .'- **cn-beijing**:北京。'."\n" - .'- **cn-shanghai**:上海。'."\n" - .'- **cn-qingdao**:青岛。'."\n" - .'- **cn-shenzhen**:深圳。'."\n" - .'- **ap-northeast-1**:日本。'."\n" - .'- **ap-southeast-1**:新加坡。'."\n" - .'- **ap-southeast-5**:印尼。'."\n" - .'- **eu-central-1**:德国。', - 'type' => 'string', - 'example' => 'cn-beijing', - ], - 'Duration' => [ - 'description' => '时长。单位:分钟。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2000', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'Fps' => [ - 'description' => '帧率。'."\n" - ."\n" - .'> 如果请求参数Split(分组键)为fps时,此返回参数才生效。', - 'type' => 'string', - 'example' => 'normal', - ], - 'Resolution' => [ - 'description' => '分辨率。取值:'."\n" - ."\n" - .'> 如果请求参数Split(分组键)为resolution时,此返回参数才生效。'."\n" - ."\n" - .'- **2K**'."\n" - .'- **4K**'."\n" - .'- **LD**:流畅。'."\n" - .'- **SD**:标清。'."\n" - .'- **HD**:高清。'."\n" - .'- **def**:音频。', - 'type' => 'string', - 'example' => 'HD', - ], + 'AppName' => ['description' => 'App名。', 'type' => 'string', 'example' => 'AppName'], + 'DomainName' => ['description' => '直播域名(主播放域名)。', 'type' => 'string', 'example' => 'example.com'], + 'IgnoreTranscode' => ['description' => '是否忽略转码流,取值:'."\n" + ."\n" + .'- **true**(默认值):忽略。'."\n" + ."\n" + .'- **false**:不忽略。', 'type' => 'boolean', 'example' => 'true'], + 'PartDuration' => ['description' => 'Part切片时长,单位:毫秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Protocol' => ['description' => '直播协议与封装格式。', 'type' => 'string', 'example' => 'HLS_CMAF'], + 'SegmentDuration' => ['description' => '切片时长,单位:秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'SegmentNum' => ['description' => '直播M3U8切片个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'StreamName' => ['description' => '直播流名。', 'type' => 'string', 'example' => 'StreamName'], ], ], ], ], + 'description' => '', ], + 'Order' => ['description' => '排序。取值:'."\n" + ."\n" + .'- **asc**(默认值):升序。'."\n" + ."\n" + .'- **desc**:降序。', 'type' => 'string', 'example' => 'asc'], + 'PageNum' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '1FEDCFD8-4C5D-5CB3-A5A1-0B59E5AE57B0'], + 'TotalNum' => ['description' => '总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalPage' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'InvalidParams', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数无效,请检查后重试。'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'InvalidProtocol', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数Protocol无效,请检查后重试。'], + ['errorCode' => 'InvalidSegmentNum', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SegmentNum无效,请检查后重试。'], + ['errorCode' => 'InvalidSegmentDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SegmentDuration无效,请检查后重试。'], + ['errorCode' => 'InvalidPartDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PartDuration无效,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalErr', 'errorMessage' => '%s, please try again.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LivePackageConfigList\\": {\\n \\"LivePackageConfig\\": [\\n {\\n \\"AppName\\": \\"AppName\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"IgnoreTranscode\\": true,\\n \\"PartDuration\\": 0,\\n \\"Protocol\\": \\"HLS_CMAF\\",\\n \\"SegmentDuration\\": 5,\\n \\"SegmentNum\\": 3,\\n \\"StreamName\\": \\"StreamName\\"\\n }\\n ]\\n },\\n \\"Order\\": \\"asc\\",\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"1FEDCFD8-4C5D-5CB3-A5A1-0B59E5AE57B0\\",\\n \\"TotalNum\\": 1,\\n \\"TotalPage\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 1FEDCFD8-4C5D-5CB3-A5A1-0B59E5AE57B0\\n asc\\n 10\\n 10\\n 1\\n \\n AppName\\n 3\\n StreamName\\n HLS_CMAF\\n true\\n 0\\n 5\\n example.com\\n \\n","errorExample":""}]', + 'title' => '查询直播封装配置', + 'description' => '先获取主播流域名,再调用本接口查询播流域名下的直播封装配置。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为300次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePackageConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], - [ - 'errorCode' => 'InvalidParamPrecision', - 'errorMessage' => 'The parameter Precision is invalid, please check StartTime and EndTime or Precision.', + ], + ], + ], + 'DescribeLivePrivateLineAreas' => [ + 'summary' => '查询可选的全球加速链路起点。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'LiveAreasList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveArea' => [ + 'description' => '区域详情列表。', + 'type' => 'array', + 'items' => [ + 'description' => '区域详情。', + 'type' => 'object', + 'properties' => [ + 'RegionType' => ['description' => '区域类型,取值:'."\n" + .'- domestic:中国大陆。'."\n" + .'- overseas:除中国大陆以外的国家和地区。', 'type' => 'string', 'example' => 'domestic'], + 'Regions' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Region' => [ + 'description' => '区域列表。', + 'type' => 'array', + 'items' => [ + 'description' => '区域信息。', + 'type' => 'object', + 'properties' => [ + 'LocalName' => ['description' => '区域名。', 'type' => 'string', 'example' => '深圳'], + 'RegionId' => ['description' => '区域ID。', 'type' => 'string', 'example' => 'cn-shenzhen'], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', + ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C4865B85-664B-19D3-BB16-C62FB83C8226'], + ], ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], + ], + ], + 'title' => '查询可选的全球加速链路起点', + 'description' => '在调用CreateLivePrivateLine前,您可以调用该接口查询可选的全球加速区域,即加速链路起点。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'extraInfo' => '### 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP状态码 | 语义 |'."\n" + .'| ----- | --------- | ----------- | ------- |'."\n" + .'| InvalidDomain.NotFound | The domain provided does not exist in our records. | 404 | 当前账户下未查到域名。 |'."\n" + .'| InvalidParam | Parameter invalid. | 400 | 参数错误。 |'."\n" + .'| InternalError | The request processing has failed due to some unknown error. | 500 | 后台发生未知错误。 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePrivateLineAreas', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LiveAreasList\\": {\\n \\"LiveArea\\": [\\n {\\n \\"RegionType\\": \\"domestic\\",\\n \\"Regions\\": {\\n \\"Region\\": [\\n {\\n \\"LocalName\\": \\"深圳\\",\\n \\"RegionId\\": \\"cn-shenzhen\\"\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"RequestId\\": \\"C4865B85-664B-19D3-BB16-C62FB83C8226\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C4865B85-664B-19D3-BB16-C62FB83C8226\\n \\n \\n domestic\\n \\n \\n 深圳\\n cn-shenzhen\\n \\n \\n \\n \\n overseas\\n \\n \\n 新加坡\\n ap-southeast-1\\n \\n \\n \\n \\n","errorExample":""}]', + ], + 'DescribeLivePrivateLineAvailGA' => [ + 'summary' => '查询全球加速实例和直播链路的绑定信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '应用名称。', 'type' => 'string', 'required' => false, 'example' => 'live'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流名称。', 'type' => 'string', 'required' => false, 'example' => 'testStream'], + ], + [ + 'name' => 'AccelerationArea', + 'in' => 'query', + 'schema' => ['description' => '加速通道。', 'type' => 'string', 'required' => false, 'example' => 'ap-southeast-1'], + ], + [ + 'name' => 'VideoCenter', + 'in' => 'query', + 'schema' => ['description' => '直播中心,取值:cn-beijing、cn-shanghai、cn-shenzhen、cn-qingdao、ap-northeast-1、ap-southeast-5、eu-central-1、ap-southeast-1、ap-south-1,分别表示位于北京、上海、深圳、青岛、日本、印尼、德国、新加坡的直播中心。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], + ], + [ + 'name' => 'IsGaInstance', + 'in' => 'query', + 'schema' => [ + 'description' => '查询全球加速实例,取值:'."\n" + .'- yes:查询全球加速实例状态。'."\n" + .'- no:查询全球加速实例和直播链路的绑定详情。', + 'type' => 'string', + 'required' => true, + 'example' => 'no', + 'enum' => ['yes', 'no'], ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'LivePrivateLineAvailGAs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LivePrivateLineAvailGA' => [ + 'description' => '全球加速实例配置详情。', + 'type' => 'array', + 'items' => [ + 'description' => '全球加速实例配置详情。', + 'type' => 'object', + 'properties' => [ + 'AccelerationArea' => ['description' => '加速通道。', 'type' => 'string', 'example' => 'ap-southeast-1'], + 'AccelerationType' => ['description' => '加速类型,取值:'."\n" + .'- play:播流加速。'."\n" + .'- publish:推流加速。', 'type' => 'string', 'example' => 'play'], + 'AppName' => ['description' => '应用名称。', 'type' => 'string', 'example' => 'live'], + 'BindingStatus' => ['description' => '是否绑定到直播链路,取值:'."\n" + .'- yes:已绑定。'."\n" + .'- no:未绑定。', 'type' => 'string', 'example' => 'yes'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'demo.aliyundoc.com'], + 'IP' => ['description' => '加速IP地址。', 'type' => 'string', 'example' => '127.0.0.1'], + 'InstanceId' => ['description' => '全球加速实例ID。', 'type' => 'string', 'example' => 'ga-bp1iovsdpf01ym9su****'], + 'Status' => ['description' => '实例状态,取值:'."\n" + .'- active:可用。'."\n" + .'- inactive:不可用。', 'type' => 'string', 'example' => 'active'], + 'StreamName' => ['description' => '直播流名称。', 'type' => 'string', 'example' => 'testStream'], + 'Uid' => ['description' => 'UID。', 'type' => 'string', 'example' => '1833220971116****'], + 'VideoCenter' => ['description' => '直播中心。', 'type' => 'string', 'example' => 'cn-shanghai'], + ], + ], + ], + ], + 'description' => '', + ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C4865B85-664B-19D3-BB16-C62FB83C8226'], + ], ], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B******\\",\\n \\"TranscodeDataList\\": {\\n \\"TranscodeData\\": [\\n {\\n \\"TanscodeType\\": \\"H264STD\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"Region\\": \\"cn-beijing\\",\\n \\"Duration\\": 2000,\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"Fps\\": \\"normal\\",\\n \\"Resolution\\": \\"HD\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\n\\n \\n normal\\n cn-beijing\\n 2000\\n H264STD\\n example.com\\n 2017-12-10T20:00:00Z\\n HD\\n \\n\\n","errorExample":""}]', - 'title' => '查询域名转码用量数据', - 'description' => '- 可以用来统计每个时间间隔的网络带宽数据。'."\n" - .'- 支持批量域名查询,多个域名用英文逗号(,)分隔。'."\n" - .'- 最多可获取最近90天的数据。'."\n" - .'- 数据时间粒度为小时或天。'."\n" - .'- 不同转码类型与转码分辨率对应的计费档次,请参见[直播转码计费说明](~~90424~~)中的转码账单中不同实例规格对应的转码计费档次说明。'."\n" + 'title' => '查询全球加速配置', + 'description' => '请求参数IsGaInstance为yes时,表示查询全球加速实例状态,为no时,表示查询全球加速实例和直播链路的绑定详情。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特殊错误码'."\n" - .'|ErrorCode 错误码 |Message 错误信息 |HTTP 状态 |语义 |'."\n" - .'| ------------- |------------ | ----- | ----- |'."\n" - .'|Throttling |Request was denied due to request throttling. |503 |请求被流量控制限制。|'."\n" - .'|InvalidDomain.NotFound |The domain provided does not belong to you. |404 |域名不存在或不属于当前用户。|', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'extraInfo' => '### 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP状态码 | 语义 |'."\n" + .'| ----- | --------- | ----------- | ------- |'."\n" + .'| InvalidDomain.NotFound | The domain provided does not exist in our records. | 404 | 当前账户下未查到域名。 |'."\n" + .'| InvalidParam | Parameter invalid. | 400 | 参数错误。 |'."\n" + .'| InternalError | The request processing has failed due to some unknown error. | 500 | 后台发生未知错误。 |'."\n", + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLivePrivateLineAvailGA'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePrivateLineAvailGA', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LivePrivateLineAvailGAs\\": {\\n \\"LivePrivateLineAvailGA\\": [\\n {\\n \\"AccelerationArea\\": \\"ap-southeast-1\\",\\n \\"AccelerationType\\": \\"play\\",\\n \\"AppName\\": \\"live\\",\\n \\"BindingStatus\\": \\"yes\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"IP\\": \\"127.0.0.1\\",\\n \\"InstanceId\\": \\"ga-bp1iovsdpf01ym9su****\\",\\n \\"Status\\": \\"active\\",\\n \\"StreamName\\": \\"testStream\\",\\n \\"Uid\\": \\"1833220971116****\\",\\n \\"VideoCenter\\": \\"cn-shanghai\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"C4865B85-664B-19D3-BB16-C62FB83C8226\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C4865B85-664B-19D3-BB16-C62FB83C8226\\n \\n \\n xxx.example1.com\\n test\\n test\\n ga-bp1iovsdpf01ym9sulesm\\n 18332209711160785\\n 127.0.0.1\\n cn-shanghai\\n ap-southeast-1\\n active\\n play\\n yes\\n \\n \\n","errorExample":""}]', ], 'DescribeLiveProducerUsageData' => [ 'summary' => '调用DescribeLiveProducerUsageData查询导播台用量数据。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -29799,126 +24285,73 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'Region', 'in' => 'query', - 'schema' => [ - 'description' => '域名所属地域。若参数为空,默认返回所有Region合并后数据,支持批量查询,多个Region用半角逗号(,)分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '域名所属地域。若参数为空,默认返回所有Region合并后数据,支持批量查询,多个Region用半角逗号(,)分隔。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '云导播播流域名。'."\n" - ."\n" - .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - .'- 若参数为空,默认返回所有直播域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '云导播播流域名。'."\n" + ."\n" + .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + .'- 若参数为空,默认返回所有直播域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'Instance', 'in' => 'query', - 'schema' => [ - 'description' => '查询实例。支持批量实例查询,多个实例用英文逗号(,)分隔。'."\n" - ."\n" - .'> 若参数为空,默认返回所有实例合并后数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'a17d0184-462d-4630-b2a6-8c26dde2****', - ], + 'schema' => ['description' => '查询实例。支持批量实例查询,多个实例用英文逗号(,)分隔。'."\n" + ."\n" + .'> 若参数为空,默认返回所有实例合并后数据。', 'type' => 'string', 'required' => false, 'example' => 'a17d0184-462d-4630-b2a6-8c26dde2****'], ], [ 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '导播类型。支持批量查询,多个类型用英文逗号(,)分隔。取值:'."\n" - ."\n" - .'- **slidelive**:播单型。'."\n" - ."\n" - .'- **universal**:通用型。'."\n" - ."\n" - .'> 若参数为空,默认返回所有导播类型合并后数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'slidelive', - ], + 'schema' => ['description' => '导播类型。支持批量查询,多个类型用英文逗号(,)分隔。取值:'."\n" + ."\n" + .'- **slidelive**:播单型。'."\n" + ."\n" + .'- **universal**:通用型。'."\n" + ."\n" + .'> 若参数为空,默认返回所有导播类型合并后数据。', 'type' => 'string', 'required' => false, 'example' => 'slidelive'], ], [ 'name' => 'SplitBy', 'in' => 'query', - 'schema' => [ - 'description' => '分组键。可以指定domain、region、 instance,、type其中之一或多个, 多个使用英文逗号(,)分隔.。指定了split 的字段将会被分组输出。'."\n" - ."\n\n" - .'>若参数为空, 则只输出按照聚合后数据. ', - 'type' => 'string', - 'required' => false, - 'example' => 'type', - ], + 'schema' => ['description' => '分组键。可以指定domain、region、 instance,、type其中之一或多个, 多个使用英文逗号(,)分隔.。指定了split 的字段将会被分组输出。'."\n" + ."\n\n" + .'>若参数为空, 则只输出按照聚合后数据. ', 'type' => 'string', 'required' => false, 'example' => 'type'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '开始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-09-30T16:00:00Z', - ], + 'schema' => ['description' => '开始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2018-09-30T16:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'>结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-10-31T15:59:59Z', - ], + 'schema' => ['description' => '结束时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'>结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2018-10-31T15:59:59Z'], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '指定查询数据的时间粒度,支持3600(1小时)和86400(1天)的取值。单位:秒。', - 'type' => 'string', - 'required' => false, - 'example' => '3600', - ], + 'schema' => ['description' => '指定查询数据的时间粒度,支持3600(1小时)和86400(1天)的取值。单位:秒。', 'type' => 'string', 'required' => false, 'example' => '3600'], ], [ 'name' => 'app', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], ], 'responses' => [ @@ -29936,117 +24369,40 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => '用量域名。SplitBy指定为domain时,分组输出。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Instance' => [ - 'description' => '用量实例。SplitBy指定为instance时,分组输出。', - 'type' => 'string', - 'example' => 'a17d0184-462d-4630-b2a6-8c26dde2****', - ], - 'OutputHdDuration' => [ - 'description' => '高清分辨率时长,单位为分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '6000', - ], - 'OutputLdDuration' => [ - 'description' => '流畅分辨率时长,单位为分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1001', - ], - 'OutputSdDuration' => [ - 'description' => '标准分辨率时长,单位为分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '500', - ], - 'Region' => [ - 'description' => '用量地区。SplitBy指定为region时,分组输出。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2018-09-30T00:00:00Z', - ], - 'TranHdDuration' => [ - 'description' => '转码高清分辨率时长,单位为分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '6777', - ], - 'TranLdDuration' => [ - 'description' => '转码流畅分辨率时长,单位为分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '111', - ], - 'TranSdDuration' => [ - 'description' => '转码标准分辨率时长,单位为分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '666', - ], - 'Type' => [ - 'description' => '导播类型。SplitBy指定为type时,分组输出。', - 'type' => 'string', - 'example' => 'slidelive', - ], + 'DomainName' => ['description' => '用量域名。SplitBy指定为domain时,分组输出。', 'type' => 'string', 'example' => 'example.com'], + 'Instance' => ['description' => '用量实例。SplitBy指定为instance时,分组输出。', 'type' => 'string', 'example' => 'a17d0184-462d-4630-b2a6-8c26dde2****'], + 'OutputHdDuration' => ['description' => '高清分辨率时长,单位为分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '6000'], + 'OutputLdDuration' => ['description' => '流畅分辨率时长,单位为分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '1001'], + 'OutputSdDuration' => ['description' => '标准分辨率时长,单位为分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '500'], + 'Region' => ['description' => '用量地区。SplitBy指定为region时,分组输出。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2018-09-30T00:00:00Z'], + 'TranHdDuration' => ['description' => '转码高清分辨率时长,单位为分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '6777'], + 'TranLdDuration' => ['description' => '转码流畅分辨率时长,单位为分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '111'], + 'TranSdDuration' => ['description' => '转码标准分辨率时长,单位为分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '666'], + 'Type' => ['description' => '导播类型。SplitBy指定为type时,分组输出。', 'type' => 'string', 'example' => 'slidelive'], ], + 'description' => '', ], ], ], + 'description' => '', ], - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2018-09-30T16:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2018-10-31T15:59:59Z', - ], + 'EndTime' => ['description' => '结束时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2018-09-30T16:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E'], + 'StartTime' => ['description' => '开始时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2018-10-31T15:59:59Z'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified StartTime or EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidTime.ValueNotSupported', - 'errorMessage' => 'Specified Time is malformed.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'Specified Time is malformed.', 'description' => '指定的时间无效。'], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"BillProducerData\\": {\\n \\"BillProducerDataItem\\": [\\n {\\n \\"DomainName\\": \\"example.com\\",\\n \\"Instance\\": \\"a17d0184-462d-4630-b2a6-8c26dde2****\\",\\n \\"OutputHdDuration\\": 6000,\\n \\"OutputLdDuration\\": 1001,\\n \\"OutputSdDuration\\": 500,\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"TimeStamp\\": \\"2018-09-30T00:00:00Z\\",\\n \\"TranHdDuration\\": 6777,\\n \\"TranLdDuration\\": 111,\\n \\"TranSdDuration\\": 666,\\n \\"Type\\": \\"slidelive\\"\\n }\\n ]\\n },\\n \\"EndTime\\": \\"2018-09-30T16:00:00Z\\",\\n \\"RequestId\\": \\"C370DAF1-C838-4288-A1A0-9A87633D248E\\",\\n \\"StartTime\\": \\"2018-10-31T15:59:59Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C370DAF1-C838-4288-A1A0-9A87633D248E\\n 2018-09-30T16:00:00Z\\n 2018-10-31T15:59:59Z\\n \\n \\n 1001\\n 500\\n 6000\\n 111\\n 666\\n 6777\\n 2018-09-30T00:00:00Z\\n \\n \\n 1001\\n 500\\n 6000\\n 111\\n 666\\n 6777\\n 2018-10-01T00:00:00Z\\n \\n \\n 1001\\n 500\\n 6000\\n 111\\n 666\\n 6777\\n 2018-10-02T00:00:00Z\\n \\n \\n","errorExample":""}]', @@ -30206,17 +24562,27 @@ .' }'."\n" .'}'."\n" .'```', - ], - 'DescribeLiveDomainMonitoringUsageData' => [ - 'summary' => '调用DescribeLiveDomainMonitoringUsageData获取域名广目监播用量数据。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveProducerUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLivePullStreamConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -30227,631 +24593,397 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '195294', - 'abilityTreeNodes' => [ - 'FEATUREliveSM955S', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的主播流域名。'."\n" - ."\n" - .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - .'- 若参数为空,默认返回所有直播域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '开始时间。获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。'."\n" - .'- 格式为:YYYY-MM-DDThh:mm:ssZ。'."\n" - .'- 最小数据粒度为1小时。'."\n" - .'- 不写默认读取过去24小时数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-12-10T20:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。结束时间需大于起始时间;获日期格式按照ISO8601表示法,并使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-12-10T22:00:00Z', - ], - ], - [ - 'name' => 'Region', - 'in' => 'query', - 'schema' => [ - 'description' => '直播中心Region。若参数为空,默认返回所有Region合并后数据,支持批量查询,多个Region用半角逗号(,)分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '监播场次ID,若参数为空,默认返回所有监播场次合并后数据,支持批量查询,多个ID用半角逗号(,)分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'e62af24d-a354-3b0c-9f1f-da592c4b****', - ], - ], - [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => '查询的时间粒度,可以使用**3600**和**86400**,即小时和天粒度。', - 'type' => 'string', - 'required' => false, - 'example' => '3600', - ], - ], - [ - 'name' => 'SplitBy', - 'in' => 'query', - 'schema' => [ - 'description' => '分组键。默认为**resolution**,即按清晰度分组,可选值为**domain**,**region**,**instance**,**resolution**之一。可以指定多个,多个值用半角逗号(,)分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'resolution', - 'default' => 'resolution', - ], + 'schema' => ['description' => '您的主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => '域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'EndTime' => [ - 'description' => '查询结束时间。', - 'type' => 'string', - 'example' => '2022-12-10T22:00:00Z', - ], - 'InstanceId' => [ - 'description' => '监播场次ID。', - 'type' => 'string', - 'example' => 'e62af24d-a354-3b0c-9f1f-da592c4b****', - ], - 'MonitoringData' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A3136B58-5876-4168-83CA-B562781981A0'], + 'LiveAppRecordList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'MonitoringDataItem' => [ - 'description' => '广目监播用量明细。', + 'LiveAppRecord' => [ + 'description' => '拉流配置。', 'type' => 'array', 'items' => [ - 'description' => '明细详情。', 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => '域名。只有当**Split**指定了domain时有效。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Duration' => [ - 'description' => '时长,单位为分钟。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2000', - ], - 'InstanceId' => [ - 'description' => '监播场次ID。只有当**Split**指定了instance时有效。', - 'type' => 'string', - 'example' => 'e62af24d-a354-3b0c-9f1f-da592c4b****', - ], - 'Region' => [ - 'description' => '直播中心Region。只有当**Split**指定了Region时有效。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'Resolution' => [ - 'description' => '分辨率.。只有当**Split**指定了resolution时有效。', - 'type' => 'string', - 'example' => '720P', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2022-12-10T20:00:00Z', - ], + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2016-05-20T01:33:00Z'], + 'AppName' => ['description' => '直播流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'SourceUrl' => ['description' => '拉流源站。', 'type' => 'string', 'example' => 'guide.aliyundoc.com'], + 'StartTime' => ['description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2016-05-15T01:30:00Z'], + 'StreamName' => ['description' => '拉流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'SourceUsing' => ['description' => '当前正在使用的拉流源站。', 'type' => 'string', 'example' => 'guide.aliyundoc.com'], + 'DomainName' => ['description' => '直播流所属的主播流域名。', 'type' => 'string', 'example' => 'example.com'], ], + 'description' => '', ], ], ], - ], - 'Region' => [ - 'description' => '直播中心Region。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3******', - ], - 'StartTime' => [ - 'description' => '查询起始时间。', - 'type' => 'string', - 'example' => '2022-12-10T20:00:00Z', + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2022-12-10T22:00:00Z\\",\\n \\"InstanceId\\": \\"e62af24d-a354-3b0c-9f1f-da592c4b****\\",\\n \\"MonitoringData\\": {\\n \\"MonitoringDataItem\\": [\\n {\\n \\"DomainName\\": \\"example.com\\",\\n \\"Duration\\": 2000,\\n \\"InstanceId\\": \\"e62af24d-a354-3b0c-9f1f-da592c4b****\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"Resolution\\": \\"720P\\",\\n \\"TimeStamp\\": \\"2022-12-10T20:00:00Z\\"\\n }\\n ]\\n },\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3******\\",\\n \\"StartTime\\": \\"2022-12-10T20:00:00Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 2022-12-10T22:00:00Z\\n 2022-12-10T20:00:00Z\\n 3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\n cn-shanghai\\n e62af24d-a354-3b0c-9f1f-da592c4b****\\n example.com\\n \\n cn-shanghai\\n 2022-12-10T20:00:00Z\\n 2000\\n e62af24d-a354-3b0c-9f1f-da592c4b****\\n example.com\\n 720P\\n \\n","errorExample":""}]', - 'title' => '获取域名广目监播用量', - 'description' => '- 支持批量域名查询,多个域名用半角逗号(,)分隔。'."\n" - .'- 最多可获取最近90天的数据。'."\n" - .'- 查询数据的时间粒度为小时或天。'."\n" - .'- 最大支持查询时间跨度31天。'."\n" + 'title' => '查询域名下拉流配置信息', + 'summary' => '调用DescribeLivePullStreamConfig查询域名下拉流配置信息。', + 'description' => '本接口目前适用于固定拉流。调用本接口查询域名下固定拉流的配置信息。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'extraInfo' => '## 特殊错误码'."\n" - .'| 错误代码 | 描述 | HTTP状态码 | 语义 |'."\n" - .'|-------------|-------|-----------------|-------|'."\n" - .'| Throttling | Request was denied due to request throttling. | 503 | 请求被流量控制限制 |'."\n" - .'| InvalidDomain.NotFound | The domain provided does not belong to you. | 404 | 域名不存在或不属于当前用户 |', - ], - 'DescribeLiveDelayedStreamingUsage' => [ - 'summary' => '调用DescribeLiveDelayedStreamingUsage查询延播时长用量数据。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePullStreamConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"LiveAppRecordList\\": {\\n \\"LiveAppRecord\\": [\\n {\\n \\"EndTime\\": \\"2016-05-20T01:33:00Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"SourceUrl\\": \\"guide.aliyundoc.com\\",\\n \\"StartTime\\": \\"2016-05-15T01:30:00Z\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"SourceUsing\\": \\"guide.aliyundoc.com\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\nA3136B58-5876-4168-83CA-B562781981A0\\n\\n \\n guide.aliyundoc.com\\n liveStream****\\n 2016-05-20T01:33:00Z\\n example.com\\n 2016-05-15T01:30:00Z\\n guide.aliyundoc.com\\n liveApp****\\n \\n\\n","errorExample":"{\\n \\"LiveAppRecordList\\":{\\n \\"LiveAppRecord\\":[{\\n \\"AppName\\":\\"xxxx\\",\\n \\"DomainName\\":\\"live.aliyunlive.com\\",\\n \\"EndTime\\":\\"2016-05-20T01:33:00Z\\",\\n \\"SourceUrl\\":\\"http://test\\",\\n \\"StartTime\\":\\"2016-05-15T01:30:00Z\\",\\n \\"StreamName\\":\\"xxxxxx\\"\\n }]\\n },\\n \\"RequestId\\":\\"A3136B58-5876-4168-83CA-B562781981A0\\"\\n}"}]', + ], + 'DescribeLivePullToPush' => [ + 'summary' => '调用DescribeLivePullToPush查询拉流转推任务。', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeCode' => '238179', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的主播流域名。'."\n" - .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - .'- 若参数为空,默认返回所有直播域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '任务ID。', 'type' => 'string', 'required' => true, 'example' => 'fd245384-4067-4f91-9d75-9666a6bc****'], ], [ - 'name' => 'StartTime', + 'name' => 'Region', 'in' => 'query', 'schema' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ,默认返回近七天的数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-10-10T20:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间需大于起始时间,时间跨度≤10小时;日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-10-10T21:00:00Z', - ], - ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '流名,多个流名使用逗号(半角)分隔,默认为所有流名数据聚合输出。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', - ], - ], - [ - 'name' => 'Region', - 'in' => 'query', - 'schema' => [ - 'description' => '查询不同直播中心, 支持批量地区查询,多个地区用逗号(半角)分隔。取值:'."\n" - .'- cn-beijing:北京'."\n" - .'- cn-shanghai:上海'."\n" - .'- cn-shenzhen:深圳'."\n" - .'- cn-qingdao:青岛'."\n" - .'- ap-southeast-1:新加坡'."\n" - .'- eu-central-1:德国'."\n" - .'- ap-northeast-1:东京'."\n" - .'- ap-southeast-5:雅加达'."\n" - ."\n" - .'不传值时默认为所有区域数据聚合输出。', + 'description' => '指定任务启动所在区域,取值:'."\n" + .'- ap-southeast-1(新加坡)'."\n" + .'- ap-southeast-5(印度尼西亚)'."\n" + .'- cn-beijing(北京)'."\n" + .'- cn-shanghai(上海)', 'type' => 'string', - 'required' => false, + 'required' => true, + 'enumValueTitles' => ['cn-shenzhen' => '深圳', 'cn-qingdao' => '青岛', 'preregion' => '预发', 'cn-beijing' => '北京', 'cn-shanghai' => '上海', 'ap-southeast-1' => '新加坡', 'eu-central-1' => '德国-法兰克福', 'ap-northeast-1' => '日本-东京', 'ap-southeast-5' => '印度尼西亚', 'me-central-1' => '沙特-利雅得'], 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'SplitBy', - 'in' => 'query', - 'schema' => [ - 'description' => '分组键,若参数为空,则聚合输出用户数据,取值:'."\n" - .'- domain:域名。如果此参数Split(分组键)取值为domain时,返回参数Domain才生效。'."\n" - .'- region:直播中心地域。如果此参数Split(分组键)取值为region时,返回参数Region才生效。'."\n" - .'- stream:流名。如果此参数Split(分组键)取值为stream时,返回参数stream才生效。'."\n" - ."\n" - .'> 当分组键对应的参数不为空时才可以查询,否则返回错误。例如:当DomainName为空时不可以指定domain为分组键。', - 'type' => 'string', - 'required' => false, - 'example' => 'domain', - ], - ], - [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度。单位:秒。取值:'."\n" - .'- 300'."\n" - .'- 3600'."\n" - .'- 86400'."\n" - ."\n" - .'不传或传值不支持时,使用默认值3600秒。', - 'type' => 'string', - 'required' => false, - 'example' => '3600', + 'enum' => ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-5', 'eu-central-1', 'me-central-1', 'cn-beijing', 'cn-shanghai', 'cn-shenzhen', 'cn-qingdao', 'preregion'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回数据。', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'DelayData' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'a05e6b15-15af-405b-a4a2-0152245d****'], + 'RetCode' => ['description' => '返回码。'."\n" + .'> - 正常情况返回“0”。'."\n" + .'> - 异常情况请参考下文错误码列表。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Description' => ['description' => '错误描述。', 'type' => 'string', 'example' => 'OK'], + 'TaskId' => ['description' => '新建任务ID。', 'type' => 'string', 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****'], + 'TaskStatus' => ['description' => '任务当前状态:'."\n" + .'- 0:未启动(未到开始时间)。'."\n" + .'- 1:正常运行(拉流和转推正常)。'."\n" + .'- 2:异常运行。'."\n" + .'- 3:已停止(拉流或转推异常,也有可能是主动调用接口停止).'."\n" + .'- -1:已退出。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'TaskInvalidReason' => ['description' => '任务停止运行原因:'."\n" + ."\n" + .'- PullStreamFailed:源流拉流异常,重试中。'."\n" + .'- PushStreamFailed:目标流推流异常,重试中。'."\n" + .'- UnknownError:未知异常。'."\n" + ."\n" + .'> 仅停止运行状态下返回。', 'type' => 'string', 'example' => 'PullStreamFailed'], + 'TaskExitTime' => ['description' => '任务退出时间,Unix 秒级时间戳。'."\n" + .'> 仅已退出状态下返回。', 'type' => 'integer', 'format' => 'int32', 'example' => '1726354625'], + 'TaskExitReason' => ['description' => '任务退出原因:'."\n" + ."\n" + .'- TriggerByUser:用户主动结束。'."\n" + .'- OverEndTime:超过预设结束时间。'."\n" + ."\n" + .'> 仅已退出状态下返回。', 'type' => 'string', 'example' => 'TriggerByUser'], + 'CurrentOffset' => ['description' => '当前生效的视频播放偏移。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'CurrentFileIndex' => ['description' => '当前生效的节目单序列偏移。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'TaskInfo' => [ + 'description' => '任务信息。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'DelayDataItem' => [ - 'description' => '延播时长用量数据。', + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'fd245384-4067-4f91-9d75-9666a6bc9****'], + 'TaskName' => ['description' => '任务名称。', 'type' => 'string', 'example' => 'test'], + 'StartTime' => ['description' => '任务开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2024-08-26T10:30:00Z'], + 'EndTime' => ['description' => '任务结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2024-08-27T14:30:00Z'], + 'SourceType' => ['description' => '源流类型,枚举值:'."\n" + ."\n" + .'- live,直播流。'."\n" + .'- vod,阿里云视频点播资源。'."\n" + .'- url,第三方视频文件资源。', 'type' => 'string', 'example' => 'vod'], + 'SourceProtocol' => ['description' => '源流协议名。', 'type' => 'string', 'example' => 'RTMP'], + 'SourceUrls' => [ + 'description' => '源流URL地址。', 'type' => 'array', - 'items' => [ - 'description' => '延播时长用量数据。', - 'type' => 'object', - 'properties' => [ - 'DomainName' => [ - 'description' => '用量域名,SplitBy指定domain时,分组输出。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Duration' => [ - 'description' => '延播用量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '84', - ], - 'Region' => [ - 'description' => '直播中心,SplitBy指定region时,分组输出。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'StreamName' => [ - 'description' => '流名,SplitBy指定stream时,分组输出。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2022-10-10T20:00:00Z', - ], - ], - ], + 'items' => ['description' => '源流URL地址。', 'type' => 'string', 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434'], + 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434', ], + 'DstUrl' => ['description' => '推流目标地址。', 'type' => 'string', 'example' => 'rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434'], + 'CallbackURL' => ['description' => 'HTTP回调地址。', 'type' => 'string', 'example' => 'https://callback*****.com'], + 'Offset' => ['description' => '启动偏移,视频文件起始偏移值。单位:秒。取值:大于0。'."\n" + .'> - 表示从相对于首帧的偏差时间作为开始读取的位置。'."\n" + .'> - 仅对点播资源或视频文件有效。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'FileIndex' => ['description' => '文件索引,从第n个文件开始播放起。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'RetryCount' => ['description' => '重试次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'RetryInterval' => ['description' => '重试间隔,单位秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '60'], + 'RepeatNumber' => ['description' => '播放完后重复继续播放的次数。取值:'."\n" + .'- 0(默认值):不重复播放。'."\n" + .'- -1:一直循环重复。'."\n" + .'- 其他正整数:播放完后重复继续播放的次数。'."\n" + ."\n" + .'> 此参数仅针对点播或第三方视频流。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], ], ], - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2022-10-10T21:00:00Z', - ], - 'RequestId' => [ - 'description' => '该条任务请求ID。', - 'type' => 'string', - 'example' => '4B460F8B-993C-4F48-B98A-91081******', - ], - 'StartTime' => [ - 'description' => '起始时间。', - 'type' => 'string', - 'example' => '2022-10-10T20:00:00Z', - ], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'InvalidParameter.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.', - ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified Time is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'LiveServiceNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => '这个aluid没有直播域名'], + ['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => '任务不存在。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DelayData\\": {\\n \\"DelayDataItem\\": [\\n {\\n \\"DomainName\\": \\"example.com\\",\\n \\"Duration\\": 84,\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"TimeStamp\\": \\"2022-10-10T20:00:00Z\\"\\n }\\n ]\\n },\\n \\"EndTime\\": \\"2022-10-10T21:00:00Z\\",\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-91081******\\",\\n \\"StartTime\\": \\"2022-10-10T20:00:00Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n b83f5c8c-b07b-4ac8-90c5-96c0f922d394\\n \\n \\n \\n \\n 2022-11-19T16:00:00Z\\n www.example.com\\n 60\\n \\n \\n 2022-11-19T17:00:00Z\\n www.example.com\\n 60\\n \\n \\n","errorExample":""}]', - 'title' => '查询延播时长数据', - 'description' => '- 查询用户延播服务用量数据,默认粒度为1小时粒度。'."\n" - .'- 最大查询时间跨度:31天。'."\n" - .'- 最小查询时间粒度:1小时。'."\n" - .'- 最大查询时间范围:31天。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"a05e6b15-15af-405b-a4a2-0152245d****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\",\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\",\\n \\"TaskStatus\\": 0,\\n \\"TaskInvalidReason\\": \\"PullStreamFailed\\",\\n \\"TaskExitTime\\": 1726354625,\\n \\"TaskExitReason\\": \\"TriggerByUser\\",\\n \\"CurrentOffset\\": 0,\\n \\"CurrentFileIndex\\": 0,\\n \\"TaskInfo\\": {\\n \\"TaskId\\": \\"fd245384-4067-4f91-9d75-9666a6bc9****\\",\\n \\"TaskName\\": \\"test\\",\\n \\"StartTime\\": \\"2024-08-26T10:30:00Z\\",\\n \\"EndTime\\": \\"2024-08-27T14:30:00Z\\",\\n \\"SourceType\\": \\"vod\\",\\n \\"SourceProtocol\\": \\"RTMP\\",\\n \\"SourceUrls\\": [\\n \\"rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434\\"\\n ],\\n \\"DstUrl\\": \\"rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434\\",\\n \\"CallbackURL\\": \\"https://callback*****.com\\",\\n \\"Offset\\": 0,\\n \\"FileIndex\\": 0,\\n \\"RetryCount\\": 3,\\n \\"RetryInterval\\": 60,\\n \\"RepeatNumber\\": 0\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 3271ACD2-F143-1204-AFDB-9A87C131****\\n 0\\n OK\\n fd245384-4067-4f91-9d75-9666a6bc9****\\n 1\\n UnknownError\\n 1724740200\\n TriggerByUser\\n \\n fd245384-4067-4f91-9d75-9666a6bc9****\\n live\\n 2\\n https://callback*****.com\\n rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434\\n rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434\\n 2024-08-26T10:30:00Z\\n 2024-08-27T14:30:00Z\\n \\n","errorExample":""}]', + 'title' => '查询拉流转推任务', + 'description' => '- 调用本接口查询拉流转推任务。'."\n" + .'- 支持查询指定ID的任务配置信息和状态信息。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveGrtnDuration' => [ - 'summary' => '调用DescribeLiveGrtnDuration查询连麦通话时长用量数据。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2025-04-01T03:46:19.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLivePullToPush'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePullToPush', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLivePullToPushList' => [ + 'summary' => '模糊查询拉流转推任务。', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeCode' => '257040', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'StartTime', + 'name' => 'Region', 'in' => 'query', 'schema' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。', + 'description' => '指定直播中心查询。取值:'."\n" + .'- ap-southeast-1(新加坡)'."\n" + .'- ap-southeast-5(印度尼西亚)'."\n" + .'- cn-beijing(北京)'."\n" + .'- cn-shanghai(上海)', 'type' => 'string', 'required' => true, - 'example' => '2022-10-10T20:00:00Z', + 'enumValueTitles' => ['cn-shenzhen' => '深圳', 'cn-qingdao' => '青岛', 'preregion' => '预发', 'cn-beijing' => '北京', 'cn-shanghai' => '上海', 'ap-southeast-1' => '新加坡', 'eu-central-1' => '德国-法兰克福', 'ap-northeast-1' => '日本-东京', 'ap-southeast-5' => '印度尼西亚', 'me-central-1' => '沙特-利雅得'], + 'example' => 'cn-shanghai', + 'enum' => ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-5', 'eu-central-1', 'me-central-1', 'cn-beijing', 'cn-shanghai', 'cn-shenzhen', 'cn-qingdao', 'preregion'], ], ], [ - 'name' => 'EndTime', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间需大于起始时间,查询粒度≥5分钟且≤31天;日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2022-10-10T21:00:00Z', - ], + 'schema' => ['description' => '任务ID,根据任务ID模糊搜索。'."\n" + .'> 任务ID由大小写字母、数字、下划线、短划线(-)组成,最大55字符。', 'type' => 'string', 'required' => false, 'example' => '861009'], ], [ - 'name' => 'AppId', + 'name' => 'TaskName', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID,支持查询多个应用ID,多个ID用逗号(半角)分隔,最多可查询30个ID。默认返回所有应用合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => '4346289a-a790-4869-9e23-22766d5e****', - ], + 'schema' => ['description' => '任务名称,根据任务名称模糊搜索。', 'type' => 'string', 'required' => false, 'example' => 'task'], ], [ - 'name' => 'Area', + 'name' => 'DstUrl', 'in' => 'query', - 'schema' => [ - 'description' => '区域代号。支持:'."\n" - .'- CN:中国内地。'."\n" - .'- OverSeas:海外大区。'."\n" - .'- AP1:亚太1区,包含中国香港地区、中国澳门地区、中国台湾地区、日本以及东南亚除越南和印尼之外的国家。'."\n" - .'- AP2:亚太2区,包含印尼、韩国、越南。'."\n" - .'- AP3:亚太3区,包含澳大利亚、新西兰。'."\n" - .'- NA:北美,包含美国、加拿大。'."\n" - .'- SA:南美,特指巴西。'."\n" - .'- EU:欧洲,包含乌克兰、英国、法国、荷兰、西班牙、意大利、瑞典、德国。'."\n" - .'- MEAA:中东非洲,包含南非、阿曼、阿联酋、科威特。'."\n" - ."\n" - .'不传值时默认为所有区域数据聚合输出。', - 'type' => 'string', - 'required' => false, - 'example' => 'CN', - ], + 'schema' => ['description' => '目标推流地址,根据目标推流地址模糊搜索。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://qd'], ], [ - 'name' => 'Interval', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度。单位:秒。取值:'."\n" - ."\n" - .'- 300'."\n" - .'- 3600'."\n" - .'- 86400'."\n" - ."\n" - .'不传或传值不支持时,使用默认值3600秒。', - 'type' => 'string', - 'required' => false, - 'example' => '3600', - ], + 'schema' => ['description' => '页码。'."\n" + .'> 该参数取值大于 0 且不超过 Integer 数据类型的最大值,默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页可展示的记录数。'."\n" + .'> 默认值为 10,取值范围[1,100]。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '10', 'default' => '10'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回数据。', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '该条任务请求ID。', - 'type' => 'string', - 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB', - ], - 'StreamDetailData' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'StreamData' => [ - 'description' => '连麦用量数据明细。', - 'type' => 'array', - 'items' => [ - 'description' => '连麦用量数据明细。', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求id。', 'type' => 'string', 'example' => 'a05e6b15-15af-405b-a4a2-0152245*****'], + 'Total' => ['description' => '查询结果总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'PageNumber' => ['description' => '分页页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页的查询记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'TaskList' => [ + 'description' => '任务信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '任务信息列表', + 'type' => 'object', + 'properties' => [ + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****'], + 'TaskStatus' => ['description' => '任务当前状态:'."\n" + .'- 0:未启动(未到开始时间)。'."\n" + .'- 1:正常运行(拉流和转推正常)。'."\n" + .'- 2:异常运行。'."\n" + .'- 3:已停止(拉流或转推异常,也有可能是主动调用接口停止).'."\n" + .'- -1:已退出。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'TaskInvalidReason' => ['description' => '任务停止运行原因:'."\n" + ."\n" + .'- PullStreamFailed:源流拉流异常,重试中。'."\n" + .'- PushStreamFailed:目标流推流异常,重试中。'."\n" + .'- UnknownError:未知异常。'."\n" + ."\n" + .'> 仅停止运行状态下返回。', 'type' => 'string', 'example' => 'PullStreamFailed'], + 'TaskExitTime' => ['description' => '任务退出时间,Unix 秒级时间戳。'."\n" + .'> 仅已退出状态下返回。', 'type' => 'integer', 'format' => 'int32', 'example' => '1726354625'], + 'TaskExitReason' => ['description' => '任务退出原因:'."\n" + ."\n" + .'- TriggerByUser:用户主动结束。'."\n" + .'- OverEndTime:超过预设结束时间。'."\n" + ."\n" + .'> 仅已退出状态下返回。', 'type' => 'string', 'example' => 'TriggerByUser'], + 'CurrentOffset' => ['description' => '当前生效的视频播放偏移。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'CurrentFileIndex' => ['description' => '当前生效的节目单序列偏移。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'TaskInfo' => [ + 'description' => '任务信息。', 'type' => 'object', 'properties' => [ - 'AppId' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'example' => '4346289a-a790-4869-9e23-22766d5e****', - ], - 'Duration' => [ - 'description' => '连麦时长,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30', - ], - 'MediaProfile' => [ - 'description' => '媒体规格,取值:'."\n" - ."\n" - .'- 0:纯音频时长,基础规格。'."\n" - .'- 480P:标清时长,视频分辨率为640×480及以下。'."\n" - .'- 720P:高清时长,视频分辨率为1280×720及以下。'."\n" - .'- 1080P:全高清时长,视频分辨率为1920×1080及以下。', - 'type' => 'string', - 'example' => '480P', - ], - 'MediaType' => [ - 'description' => '媒体类型,取值:'."\n" - ."\n" - .'- audio:音频。'."\n" - .'- video:视频。', - 'type' => 'string', - 'example' => 'audio', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2022-12-10T20:00:00Z', - ], + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****'], + 'TaskName' => ['description' => '任务名称。', 'type' => 'string', 'example' => 'taskname'], + 'StartTime' => ['description' => '任务开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2024-12-04T09:16:00Z'], + 'EndTime' => ['description' => '任务结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2024-12-30T14:30:00Z'], + 'SourceType' => ['description' => '源流类型,枚举值:'."\n" + ."\n" + .'- live,直播流。'."\n" + .'- vod,阿里云视频点播资源。'."\n" + .'- url,第三方视频文件资源。', 'type' => 'string', 'example' => 'vod'], + 'SourceProtocol' => ['description' => '源流协议名。', 'type' => 'string', 'example' => 'flv'], + 'SourceUrls' => [ + 'description' => '源流URL地址。', + 'type' => 'array', + 'items' => ['description' => '源流URL地址。', 'type' => 'string', 'example' => 'rtmp://118.178.***.*5:****/wwtestlive1/pulltest.jiugong.aliyunlive.com_livelight2?vhost=pulltest.jiugong.aliyun*******'], + ], + 'DstUrl' => ['description' => '推流目标地址。', 'type' => 'string', 'example' => 'rtmp://qd.push.lgg.alivecdn.com/testhsc/streamhsc?live_rtmp_*******'], + 'CallbackURL' => ['description' => 'HTTP回调地址。', 'type' => 'string', 'example' => 'hahaha.com'], + 'Offset' => ['description' => '启动偏移,视频文件起始偏移值。单位:秒。取值:大于0。'."\n" + .'> - 表示从相对于首帧的偏差时间作为开始读取的位置。'."\n" + .'> - 仅对点播资源或视频文件有效。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'FileIndex' => ['description' => '文件索引,从第n个文件开始播放起。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'RetryCount' => ['description' => '重试次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'RetryInterval' => ['description' => '重试间隔,单位秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '60'], + 'RepeatNumber' => ['description' => '播放完后重复继续播放的次数。取值:'."\n" + .'- 0(默认值):不重复播放。'."\n" + .'- -1:一直循环重复。'."\n" + .'- 其他正整数:播放完后重复继续播放的次数。'."\n" + ."\n" + .'> 此参数仅针对点播或第三方视频流。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], ], ], ], @@ -30863,303 +24995,205 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified StartTime or EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidAreaParameter', - 'errorMessage' => 'The specified Area parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidAppIdParameter', - 'errorMessage' => 'The specified AppId parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidInstanceIdParameter', - 'errorMessage' => 'The specified InstanceId parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidTime.ValueNotSupported', - 'errorMessage' => 'Specified Time is malformed.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'LiveServiceNotFound', 'errorMessage' => 'Your account does not open Live service yet', 'description' => '您的账户尚未开通直播服务'], + ['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => '这个aluid没有直播域名'], + ['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => '任务不存在。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-910811DEBFEB\\",\\n \\"StreamDetailData\\": {\\n \\"StreamData\\": [\\n {\\n \\"AppId\\": \\"4346289a-a790-4869-9e23-22766d5e****\\",\\n \\"Duration\\": 30,\\n \\"MediaProfile\\": \\"480P\\",\\n \\"MediaType\\": \\"audio\\",\\n \\"TimeStamp\\": \\"2022-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n 2022-12-10T20:00:00Z\\n video\\n 720P\\n 423304182\\n \\n \\n 2022-12-10T21:00:00Z\\n video\\n 720P\\n 454680793\\n \\n \\n B955107D-E658-4E77-B913-E0AC3D31693E\\n","errorExample":""}]', - 'title' => '查询连麦通话时长用量数据', - 'description' => '- 最大查询跨度:31天。'."\n" - .'- 最小查询粒度:5分钟。'."\n" - .'- 最大查询范围:最近90天的数据。'."\n" + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"a05e6b15-15af-405b-a4a2-0152245*****\\",\\n \\"Total\\": 3,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TaskList\\": [\\n {\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\",\\n \\"TaskStatus\\": 0,\\n \\"TaskInvalidReason\\": \\"PullStreamFailed\\",\\n \\"TaskExitTime\\": 1726354625,\\n \\"TaskExitReason\\": \\"TriggerByUser\\",\\n \\"CurrentOffset\\": 0,\\n \\"CurrentFileIndex\\": 0,\\n \\"TaskInfo\\": {\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\",\\n \\"TaskName\\": \\"taskname\\",\\n \\"StartTime\\": \\"2024-12-04T09:16:00Z\\",\\n \\"EndTime\\": \\"2024-12-30T14:30:00Z\\",\\n \\"SourceType\\": \\"vod\\",\\n \\"SourceProtocol\\": \\"flv\\",\\n \\"SourceUrls\\": [\\n \\"rtmp://118.178.***.*5:****/wwtestlive1/pulltest.jiugong.aliyunlive.com_livelight2?vhost=pulltest.jiugong.aliyun*******\\"\\n ],\\n \\"DstUrl\\": \\"rtmp://qd.push.lgg.alivecdn.com/testhsc/streamhsc?live_rtmp_*******\\",\\n \\"CallbackURL\\": \\"hahaha.com\\",\\n \\"Offset\\": 0,\\n \\"FileIndex\\": 0,\\n \\"RetryCount\\": 3,\\n \\"RetryInterval\\": 60,\\n \\"RepeatNumber\\": 0\\n }\\n }\\n ]\\n}","type":"json"}]', + 'title' => '模糊查询拉转推任务', + 'description' => '- 调用本接口查询拉流转推任务列表。'."\n" + .'- 支持分页查询任务列表,支持以任务ID、任务名称和目标推流地址进行模糊搜索。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'extraInfo' => '### 特殊错误码'."\n" - .'|错误代码|描述|HTTP状态码|语义|'."\n" - .'|----|----|------|-----|'."\n" - .'|Throttling|Request was denied due to request throttling.|503|请求被流量控制限制。|'."\n" - .'|IllegalOperation|Illegal domain, operation is not permitted.|403|非法域名,无法操作。'."\n" - .'|OperationDenied|Your account does not open LIVE service yet.|403|未开通LIVE服务。|'."\n" - .'|OperationDenied|Your LIVE service is suspended.|403|LIVE服务已被停止。|'."\n" - .'|InvalidStartTime.Malformed|Specified StartTime is malformed.|400|参数错误。|'."\n" - .'|InvalidEndTime.Malformed|Specified EndTime is malformed.|400|时间格式错误。|'."\n" - .'|InvalidTime.Malformed|Specified StartTime or EndTime is malformed.|400|开始时间或结束时间格式错误。|'."\n" - .'|InvalidEndTime.Mismatch|Specified end time does not math the specified start time.|400|开始时间和结束时间不匹配。|'."\n" - .'|InvalidTimeSpan|The time span exceeds the limit.|400|查询跨度错误。|'."\n" - .'|InvalidAppIdParameter|The specified AppId parameter is invalid.|400|AppID参数错误。|'."\n" - .'|InvalidParameterInterval|Invalid Parameter Interval.|400|Interval参数错误。|', - ], - 'DescribeMeterLiveBypassDuration' => [ - 'summary' => 'DescribeMeterLiveBypassDuration', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2025-04-01T03:46:19.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLivePullToPushList'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePullToPushList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLivePushProxyLog' => [ + 'summary' => '通过DescribeLivePushProxyLog,获取直播转推离线日志下载地址。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElive066BXV'], ], 'parameters' => [ [ - 'name' => 'StartTime', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2022-10-10T20:00:00Z', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'EndTime', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间需大于起始时间,查询粒度≥5分钟且≤31天;日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2022-10-10T21:00:00Z', - ], + 'schema' => ['description' => '推流域名。不支持多域名查询。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'AppId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。您可在实时音视频[应用管理](~~2355593~~)页面查看。', - 'type' => 'string', - 'required' => true, - 'example' => '4346289a-a790-4869-9e23-22766d5e****', - ], + 'schema' => ['description' => '分页大小。取值范围:\\[1, 1000\\],默认值为300。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '300', 'default' => '300'], ], [ - 'name' => 'Interval', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度。单位:秒。取值:'."\n" - ."\n" - .'- 300'."\n" - .'- 3600'."\n" - .'- 86400'."\n" - ."\n" - .'不传或传值不支持时,使用默认值3600秒。', - 'type' => 'string', - 'required' => false, - 'example' => '86400', - ], + 'schema' => ['description' => '分页的页数,默认值为1。取值范围为[1,9223372036854775807]。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '2', 'default' => '1'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '获取日志起始时间。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2023-09-20T08:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取日志结束时间。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2023-09-20T09:00:00Z'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'AudioSummaryDuration' => [ - 'description' => '纯音频汇总时长,基础规格,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'Data' => [ - 'description' => '用量统计信息。', - 'type' => 'array', - 'items' => [ - 'description' => '用量统计信息。', - 'type' => 'object', - 'properties' => [ - 'AudioDuration' => [ - 'description' => '纯音频时长,基础规格,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'Single_Audio' => [ - 'description' => '单流转推-语音时长,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'Single_Video' => [ - 'description' => '单流转推-视频时长,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30', - ], - 'Timestamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2022-10-10T20:00:00Z', - ], - 'TotalDuration' => [ - 'description' => '全部时长,单位:分钟 。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '150', - ], - 'V480Duration' => [ - 'description' => '标清时长,视频分辨率为640×480及以下,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30', - ], - 'V720Duration' => [ - 'description' => '高清时长,视频分辨率为1280×720及以下,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '40', - ], - 'V1080Duration' => [ - 'description' => '全高清时长,视频分辨率为1920×1080及以下,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', + 'DomainLogDetails' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DomainLogDetail' => [ + 'description' => 'DomainLogDetail组成的数据。', + 'type' => 'array', + 'items' => [ + 'description' => 'DomainLogDetail组成的数据。', + 'type' => 'object', + 'properties' => [ + 'LogCount' => ['description' => '本页返回的总条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'LogInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LogInfoDetail' => [ + 'description' => 'LogInfoDetail组成的数据。'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'LogInfoDetail组成的数据。', + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => '结束时间。'."\n" + ."\n" + .'格式时间戳', 'type' => 'string', 'example' => '1695189600'], + 'LogName' => ['description' => '日志名称。', 'type' => 'string', 'example' => 'example.com'."\n" + .'_2023_09_20_160000_170000.****.gz'], + 'LogPath' => ['description' => '日志路径。'."\n", 'type' => 'string', 'example' => '****.aliyuncs.com/push_proxy/****/example.com/2023_09_20/1600/example.com'."\n" + .'_2023_09_20_160000_170000.****.gz'], + 'LogSize' => ['description' => '日志大小。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '512'], + 'StartTime' => ['description' => '起始时间。'."\n" + ."\n" + .'格式时间戳', 'type' => 'string', 'example' => '1695193200'], + ], + ], + ], + ], + 'description' => '', + ], + 'PageInfos' => [ + 'description' => 'PageInfoDetail组成的数据。', + 'type' => 'object', + 'properties' => [ + 'PageIndex' => ['description' => '返回数据的页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '分页大小。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'Total' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + ], + ], + ], ], ], ], + 'description' => '', ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '该条任务请求ID。', - 'type' => 'string', - 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB', - ], - 'SingleAudioSummaryDuration' => [ - 'description' => '单流转推-语音汇总时长,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'SingleVideoSummaryDuration' => [ - 'description' => '单流转推-视频汇总时长,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30', - ], - 'TotalSummaryDuration' => [ - 'description' => '汇总时长,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '150', - ], - 'V480SummaryDuration' => [ - 'description' => '标清汇总时长,视频分辨率为640×480及以下,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30', - ], - 'V720SummaryDuration' => [ - 'description' => '高清汇总时长,视频分辨率为1280×720及以下,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '40', - ], - 'V1080SummaryDuration' => [ - 'description' => '全高清汇总时长,视频分辨率为1920×1080及以下,单位:分钟。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], + 'DomainName' => ['description' => '推流域名。', 'type' => 'string', 'example' => 'example.com'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Meter.ParamError', - 'errorMessage' => 'Param Error:%s,Please Check Again.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Meter.AuthError', - 'errorMessage' => 'Authentication Failed,Please Try Again.', - ], - ], - 500 => [ - [ - 'errorCode' => 'Meter.ServerInternalError', - 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', - ], - [ - 'errorCode' => 'Meter.DataSourceQueryError', - 'errorMessage' => 'Data Source Error:%s,Please Try Again.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], + ['errorCode' => 'Invalid Parameter', 'errorMessage' => 'The specified Invalid Parameter', 'description' => ''], + ['errorCode' => 'Internal Error', 'errorMessage' => 'Internal Error contact admin', 'description' => ''], ], - 502 => [ - [ - 'errorCode' => 'Meter.ReadyTsError', - 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"AudioSummaryDuration\\": 20,\\n \\"Data\\": [\\n {\\n \\"AudioDuration\\": 20,\\n \\"Single_Audio\\": 20,\\n \\"Single_Video\\": 30,\\n \\"Timestamp\\": \\"2022-10-10T20:00:00Z\\",\\n \\"TotalDuration\\": 150,\\n \\"V480Duration\\": 30,\\n \\"V720Duration\\": 40,\\n \\"V1080Duration\\": 10\\n }\\n ],\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-910811DEBFEB\\",\\n \\"SingleAudioSummaryDuration\\": 20,\\n \\"SingleVideoSummaryDuration\\": 30,\\n \\"TotalSummaryDuration\\": 150,\\n \\"V480SummaryDuration\\": 30,\\n \\"V720SummaryDuration\\": 40,\\n \\"V1080SummaryDuration\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 93FAB4C8-42AD-5BB9-BE9B-0AA8C6C0CC2F\\n 30\\n 10\\n 40\\n 150\\n 20\\n \\n 20\\n 40\\n 10\\n 30\\n 2022-10-10T20:00:00Z\\n 150\\n 30\\n 20\\n \\n 20\\n 30\\n","errorExample":""}]', - 'title' => '查询混流转码用量数据', - 'description' => '## 使用说明'."\n" - .'- 最大查询跨度:31天。'."\n" - .'- 最小查询粒度:5分钟。'."\n" - .'- 最大查询范围:最近90天的数据。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainLogDetails\\": {\\n \\"DomainLogDetail\\": [\\n {\\n \\"LogCount\\": 10,\\n \\"LogInfos\\": {\\n \\"LogInfoDetail\\": [\\n {\\n \\"EndTime\\": \\"1695189600\\",\\n \\"LogName\\": \\"example.com\\\\n_2023_09_20_160000_170000.****.gz\\",\\n \\"LogPath\\": \\"****.aliyuncs.com/push_proxy/****/example.com/2023_09_20/1600/example.com\\\\n_2023_09_20_160000_170000.****.gz\\",\\n \\"LogSize\\": 512,\\n \\"StartTime\\": \\"1695193200\\"\\n }\\n ]\\n },\\n \\"PageInfos\\": {\\n \\"PageIndex\\": 1,\\n \\"PageSize\\": 20,\\n \\"Total\\": 20\\n }\\n }\\n ]\\n },\\n \\"DomainName\\": \\"example.com\\",\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n example.com\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n \\n 10\\n \\n 1695189600\\n 512\\n 1695193200\\n example.com\\n_2023_09_20_160000_170000.****.gz\\n ****.aliyuncs.com/push_proxy/****/example.com/2023_09_20/1600/example.com\\n_2023_09_20_160000_170000.****.gz\\n \\n \\n 1\\n 20\\n 20\\n \\n \\n","errorExample":""}]', + 'title' => '查询转推离线日志下载地址', + 'description' => '- 查询数据时间粒度:1小时。'."\n" + .'- 最大查询范围:最近31天的数据。'."\n" + .'- 如果不指定StartTime和EndTime,该接口默认读取过去24小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DescribeLiveDrmUsageData' => [ - 'summary' => '查询指定时间范围内DRM用量数据。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLivePushProxyLog'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePushProxyLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLivePushProxyUsageData' => [ + 'summary' => '调用DescribeLivePushProxyUsageData查询直播中心转推用量数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -31170,585 +25204,383 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'Region', 'in' => 'query', - 'schema' => [ - 'description' => '直播域名。'."\n" - .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" - .'- 若参数为空,默认返回所有直播域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '查询不同直播中心, 支持批量地区查询,多个地区用逗号(半角)分隔。取值:'."\n" + .'- cn-beijing:北京'."\n" + .'- cn-shanghai:上海'."\n" + .'- cn-shenzhen:深圳'."\n" + .'- cn-qingdao:青岛'."\n" + .'- ap-southeast-1:新加坡'."\n" + .'- eu-central-1:德国'."\n" + .'- ap-northeast-1:东京'."\n" + .'- ap-southeast-5:雅加达'."\n" + ."\n" + .'若参数为空,默认返回所有Region合并后数据。', 'type' => 'string', 'required' => false, 'example' => 'cn-beijing'], ], [ - 'name' => 'StartTime', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。最小数据粒度为5分钟', - 'type' => 'string', - 'required' => true, - 'example' => '2021-05-01T16:00:00Z', - ], + 'schema' => ['description' => '需要查询的主播流域名。'."\n" + .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + .'- 若参数为空,默认返回所有直播域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'EndTime', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间需大于起始时间,获日期格式按照ISO8601表示法,并使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ', - 'type' => 'string', - 'required' => true, - 'example' => '2021-05-02T16:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ,默认返回近七天的数据。', 'type' => 'string', 'required' => false, 'example' => '2022-10-10T20:00:00Z'], ], [ - 'name' => 'Interval', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度。单位:秒。取值:'."\n" - .'- 300'."\n" - .'- 3600'."\n" - .'- 86400'."\n" - ."\n" - .'不传或传值不支持时,使用默认值3600秒。', - 'type' => 'string', - 'required' => false, - 'example' => '3600', - 'default' => '3600', - 'enum' => [ - '300', - '3600', - '86400', - ], - ], + 'schema' => ['description' => '结束时间需大于起始时间,日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2022-10-10T21:00:00Z'], ], [ 'name' => 'SplitBy', 'in' => 'query', - 'schema' => [ - 'description' => '分组键。默认为domain,region,drm_type。可选值为domain、region、drm_type 中的一个或多个,多个使用逗号(半角)分隔。置为空或null即不区分上述键。', - 'type' => 'string', - 'required' => false, - 'example' => 'domain,region,drm_type', - ], + 'schema' => ['description' => '分组键,若参数为空,默认为region,按照聚合后数据输出。多个使用逗号(半角)分隔,取值:'."\n" + .'- domain:域名。如果此参数SplitBy(分组键)取值为domain时,返回参数Domain才生效。'."\n" + .'- region(默认值):直播中心地域。如果此参数SplitBy(分组键)取值为region时,返回参数Region才生效。', 'type' => 'string', 'required' => false, 'example' => 'region', 'default' => 'region'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'DrmUsageData' => [ + 'EndTime' => ['description' => '结束时间。日期格式按照 ISO8601 表示法,并使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2022-10-10T21:00:00Z'], + 'PushProxyData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的DRM用量数据。', + 'PushProxyDataItem' => [ + 'description' => '直播中心转推用量数据。', 'type' => 'array', 'items' => [ - 'description' => '每个时间间隔的DRM用量数据。', + 'description' => '直播中心转推用量数据。', 'type' => 'object', 'properties' => [ - 'Count' => [ - 'description' => '调用次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'Domain' => [ - 'description' => '用量域名,SplitBy指定domain时,分组输出。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DrmType' => [ - 'description' => 'DRM类型,SplitBy指定drm_type时,分组输出。', - 'type' => 'string', - 'example' => 'Widevine', - ], - 'Region' => [ - 'description' => '直播中心,SplitBy指定region时,分组输出。', - 'type' => 'string', - 'example' => 'cn-beijing', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2021-05-01T16:00:00Z', - ], + 'DomainName' => ['description' => '用量域名,SplitBy指定domain时,分组输出。', 'type' => 'string', 'example' => 'example.com'], + 'Region' => ['description' => '直播中心,SplitBy指定region时,分组输出。', 'type' => 'string', 'example' => 'cn-beijing'], + 'StreamCount' => ['description' => '直播中心转推峰值路数,单位:路。', 'type' => 'integer', 'format' => 'int64', 'example' => '8'], + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2022-10-10T20:00:00Z'], ], ], ], ], + 'description' => '', ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '91FC2D9D-B042-4634-8A5C-7B8E7482C22D', - ], + 'RequestId' => ['description' => '该条任务请求ID。', 'type' => 'string', 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB'], + 'StartTime' => ['description' => '起始时间。日期格式按照 ISO8601 表示法,并使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2022-10-10T20:00:00Z'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'Specified Time is malformed.', 'description' => '指定的时间无效。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DrmUsageData\\": {\\n \\"DataModule\\": [\\n {\\n \\"Count\\": 1,\\n \\"Domain\\": \\"example.com\\",\\n \\"DrmType\\": \\"Widevine\\",\\n \\"Region\\": \\"cn-beijing\\",\\n \\"TimeStamp\\": \\"2021-05-01T16:00:00Z\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"91FC2D9D-B042-4634-8A5C-7B8E7482C22D\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 1\\n example.com\\n Widevine\\n cn-beijing\\n 2021-05-01T16:00:00Z\\n \\n 91FC2D9D-B042-4634-8A5C-7B8E7482C22D\\n","errorExample":""}]', - 'title' => '获取直播DRM用量数据', - 'description' => '### 使用说明'."\n" - .'- 最多可获取最近90天的数据。'."\n" - .'- 最大允许时间跨度31天。'."\n" - .'### QPS限制'."\n" - .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DescribeLiveRtcRecordUsageData' => [ - 'summary' => '云端录制用量查询。', - 'path' => '', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2022-10-10T21:00:00Z\\",\\n \\"PushProxyData\\": {\\n \\"PushProxyDataItem\\": [\\n {\\n \\"DomainName\\": \\"example.com\\",\\n \\"Region\\": \\"cn-beijing\\",\\n \\"StreamCount\\": 8,\\n \\"TimeStamp\\": \\"2022-10-10T20:00:00Z\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-910811DEBFEB\\",\\n \\"StartTime\\": \\"2022-10-10T20:00:00Z\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C370DAF1-C838-4288-A1A0-9A87633D248E\\n 2018-09-30T16:00:00Z\\n 2018-10-31T15:59:59Z\\n \\n \\n example.com\\n 6777\\n 2018-09-30T00:00:00Z\\n \\n \\n example.com\\n 6777\\n 2018-09-30T00:00:00Z\\n \\n \\n example.com\\n 6777\\n 2018-10-01T00:00:00Z\\n \\n \\n example.com\\n 6777\\n 2018-10-01T00:00:00Z\\n \\n \\n","errorExample":""}]', + 'title' => '查询直播中心转推用量数据', + 'description' => '- 查询直播中心转推用量数据。'."\n" + .'- 最大查询跨度:31天。'."\n" + .'- 最小查询粒度:1天。'."\n" + .'- 最大查询范围:最近90天的数据'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePushProxyUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveRealtimeDeliveryAcc' => [ + 'summary' => '调用DescribeLiveRealtimeDeliveryAcc查询实时日志投递次数。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeNodes' => ['FEATURElive066BXV'], ], 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-12-21T08:00:00Z', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。查询粒度≥5 分钟且≤31 天。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2022-10-10T21:00:00Z', - ], + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'结束时间需大于起始时间。起止时间和结束时间,间隔不超过一年。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T21:05:00Z'], ], [ - 'name' => 'AppId', + 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '实时音视频应用 ID。可在[实时音视频应用管理](~~2355593~~)中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'intl7f92-a5a8*************7ce4eb44a6', - ], + 'schema' => ['description' => '查询数据的时间粒度。单位:秒(s)。取值:'."\n" + ."\n" + .'- **300**。'."\n" + .'- **3600**。'."\n" + .'- **86400**。'."\n" + ."\n" + .'不传或传的值不支持,且时间跨度不超过3天时,默认值300秒。超过3天默认值3600秒。超过30天默认值86400秒。', 'type' => 'string', 'required' => false, 'example' => '3600'], ], [ - 'name' => 'RecordMode', + 'name' => 'Project', 'in' => 'query', - 'schema' => [ - 'description' => '录制模式:'."\n" - ."\n" - .'- 0:单流录制模式。'."\n" - ."\n" - .'- 1:混流录制模式。', - 'type' => 'string', - 'required' => true, - 'example' => '0', - ], + 'schema' => ['description' => '实时日志投递的Project。若参数为空,默认返回所有Project合并后数据。', 'type' => 'string', 'required' => false, 'example' => 'project_example'], ], [ - 'name' => 'Interval', + 'name' => 'LogStore', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度。单位:秒。取值:'."\n" - ."\n" - .'- 3600(默认)。'."\n" - ."\n" - .'- 86400。', - 'type' => 'string', - 'required' => false, - 'example' => '3600', - ], + 'schema' => ['description' => '实时日志投递的Logstore。若参数为空,默认返回所有Logstore合并后数据。', 'type' => 'string', 'required' => false, 'example' => 'logstore_example'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '播流域名。'."\n" + .'- 支持单个或批量域名查询。批量查询时多个域名用英文逗号(,)分隔。'."\n" + .'- 若参数为空,默认返回所有直播域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'Id of the request', - 'type' => 'string', - 'example' => '16A96B9A-F2*************B92E68F4CD8', - ], - 'RecordMode' => [ - 'description' => '录制模式。'."\n" - ."\n" - .'- 0:单流录制模式。'."\n" - ."\n" - .'- 1:混流录制模式。', - 'type' => 'string', - 'example' => '0', - ], - 'AppId' => [ - 'description' => '需要查询的实时音视频应用ID。', - 'type' => 'string', - 'example' => '7fd341b3-c6fa-43e1-96b8-7295a1dd****', - ], - 'TotalSummaryDuration' => [ - 'description' => '汇总时长,单位:秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '150', - ], - 'AudioSummaryDuration' => [ - 'description' => '纯音频汇总时长,单位:秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '20', - ], - 'V480SummaryDuration' => [ - 'description' => '480P及以下视频汇总时长,单位:秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '30', - ], - 'V720SummaryDuration' => [ - 'description' => '720P及以下视频汇总时长,单位:秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '40', - ], - 'V1080SummaryDuration' => [ - 'description' => '720P以上(含1080P)视频汇总时长,单位:秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10', - ], - 'Data' => [ - 'description' => '用量统计信息。', - 'type' => 'array', - 'items' => [ - 'description' => '用量统计信息。', - 'type' => 'object', - 'properties' => [ - 'Timestamp' => [ - 'description' => '数据统计时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', - 'type' => 'string', - 'example' => '2022-10-10T20:00:00Z', - ], - 'TotalDuration' => [ - 'description' => '全部时长,单位:秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '150', - ], - 'AudioDuration' => [ - 'description' => '纯音频时长,单位:秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '20', - ], - 'V480Duration' => [ - 'description' => '480P及以下视频时长,单位:秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '30', - ], - 'V720Duration' => [ - 'description' => '720P及以下视频时长,单位:秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '40', - ], - 'V1080Duration' => [ - 'description' => '720P以上视频时长,单位:秒。', - 'type' => 'number', - 'format' => 'double', - 'example' => '10', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '684306D2-2511-4977-991D-CE97E91FD7C0'], + 'RealTimeDeliveryAccData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AccData' => [ + 'description' => '实时日志投递次数信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + 'FailedNum' => ['description' => '实时日志投递失败次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'SuccessNum' => ['description' => '实时日志投递成功次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '321321'], + ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', - ], - [ - 'errorCode' => 'InvalidRecordModeParameter', - 'errorMessage' => 'RecordMode parameter error.', - ], - [ - 'errorCode' => 'InvalidAppIdParameter', - 'errorMessage' => 'AppId parameter error.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F2*************B92E68F4CD8\\",\\n \\"RecordMode\\": \\"0\\",\\n \\"AppId\\": \\"7fd341b3-c6fa-43e1-96b8-7295a1dd****\\",\\n \\"TotalSummaryDuration\\": 150,\\n \\"AudioSummaryDuration\\": 20,\\n \\"V480SummaryDuration\\": 30,\\n \\"V720SummaryDuration\\": 40,\\n \\"V1080SummaryDuration\\": 10,\\n \\"Data\\": [\\n {\\n \\"Timestamp\\": \\"2022-10-10T20:00:00Z\\",\\n \\"TotalDuration\\": 150,\\n \\"AudioDuration\\": 20,\\n \\"V480Duration\\": 30,\\n \\"V720Duration\\": 40,\\n \\"V1080Duration\\": 10\\n }\\n ]\\n}","type":"json"}]', - 'title' => '查询实时音视频云端录制用量', - 'description' => '- 统计每日云端录制各规格下的录制时长。'."\n" - ."\n" - .'- 支持到实时音视频应用粒度查询。'."\n" - ."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"684306D2-2511-4977-991D-CE97E91FD7C0\\",\\n \\"RealTimeDeliveryAccData\\": {\\n \\"AccData\\": [\\n {\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\",\\n \\"FailedNum\\": 0,\\n \\"SuccessNum\\": 321321\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 684306D2-2511-4977-991D-CE97E91FD7C0\\n \\n 2015-12-10T20:00:00Z\\n 0\\n 321321\\n \\n","errorExample":""}]', + 'title' => '查询实时日志投递次数', + 'description' => '- 可以统计实时日志投递次数信息。统计实时日志投递失败次数和实时日志投递成功次数。'."\n" + .'- 支持UID维度查询。'."\n" + .'- 收费次数包含投递成功和失败的全部次数。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'CreateCaster' => [ - 'summary' => '调用CreateCaster创建导播台。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '### 特殊错误码'."\n" + .'|错误代码|描述|HTTP 状态码|语义|'."\n" + .'|--------|--------|--------|--------|'."\n" + .'|InvalidStartTime.ValueNotSupported|The specified value of parameter StartTime is not supported.|400|EndTime和StartTime差值超过90天。|'."\n" + .'|InvalidEndTime.Mismatch|Specified EndTime does not math the specified StartTime.|400|EndTime小于StartTime|', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveRealtimeDeliveryAcc'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRealtimeDeliveryAcc', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveRealtimeLogAuthorized' => [ + 'summary' => '查询用户实时日志投递授权状态。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '106890', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElive066BXV'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-beijing', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterName', + 'name' => 'LiveOpenapiReserve', 'in' => 'query', + 'schema' => ['description' => '该参数暂无实际意义。', 'type' => 'string', 'required' => false, 'example' => '无'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '导播台名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveCaster****', + 'type' => 'object', + 'properties' => [ + 'AuthorizedStatus' => ['description' => '授权状态。-**true**:已授权。-**false**:未授权。', 'type' => 'string', 'example' => 'true'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b******'."\n"], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'title' => '查询用户实时日志投递授权状态', + 'description' => '调用本接口查询用户实时日志投递授权状态'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveRealtimeLogAuthorized'], + ], + ], + 'ramActions' => [ [ - 'name' => 'ClientToken', - 'in' => 'query', - 'schema' => [ - 'description' => '用户生成的请求token。用于保证请求的幂等性。'."\n" - ."\n" - .'该参数值可自定义,但是要保证在不同请求间唯一,最大值不超过64个ASCII字符。', - 'type' => 'string', - 'required' => true, - 'example' => '53200b81-b761-4c10-842a-a0726d97****', - 'maxLength' => 64, - 'minLength' => 0, + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRealtimeLogAuthorized', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AuthorizedStatus\\": \\"true\\",\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b******\\\\n\\"\\n}","type":"json"}]', + ], + 'DescribeLiveRecordConfig' => [ + 'summary' => '查询直播域名下所有APP录制配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'NormType', - 'in' => 'query', - 'schema' => [ - 'description' => '导播台规格类型。取值:'."\n" - ."\n" - .''."\n" - ."\n" - .'- **1**:通用型。'."\n" - ."\n" - .'- **3**:轻量级轮播型。'."\n" - ."\n" - .'- **4**:虚拟演播厅型。'."\n" - ."\n" - .'- **6**:轮播台(新播单型导播台)。'."\n" - ."\n" - .''."\n" - ."\n" - .''."\n" - ."\n" - .'- **1**:通用型。'."\n" - ."\n" - .'- **6**:轮播台(新播单型导播台)。'."\n" - ."\n" - .'', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveL04ZVK'], + ], + 'parameters' => [ [ - 'name' => 'ChargeType', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '付费方式。 目前只支持**PostPaid**。取值:'."\n" - ."\n" - .'- **PrePaid**:预付费(暂不支持)。'."\n" - .'- **PostPaid**:后付费。', - 'type' => 'string', - 'required' => true, - 'example' => 'PostPaid', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'PurchaseTime', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台购买时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> 当**ChargeType**为**PrePaid**时,此参数才可设置。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-08-20T12:10:10Z', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ - 'name' => 'ExpireTime', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台过期时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'> 当**ChargeType**为**PrePaid**时,此参数才可设置。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-08-22T12:10:10Z', - ], + 'schema' => ['description' => '播流名称。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], ], [ - 'name' => 'CasterTemplate', + 'name' => 'PageNum', 'in' => 'query', - 'schema' => [ - 'description' => '导播台预设分辨率。采用预付费方式时,取值:'."\n" - ."\n" - .'- **lp_ld**:流畅。'."\n" - .'- **lp_sd**:标清。'."\n" - .'- **lp_hd**:高清。'."\n" - .'- **lp_ud**:超清。'."\n" - .'- **lp_ld_v**:竖屏流畅。'."\n" - .'- **lp_sd_v**:竖屏标清。'."\n" - .'- **lp_hd_v**:竖屏高清。'."\n" - .'- **lp_ud_v**:竖屏超清。'."\n" - ."\n" - .'>后付费场景下,需要设置分辨率,请调用[SetCasterConfig](~~60271~~)接口进行操作。', - 'type' => 'string', - 'required' => false, - 'example' => 'lp_sd', - ], + 'schema' => ['description' => '当前页码。默认值:**1**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。关于资源组的更多信息,请参见[什么是资源组](~~2381067~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-aekzw******', - ], + 'schema' => ['description' => '每页大小。默认值:**10**,取值范围:**5~30**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '5', 'example' => '5', 'default' => '10'], ], [ - 'name' => 'Tag', + 'name' => 'Order', 'in' => 'query', - 'style' => 'repeatList', 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签列表。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签健。', - 'type' => 'string', - 'required' => false, - 'example' => 'TestKey', - ], - 'Value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'required' => false, - 'example' => 'TestValue', - ], - ], - 'required' => false, - ], + 'description' => '按创建时间排序。取值:'."\n" + .'- **asc**(默认值):升序。'."\n" + .'- **desc**:降序。', + 'type' => 'string', 'required' => false, - 'maxItems' => 100, + 'enumValueTitles' => ['asc' => '升序', 'desc' => '降序'], + 'example' => 'asc', + 'default' => 'asc', + 'enum' => ['asc', 'desc'], ], ], ], @@ -31757,394 +25589,438 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。可作为查询导播台流地址、启动导播台、添加导播台视频资源、添加导播台布局、查询导播台布局列表、添加导播台组件和添加导播台节目单的请求参数。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + 'PageNum' => ['description' => '分页的页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A'], + 'Order' => ['description' => '排序。', 'type' => 'string', 'example' => 'desc'], + 'TotalPage' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'PageSize' => ['description' => '每页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'TotalNum' => ['description' => '符合条件的总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '12'], + 'LiveAppRecordList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveAppRecord' => [ + 'description' => '录制配置列表。', + 'type' => 'array', + 'items' => [ + 'description' => '录制配置列表。', + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => '计划录制结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2018-11-08T03:49:18Z'], + 'StartTime' => ['description' => '计划录制开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2018-11-08T02:49:18Z'], + 'AppName' => ['description' => '播流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'StreamName' => ['description' => '直播流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'DelayTime' => ['description' => '断流拼接时长。'."\n" + .'直播断流时长超过设定的拼接时长后,将会生成新文件,断流拼接时长支持15~21600秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '180'], + 'CreateTime' => ['description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2016-05-20T09:33:38Z'], + 'OnDemond' => ['description' => '按需录制。取值:'."\n" + ."\n" + .'- **0**:关闭。'."\n" + .'- **1**:通过HTTP回调方式。'."\n" + .'- **2**:通过推流参数方式。'."\n" + .'- **7**:默认不录制,可以通过[RealTimeRecordCommand](~~85907~~)接口手动控制录制开启或停止。'."\n" + ."\n" + .'>当OnDemand取值为**1**时,需要先通过[AddLiveRecordNotifyConfig](~~51831~~)接口配置OnDemandUrl,否则默认不录制。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'OssBucket' => ['description' => 'OSS存储Bucket名称。', 'type' => 'string', 'example' => 'liveBucket****'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'OssEndpoint' => ['description' => 'OSS存储的Endpoint名称。', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com'], + 'RecordFormatList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RecordFormat' => [ + 'description' => '格式列表。', + 'type' => 'array', + 'items' => [ + 'description' => '格式列表。', + 'type' => 'object', + 'properties' => [ + 'SliceDuration' => ['description' => '转码流录制单个切片时长。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], + 'CycleDuration' => ['description' => '周期录制时间。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '3600'], + 'SliceOssObjectPrefix' => ['description' => '切片名称。', 'type' => 'string', 'example' => 'record/{liveApp****}/{liveStream****}/{UnixTimestamp}'], + 'OssObjectPrefix' => ['description' => '录制文件名称。', 'type' => 'string', 'example' => 'record/{liveApp****}/{liveStream****}'], + 'Format' => ['description' => '格式。', 'type' => 'string', 'example' => 'M3U8'], + ], + ], + ], + ], + 'description' => '', + ], + 'TranscodeRecordFormatList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RecordFormat' => [ + 'description' => '转码流录制格式列表。', + 'type' => 'array', + 'items' => [ + 'description' => '录制配置文件格式列表。', + 'type' => 'object', + 'properties' => [ + 'SliceDuration' => ['description' => '转码流录制单个切片时长。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], + 'CycleDuration' => ['description' => '周期录制时间。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '3600'], + 'SliceOssObjectPrefix' => ['description' => '转码流录制切片名称。', 'type' => 'string', 'example' => 'record/{liveApp****}/{liveStream****}/{UnixTimestamp}'], + 'OssObjectPrefix' => ['description' => '转码流录制文件名称。', 'type' => 'string', 'example' => 'record/{liveApp****}/{liveStream****}'], + 'Format' => ['description' => '转码流录制格式。', 'type' => 'string', 'example' => 'M3U8'], + ], + ], + ], + ], + 'description' => '', + ], + 'TranscodeTemplates' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Templates' => [ + 'description' => '转码模板。', + 'type' => 'array', + 'items' => ['description' => '转码流录制的转码模板。设置了录制所有转码流,则返回为\\["*"]。', 'type' => 'string', 'example' => '["sd","hd"]'], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter.PurchaseTime', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.ExpireTime', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidChargeType.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidChargeType.PostSupport', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidCasterTemplate.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.ChargeType', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidPeriod.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidClientToken.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectCasterStatus', - 'errorMessage' => '%s', - ], - ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 5,\\n \\"RequestId\\": \\"5056369B-D337-499E-B8B7-B761BD37B08A\\",\\n \\"Order\\": \\"desc\\",\\n \\"TotalPage\\": 20,\\n \\"PageSize\\": 10,\\n \\"TotalNum\\": 12,\\n \\"LiveAppRecordList\\": {\\n \\"LiveAppRecord\\": [\\n {\\n \\"EndTime\\": \\"2018-11-08T03:49:18Z\\",\\n \\"StartTime\\": \\"2018-11-08T02:49:18Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"DelayTime\\": 180,\\n \\"CreateTime\\": \\"2016-05-20T09:33:38Z\\",\\n \\"OnDemond\\": 0,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"RecordFormatList\\": {\\n \\"RecordFormat\\": [\\n {\\n \\"SliceDuration\\": 30,\\n \\"CycleDuration\\": 3600,\\n \\"SliceOssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}/{UnixTimestamp}\\",\\n \\"OssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}\\",\\n \\"Format\\": \\"M3U8\\"\\n }\\n ]\\n },\\n \\"TranscodeRecordFormatList\\": {\\n \\"RecordFormat\\": [\\n {\\n \\"SliceDuration\\": 30,\\n \\"CycleDuration\\": 3600,\\n \\"SliceOssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}/{UnixTimestamp}\\",\\n \\"OssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}\\",\\n \\"Format\\": \\"M3U8\\"\\n }\\n ]\\n },\\n \\"TranscodeTemplates\\": {\\n \\"Templates\\": [\\n \\"[\\\\\\"sd\\\\\\",\\\\\\"hd\\\\\\"]\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\ndesc\\n12\\n20\\n10\\n5\\n5056369B-D337-499E-B8B7-B761BD37B08A\\n\\n \\n liveStream****\\n 2018-11-08T03:49:18Z\\n cn-oss-****.aliyuncs.com\\n example.com\\n 2016-05-20T09:33:38Z\\n 2018-11-08T02:49:18Z\\n liveBucket****\\n 0\\n liveApp****\\n \\n \\n M3U8\\n record/{liveApp****}/{liveStream****}/{UnixTimestamp}\\n 3600\\n 30\\n record/{liveApp****}/{liveStream****}\\n \\n \\n \\n \\n M3U8\\n record/{liveApp****}/{liveStream****}/{UnixTimestamp}\\n 3600\\n 30\\n record/{liveApp****}/{liveStream****}\\n \\n \\n \\n [\\"sd\\",\\"hd\\"]\\n \\n \\n\\n","errorExample":"{\\n \\"LiveAppRecordList\\":{\\n \\"LiveAppRecord\\":[{\\n \\"AppName\\":\\"aliyuntest\\",\\n \\"CreateTime\\":\\"2016-05-20T09:33:38Z\\",\\n \\"DomainName\\":\\"xxxxx\\",\\n \\"FormatList\\":{\\n \\"Format\\":[{\\n \\"Name\\":\\"m3u8\\",\\n \\"OssObjectPrefix\\":\\"xxx\\",\\n \\"SliceOssObjectPrefix\\":\\"xxx\\"\\n }]\\n },\\n \\"OssBucket\\":\\"chimang.bucket\\",\\n \\"OssEndpoint\\":\\"oss-cn-hangzhou.aliyuncs.com\\"\\n }]\\n },\\n \\"RequestId\\":\\"5056369B-D337-499E-B8B7-B761BD37B08A\\"\\n}"}]', + 'title' => '查询域名下所有App录制配置', + 'description' => '先获取主播流域名,再调用本接口查询直播域名下所有APP录制配置。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'CasterNumberExceed', - 'errorMessage' => '%s', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRecordConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 403 => [ - [ - 'errorCode' => 'PermissionDenied', - 'errorMessage' => '%s', - ], + ], + ], + 'DescribeLiveRecordNotifyConfig' => [ + 'summary' => '查询域名级别录制回调配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ [ - [ - 'errorCode' => 'InvalidParameter.NormType', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidConfiguration.NotFound', - 'errorMessage' => '%s', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], - 408 => [ - [ - 'errorCode' => 'CreateCaster.Timeout', - 'errorMessage' => '%s', + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A'], + 'LiveRecordNotifyConfig' => [ + 'description' => '域名录制回调配置。', + 'type' => 'object', + 'properties' => [ + 'NotifyReqAuth' => ['description' => '回调鉴权开关。取值:'."\n" + ."\n" + .'- **yes**:开启。'."\n" + ."\n" + .'- **no**:关闭。', 'type' => 'boolean', 'example' => 'no'], + 'NotifyAuthKey' => ['description' => '回调鉴权密钥。', 'type' => 'string', 'example' => 'KbT8mN2pQ9rS4vX7wZ1aB3cE5fG6hJ8kL'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'NotifyUrl' => ['description' => '录制回调地址。', 'type' => 'string', 'example' => 'http://learn.aliyundoc.com/examplecallback.action'], + 'NeedStatusNotify' => ['description' => '是否需要录制任务状态回调。取值:'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**(默认值):否。', 'type' => 'boolean', 'example' => 'false'], + 'OnDemandUrl' => ['description' => '按需录制回调URL地址。', 'type' => 'string', 'example' => 'http://guide.aliyundoc.com/ondemandcallback.action'], + ], + ], + ], + 'description' => '', ], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'errorCodes' => [ + 404 => [ + ['errorCode' => 'InvalidConfig.NotFound', 'errorMessage' => 'Config does not exist.', 'description' => ''], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\na2b8e671-2fe5-4642-a2ec-bf93880e1****\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e1a49\\"\\n}\\n"}]', - 'title' => '创建导播台', - 'description' => '您已开通云导播服务再调用本接口创建导播台。开通指引,请参见[开通服务](~~60361~~)。'."\n" - .'本接口目前支持的导播台规格类型为通用型、轻量级轮播型、虚拟演播厅型和新播单型(轮播台)。'."\n" - .'本接口目前支持的导播台规格类型为通用型和新播单型(轮播台)。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5056369B-D337-499E-B8B7-B761BD37B08A\\",\\n \\"LiveRecordNotifyConfig\\": {\\n \\"NotifyReqAuth\\": true,\\n \\"NotifyAuthKey\\": \\"KbT8mN2pQ9rS4vX7wZ1aB3cE5fG6hJ8kL\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"NotifyUrl\\": \\"http://learn.aliyundoc.com/examplecallback.action\\",\\n \\"NeedStatusNotify\\": false,\\n \\"OnDemandUrl\\": \\"http://guide.aliyundoc.com/ondemandcallback.action\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n5056369B-D337-499E-B8B7-B761BD37B08A\\n\\n false\\n http://guide.aliyundoc.com/ondemandcallback.action\\n example.com\\n http://learn.aliyundoc.com/examplecallback.action\\n\\n","errorExample":"{\\n \\"LiveRecordNotifyConfig\\":{\\n \\"DomainName\\":\\"xxxx\\",\\n \\"NeedStatusNotify\\":false,\\n \\"NotifyUrl\\":\\"http://xxx\\"\\n },\\n \\"RequestId\\":\\"5056369B-D337-499E-B8B7-B761BD37B08A\\"\\n}"}]', + 'title' => '查询域名级别录制回调配置', + 'description' => '先获取主播流域名,再调用本接口查询域名级别录制回调配置。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SetCasterConfig' => [ - 'summary' => '调用本接口对导播台进行详细配置,包括导播台的名称、转码配置、录制配置等参数信息。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveRecordNotifyConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRecordNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveRecordNotifyRecords' => [ + 'summary' => '查询直播录制存储至OSS的回调记录。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107215', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveL04ZVK'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster](~~2848009~~)接口创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'CasterName', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveCaster****', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ - 'name' => 'DomainName', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。'."\n" - ."\n" - .'请您在导播台启动前完成域名配置。 若该参数为空,默认清除导播台域名配置。 ', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流名称。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], ], [ - 'name' => 'TranscodeConfig', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '转码配置。 '."\n" - ."\n" - .'JSON格式字符串,结构体内部字段请按首字母大写,驼峰格式输入。 若该参数设置为空,默认清除转码配置, 当转码模板为空的时候,导播台启动时会报错。', - 'type' => 'string', - 'required' => false, - 'example' => '{"casterTemplate": "lp_ld"}', - ], + 'schema' => ['description' => '每页大小。默认20,最大500,取值:1~500之前的任意整数。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '10'], ], [ - 'name' => 'RecordConfig', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '录制配置信息。格式为JSON。配置元素信息如下:'."\n" - ."\n" - .'- **endpoint**:阿里云服务的API服务端地址。'."\n" - .'- **ossBucket**:ossBucket名称。'."\n" - .'- **videoFormat**:支持导出的视频文件格式,例如:`[{\\"OssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{StartTime}_{EndTime}\\",\\"Format\\":\\"m3u8\\",\\"CycleDuration\\":21600,\\"SliceOssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{UnixTimestamp}\\"},{\\"OssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{StartTime}_{EndTime}\\",\\"Format\\":\\"flv\\",\\"CycleDuration\\":21600}]`。'."\n" - .'- **interval**:时间间隔,单位为毫秒(ms)。'."\n" - ."\n" - .'>参数设置为空时表示不启用录制功能。 若该参数置为空,默认清除录制配置。 ', - 'type' => 'string', - 'required' => false, - 'example' => '{ "endpoint": "http://oss-cn-********.aliyuncs.com/api", "ossBucket****": "liveBucket****", "VideoFormat":[{\\"OssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{StartTime}_{EndTime}\\",\\"Format\\":\\"m3u8\\",\\"CycleDuration\\":21600,\\"SliceOssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{UnixTimestamp}\\"},{\\"OssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{StartTime}_{EndTime}\\",\\"Format\\":\\"flv\\",\\"CycleDuration\\":21600}] "interval": 5 }', - ], + 'schema' => ['description' => '当前页码。默认值为1。取值范围为:1~100000。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1'], ], [ - 'name' => 'Delay', + 'name' => 'Status', 'in' => 'query', - 'schema' => [ - 'description' => '延时播放。时间单位:秒。'."\n" - ."\n" - .'- **0**(默认值):禁用延时。'."\n" - .'- 大于**0**:启用延时。'."\n" - .'- **空**:默认清除延播配置。'."\n" - .'> 最大可支持设置300秒。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => '回调是否成功。'."\n" + .'- success:成功。'."\n" + .'- failed:失败。', 'type' => 'string', 'required' => false, 'example' => 'success'], ], [ - 'name' => 'UrgentMaterialId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '备播视频,媒资库素材ID。若该参数置为空,默认清除备播配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'a2b8e671', - ], + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> 支持查询最近7天内的数据。', 'type' => 'string', 'required' => true, 'example' => '2023-02-10T21:03:47Z'], ], [ - 'name' => 'UrgentLiveStreamUrl', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '备播直播流URL。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://demo.aliyundoc.com', - ], + 'schema' => ['description' => '结束时间。结束时间需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2023-02-10T21:03:47Z'], ], [ - 'name' => 'SideOutputUrl', + 'name' => 'StorageType', 'in' => 'query', 'schema' => [ - 'description' => '用户自定义导播台旁路输出地址对应的推流地址。 '."\n" - .'若该参数为空,则默认使用阿里云自动生成的输出地址对应的推流地址。'."\n" - .'> 目前sideoutputUrl只支持rtmp协议推流。', + 'description' => '查询对应录制储存方式的回调记录。'."\n" + ."\n" + .'- oss: 录制到oss'."\n" + ."\n" + .'- vod: 录制到vod'."\n" + ."\n" + .'- all: 不区分存储类型,查询所有存储方式的回调记录', 'type' => 'string', 'required' => false, - 'example' => 'rtmp://****/aliyundoc.com:8000/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', + 'example' => 'oss', + 'enum' => ['all', 'oss', 'vod'], ], ], - [ - 'name' => 'SideOutputUrlList', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '多路转推流地址列表,可以是阿里云或第三方厂商的CDN推流地址,一个导播台最多支持添加20个RTMP转推地址。'."\n" - ."\n\n" - .'> 多个地址用["rtmp://domain/app1/stream1","rtmp://domain/app2/stream2"]数组格式。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://domain/app/stream?***', + 'description' => '回调记录。', + 'type' => 'object', + 'properties' => [ + 'CallbackList' => [ + 'description' => '回调记录。', + 'type' => 'array', + 'items' => [ + 'description' => '回调记录。', + 'type' => 'object', + 'properties' => [ + 'AppName' => ['description' => '播流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'Description' => ['description' => '结果描述,为success时成功,失败则返回错误信息。', 'type' => 'string', 'example' => 'success'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'NotifyContent' => ['description' => '回调的具体内容。', 'type' => 'string', 'example' => '7月26日 16:14{"domain":"al.xxxx.com","stream":"livestream01","pull _stream_result":true,"cdn":"al"}'], + 'NotifyResult' => ['description' => '回调结果。'."\n" + .'- success:成功。'."\n" + .'- failed:失败。', 'type' => 'string', 'example' => 'success'], + 'NotifyTime' => ['description' => '回调时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2022-10-19T19:09:28Z'], + 'NotifyType' => ['description' => '回调种类。'."\n" + .'- file_created:录制文件创建成功。'."\n" + .'- record_error:录制错误。'."\n" + .'- record_started:录制已经成功开始。'."\n" + .'- record_paused:录制已经成功暂停。'."\n" + .'- record_resumed:录制已经成功恢复继续录制。'."\n" + .'- record_force_transcode_fail:录制任务触发转码失败。'."\n" + .'- transformat_error:直播流内容解析出错。', 'type' => 'string', 'example' => 'record_started'], + 'NotifyUrl' => ['description' => '录制回调地址。', 'type' => 'string', 'example' => 'http://learn.aliyundoc.com/examplecallback.action'], + 'NotifyHeader' => ['description' => '回调请求header', 'type' => 'string', 'example' => '{'."\n" + .' "Content-Type": ['."\n" + .' "application/json; charset=utf-8"'."\n" + .' ]'."\n" + .'}'], + 'StreamName' => ['description' => '播流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'NotifyResponse' => ['description' => '用户端接受回调后返回的响应结果。', 'type' => 'string', 'example' => '{"Code":0,"Msg":"Success"}'], + 'StorageType' => ['description' => '录制存储方式。取值:'."\n" + ."\n" + .'- oss:录制到oss'."\n" + .'- vod:录制到vod'."\n" + .'- all: 所有存储方式', 'type' => 'string', 'example' => 'oss'], + ], + ], + ], + 'Code' => ['description' => '错误码。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Msg' => ['description' => '提示信息。', 'type' => 'string', 'example' => 'ok'], + 'PageNum' => ['description' => '分页页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '180FA0D2-1A02-5158-A36B-115DBF7B218D'], + 'TotalNum' => ['description' => '符合条件的总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'TotalPage' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + ], ], ], - [ - 'name' => 'CallbackUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '用户回调地址。若需要接收回调通知,请输入可用的接收地址,接受HTTP协议。 若该参数置为空,默认取消导播台回调通知。'."\n" - .'> 导播台回调详细信息,请参见[云导播回调信息说明](~~213633~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://****/aliyundoc.com:8000/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParams', 'errorMessage' => 'Invalid JSON', 'description' => ''], + ['errorCode' => 'MissingParams', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'MalformedParams', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数无效,请检查后重试。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CallbackList\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"Description\\": \\"success\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"NotifyContent\\": \\"7月26日 16:14{\\\\\\"domain\\\\\\":\\\\\\"al.xxxx.com\\\\\\",\\\\\\"stream\\\\\\":\\\\\\"livestream01\\\\\\",\\\\\\"pull _stream_result\\\\\\":true,\\\\\\"cdn\\\\\\":\\\\\\"al\\\\\\"}\\",\\n \\"NotifyResult\\": \\"success\\",\\n \\"NotifyTime\\": \\"2022-10-19T19:09:28Z\\",\\n \\"NotifyType\\": \\"record_started\\",\\n \\"NotifyUrl\\": \\"http://learn.aliyundoc.com/examplecallback.action\\",\\n \\"NotifyHeader\\": \\"{\\\\n \\\\\\"Content-Type\\\\\\": [\\\\n \\\\\\"application/json; charset=utf-8\\\\\\"\\\\n ]\\\\n}\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"NotifyResponse\\": \\"{\\\\\\"Code\\\\\\":0,\\\\\\"Msg\\\\\\":\\\\\\"Success\\\\\\"}\\",\\n \\"StorageType\\": \\"oss\\"\\n }\\n ],\\n \\"Code\\": 0,\\n \\"Msg\\": \\"ok\\",\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"180FA0D2-1A02-5158-A36B-115DBF7B218D\\",\\n \\"TotalNum\\": 20,\\n \\"TotalPage\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n \\n liveApp****\\n success\\n example.com\\n 7月26日 16:14{\\"domain\\":\\"al.xxxx.com\\",\\"stream\\":\\"livestream01\\",\\"pull _stream_result\\":true,\\"cdn\\":\\"al\\"}\\n success\\n 2022-10-19T19:09:28Z\\n record_started\\n http://learn.aliyundoc.com/examplecallback.action\\n liveStream****\\n \\n 0\\n ok\\n 1\\n 20\\n 180FA0D2-1A02-5158-A36B-115DBF7B218D\\n 20\\n 20\\n","errorExample":""}]', + 'title' => '查询直播录制回调记录', + 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveRecordNotifyRecords'], ], + ], + 'ramActions' => [ [ - 'name' => 'ProgramEffect', - 'in' => 'query', - 'schema' => [ - 'description' => '轮播生效标志。 '."\n" - ."\n" - .'- **0**:不生效。'."\n" - .'- **1**:生效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRecordNotifyRecords', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + ], + 'DescribeLiveRecordVodConfigs' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ProgramName', - 'in' => 'query', - 'schema' => [ - 'description' => '轮播台名称,若使用轮播功能时可配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'program_name', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveL04ZVK'], + ], + 'parameters' => [ [ - 'name' => 'ChannelEnable', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '是否启用Channel。 '."\n" - .' '."\n" - .'- **0**(默认):不启用。'."\n" - .'- **1**:启用。 '."\n" - ."\n" - .'> 默认不启用,且启用后不可取消;不启用时Resource直接被布局引用,首次开启Channel需要在导播台停止的状态下进行,之前已存在的布局将被废弃,Resource需要首先设置到Channel中,新增的布局直接引用Channel,通过Channel可调整视频源播放进度和播放状态,该模式下视频源、PVW、PGM三区域若引用同一Resource,则对应画面将保持同步。 ', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'SyncGroupsConfig', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '多视角同步配置,让多个视频源同步。'."\n" - .'多视角同步分为两个模式:'."\n" - ."\n" - .'- mode: 0(主播模式,多个视频源根据指定的模式同步。)'."\n" - ."\n" - .'- mode: 1(会议模式,没有主播视频的概念,所有视频源相互同步。)'."\n" - ."\n\n" - ."\n" - .'主播模式:hostResourceId:主播模式下的主播视频源'."\n" - ."\n" - .'会议模式:没有hostRsoureId 字段,只提供需要提供的resourceIds 中的资源ids'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '"[{\\"mode\\":0,\\"resourceIds\\":[\\"5a6c1c33-8424-46f6-813c-c152220a****\\",\\"4e6521dc-a40a-4077-b6bf-1fb12a76****\\"],\\"hostResourceId\\":\\"3aa2b39a-fd0e-4b8c-be73-b7af31c4****\\"}]"', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'UrgentImageId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '备播媒资库图片素材ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'a089175eb5f4427684fc0715159a****', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ - 'name' => 'UrgentImageUrl', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '备播图片素材URL。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', - ], + 'schema' => ['description' => '播流名称。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], ], [ - 'name' => 'AutoSwitchUrgentOn', + 'name' => 'PageNum', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '开启断流自动切换备播。'."\n" - .'- **true**:开启。'."\n" - .'- **false**:关闭。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '分页的页码。默认值:**1**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'AutoSwitchUrgentConfig', + 'name' => 'PageSize', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '自动切备播配置。'."\n" - .'`eofThres`:表示断流时间后自动切备播,单位为秒。', - 'type' => 'string', - 'required' => false, - 'example' => '{"eofThres":3}', - ], + 'schema' => ['description' => '每页大小。默认值为**10**,取值范围:**5~100**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'minimum' => '5', 'example' => '10', 'default' => '10'], ], ], 'responses' => [ @@ -32152,94 +26028,266 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。可作为查询导播台流地址、启动导播台、添加导播台视频资源、添加导播台布局、查询导播台布局列表、添加导播台组件和添加导播台节目单的请求参数。', - 'type' => 'string', - 'example' => 'b4810848-bcf9-4aef-bd4a-e6bba2d9****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'PageNum' => ['description' => '分页页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A'], + 'PageSize' => ['description' => '分页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '总数。', 'type' => 'string', 'example' => '100'], + 'LiveRecordVodConfigs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveRecordVodConfig' => [ + 'description' => '配置信息列表。'."\n", + 'type' => 'array', + 'items' => [ + 'title' => '录制到vod配置项', + 'description' => '录制到vod配置项', + 'type' => 'object', + 'properties' => [ + 'StorageLocation' => ['description' => '存储地址。', 'type' => 'string', 'example' => '****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com'], + 'AppName' => ['description' => '直播流所属应用名称。'."\n", 'type' => 'string', 'example' => 'liveApp****'], + 'AutoCompose' => ['description' => '是否开启自动合并。取值:'."\n" + ."\n" + .'- **ON**:开启'."\n" + .'- **OFF**:关闭', 'type' => 'string', 'example' => 'ON'], + 'OnDemand' => ['description' => '按需录制,取值:'."\n" + ."\n" + .'- **0**(默认值):关闭。'."\n" + ."\n" + .'- **1**:通过HTTP回调方式。'."\n" + ."\n" + .'- **2**:按需录制,通过解析推流参数。。'."\n" + ."\n" + .'- **7**:手动录制,默认不录制,可以通过 RealTimeRecordCommand 接口手动控制录制开启或停止。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'StreamName' => ['description' => '播流名称。'."\n", 'type' => 'string', 'example' => 'liveStream****'], + 'CreateTime' => ['description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'example' => '2015-12-01T17:37:00Z'], + 'VodTranscodeGroupId' => ['description' => '点播转码组模板ID。'."\n", 'type' => 'string', 'example' => 'e2d796d3bb5fd8049d32bff62f94****'], + 'CycleDuration' => ['description' => '周期录制时长。单位:秒。默认值为**3600**,取值范围:**300~21600**。', 'type' => 'integer', 'format' => 'int32', 'example' => '360'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'ComposeVodTranscodeGroupId' => ['description' => '自动合并点播转码模板组ID。'."\n" + ."\n" + .'> 如果DescribeLiveRecordVodConfigs接口的AutoCompose设置为ON,则返回本参数。', 'type' => 'string', 'example' => 'dadfcaadde****'], + 'RecordContent' => ['title' => '录制内容', 'description' => '录制内容。取值:'."\n" + ."\n" + .'- raw(默认值),录制源流'."\n" + ."\n" + .'- transcode,录制转码流', 'type' => 'string', 'example' => 'raw'], + 'DelayTime' => ['title' => '断流拼接时长', 'description' => '断流拼接时长', 'type' => 'integer', 'format' => 'int32', 'example' => '180'], + 'TranscodeTemplates' => ['description' => '转码流录制的转码模板。设置了录制所有转码流,则返回为\\["*"]。', 'type' => 'string', 'example' => '["sd","hd"]'], + 'FormatConfig' => ['description' => '按格式配置点播视频设置参数,无需传入,默认为 true', 'type' => 'boolean', 'example' => 'true'], + 'SpaceId' => ['description' => '点播应用空间ID,通过**点播控制台**或**应用信息列表**获取,[应用信息查询接口](~~454873~~)。未开启应用空间时无需填写;', 'type' => 'string', 'example' => 'app-1000000'], + 'RecordFormatList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RecordFormat' => [ + 'description' => '录制格式参数', + 'type' => 'array', + 'items' => [ + 'description' => '录制格式列表', + 'type' => 'object', + 'properties' => [ + 'Format' => ['description' => '录制储存格式', 'type' => 'string', 'example' => 'm3u8'], + 'SliceDuration' => ['description' => '单个切片时长,单位:秒', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], + 'AutoCompose' => ['description' => '自动合并,ON 表示开启自动合并。取值:'."\n" + ."\n" + .'- ON,开启自动合并'."\n" + ."\n" + .'- OFF,关闭自动合并', 'type' => 'string', 'example' => 'ON'], + 'VideoProcess' => ['description' => '视频处理源。取值:'."\n" + ."\n" + .'- origin,处理源视频'."\n" + ."\n" + .'- compose,处理合并后视频', 'type' => 'string', 'example' => 'origin'], + 'ProcessMethod' => ['description' => '视频处理方式。取值:'."\n" + ."\n" + .'- transcode,使用转码模版组处理视频'."\n" + ."\n" + .'- workflow,使用工作流处理视频', 'type' => 'string', 'example' => 'transcode'], + 'ProcessTemplateId' => ['description' => '视频处理转码模版或工作流模版Id', 'type' => 'string', 'example' => 'e2d796d3bb5fd8049d32bff62f94****'], + 'Tags' => ['description' => '视频分类标签', 'type' => 'string', 'example' => 'sports'], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectCasterStatus.Inuse', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidCaster.ChannelDisableUnsupported', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectCasterStatus.EnableChannel', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], - 403 => [ - [ - 'errorCode' => 'PermissionDenied', - 'errorMessage' => '%s', + ], + 'title' => '查询直播录制转点播配置', + 'summary' => '查询直播转点播配置列表。', + 'description' => '先获取播流域名,再调用本接口查询直播转点播配置列表。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRecordVodConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 1,\\n \\"RequestId\\": \\"5056369B-D337-499E-B8B7-B761BD37B08A\\",\\n \\"PageSize\\": 1,\\n \\"Total\\": \\"100\\",\\n \\"LiveRecordVodConfigs\\": {\\n \\"LiveRecordVodConfig\\": [\\n {\\n \\"StorageLocation\\": \\"****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"AutoCompose\\": \\"ON\\",\\n \\"OnDemand\\": 0,\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"CreateTime\\": \\"2015-12-01T17:37:00Z\\",\\n \\"VodTranscodeGroupId\\": \\"e2d796d3bb5fd8049d32bff62f94****\\",\\n \\"CycleDuration\\": 360,\\n \\"DomainName\\": \\"example.com\\",\\n \\"ComposeVodTranscodeGroupId\\": \\"dadfcaadde****\\",\\n \\"RecordContent\\": \\"raw\\",\\n \\"DelayTime\\": 180,\\n \\"TranscodeTemplates\\": \\"[\\\\\\"sd\\\\\\",\\\\\\"hd\\\\\\"]\\",\\n \\"FormatConfig\\": true,\\n \\"SpaceId\\": \\"app-1000000\\",\\n \\"RecordFormatList\\": {\\n \\"RecordFormat\\": [\\n {\\n \\"Format\\": \\"m3u8\\",\\n \\"SliceDuration\\": 30,\\n \\"AutoCompose\\": \\"ON\\",\\n \\"VideoProcess\\": \\"origin\\",\\n \\"ProcessMethod\\": \\"transcode\\",\\n \\"ProcessTemplateId\\": \\"e2d796d3bb5fd8049d32bff62f94****\\",\\n \\"Tags\\": \\"sports\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 5056369B-D337-499E-B8B7-B761BD37B08A\\n 1\\n 100\\n \\n \\n ****-tjptr2vatm.oss-cn-shanghai.aliyuncs.com\\n liveApp****\\n ON\\n 0\\n liveStream****\\n 2015-12-01T17:37:00Z\\n e2d796d3bb5fd8049d32bff62f94****\\n 360\\n example.com\\n dadfcaadde****\\n \\n \\n","errorExample":""}]', + ], + 'DescribeLiveRtcRecordUsageData' => [ + 'path' => '', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], + 'security' => [ [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s', - ], + 'AK' => [], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s', + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], + ], + 'parameters' => [ + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。查询粒度≥5 分钟且≤31 天。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2022-10-10T21:00:00Z'], + ], + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => ['description' => '实时音视频应用 ID。可在[实时音视频应用管理](~~2355593~~)中查看。', 'type' => 'string', 'required' => true, 'example' => 'intl7f92-a5a8*************7ce4eb44a6'], + ], + [ + 'name' => 'RecordMode', + 'in' => 'query', + 'schema' => ['description' => '录制模式:'."\n" + ."\n" + .'- 0:单流录制模式。'."\n" + ."\n" + .'- 1:混流录制模式。', 'type' => 'string', 'required' => true, 'example' => '0'], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '查询数据的时间粒度。单位:秒。取值:'."\n" + ."\n" + .'- 3600(默认)。'."\n" + ."\n" + .'- 86400。', 'type' => 'string', 'required' => false, 'example' => '3600'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '16A96B9A-F2*************B92E68F4CD8'], + 'RecordMode' => ['description' => '录制模式。'."\n" + ."\n" + .'- 0:单流录制模式。'."\n" + ."\n" + .'- 1:混流录制模式。', 'type' => 'string', 'example' => '0'], + 'AppId' => ['description' => '需要查询的实时音视频应用ID。', 'type' => 'string', 'example' => '7fd341b3-c6fa-43e1-96b8-7295a1dd****'], + 'TotalSummaryDuration' => ['description' => '汇总时长,单位:秒。', 'type' => 'number', 'format' => 'double', 'example' => '150'], + 'AudioSummaryDuration' => ['description' => '纯音频汇总时长,单位:秒。', 'type' => 'number', 'format' => 'double', 'example' => '20'], + 'V480SummaryDuration' => ['description' => '480P及以下视频汇总时长,单位:秒。', 'type' => 'number', 'format' => 'double', 'example' => '30'], + 'V720SummaryDuration' => ['description' => '720P及以下视频汇总时长,单位:秒。', 'type' => 'number', 'format' => 'double', 'example' => '40'], + 'V1080SummaryDuration' => ['description' => '720P以上(含1080P)视频汇总时长,单位:秒。', 'type' => 'number', 'format' => 'double', 'example' => '10'], + 'Data' => [ + 'description' => '用量统计信息。', + 'type' => 'array', + 'items' => [ + 'description' => '用量统计信息。', + 'type' => 'object', + 'properties' => [ + 'Timestamp' => ['description' => '数据统计时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2022-10-10T20:00:00Z'], + 'TotalDuration' => ['description' => '全部时长,单位:秒。', 'type' => 'number', 'format' => 'double', 'example' => '150'], + 'AudioDuration' => ['description' => '纯音频时长,单位:秒。', 'type' => 'number', 'format' => 'double', 'example' => '20'], + 'V480Duration' => ['description' => '480P及以下视频时长,单位:秒。', 'type' => 'number', 'format' => 'double', 'example' => '30'], + 'V720Duration' => ['description' => '720P及以下视频时长,单位:秒。', 'type' => 'number', 'format' => 'double', 'example' => '40'], + 'V1080Duration' => ['description' => '720P以上视频时长,单位:秒。', 'type' => 'number', 'format' => 'double', 'example' => '10'], + ], + ], + ], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"b4810848-bcf9-4aef-bd4a-e6bba2d9****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\tb4810848-bcf9-4aef-bd4a-e6bba2d9****\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"casterId\\": \\"b4810848-bcf9-4aef-bd4a-e6bba2d966c8\\"\\n}"}]', - 'title' => '设置导播台配置', - 'description' => '先通过[CreateCaster](~~2848009~~)接口创建导播台,再调用本接口对导播台进行详细配置。此接口将会全面替换现有的配置信息,如果您将某个参数设置为空,则会清除该参数在导播台中的现有配置。'."\n" - ."\n\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidRecordModeParameter', 'errorMessage' => 'RecordMode parameter error.', 'description' => 'RecordMode参数错误'], + ['errorCode' => 'InvalidAppIdParameter', 'errorMessage' => 'AppId parameter error.', 'description' => 'AppId参数错误'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询实时音视频云端录制用量', + 'summary' => '云端录制用量查询。', + 'description' => '- 统计每日云端录制各规格下的录制时长。'."\n" + ."\n" + .'- 支持到实时音视频应用粒度查询。'."\n" + ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeCasterConfig' => [ - 'summary' => '查询导播台配置信息。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRtcRecordUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F2*************B92E68F4CD8\\",\\n \\"RecordMode\\": \\"0\\",\\n \\"AppId\\": \\"7fd341b3-c6fa-43e1-96b8-7295a1dd****\\",\\n \\"TotalSummaryDuration\\": 150,\\n \\"AudioSummaryDuration\\": 20,\\n \\"V480SummaryDuration\\": 30,\\n \\"V720SummaryDuration\\": 40,\\n \\"V1080SummaryDuration\\": 10,\\n \\"Data\\": [\\n {\\n \\"Timestamp\\": \\"2022-10-10T20:00:00Z\\",\\n \\"TotalDuration\\": 150,\\n \\"AudioDuration\\": 20,\\n \\"V480Duration\\": 30,\\n \\"V720Duration\\": 40,\\n \\"V1080Duration\\": 10\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeLiveShiftConfigs' => [ + 'summary' => '查询指定域名的时移配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -32250,341 +26298,54 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '106967', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveGDJYFA'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster](~~2848009~~)接口创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '导播台配置信息。', + 'description' => '时移配置信息。', 'type' => 'object', 'properties' => [ - 'AutoSwitchUrgentConfig' => [ - 'description' => '自动切备播配置。`eofThres`:表示断流时间后自动切备播,单位为秒。', - 'type' => 'string', - 'example' => '{"eofThres":3}', - ], - 'AutoSwitchUrgentOn' => [ - 'description' => '开启断流自动切换备播。'."\n" - .'- **true**:开启。'."\n" - .'- **false**:关闭。', - 'type' => 'string', - 'example' => 'true', - ], - 'CallbackUrl' => [ - 'description' => '用户回调地址。', - 'type' => 'string', - 'example' => 'http://learn.aliyundoc.com/callBackLive', - ], - 'CasterId' => [ - 'description' => '导播台ID。', - 'type' => 'string', - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], - 'CasterName' => [ - 'description' => '导播台名称。', - 'type' => 'string', - 'example' => 'coco-caster10', - ], - 'ChannelEnable' => [ - 'description' => '是否启用Channel。 取值:'."\n" - .' '."\n" - .'- **0**:不启用。'."\n" - .'- **1**:启用。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Delay' => [ - 'description' => '延时播放。单位:秒 。 '."\n" - .' '."\n" - .'- **0**:禁用延时。'."\n" - .'- 大于**0**:启用延时。'."\n" - .' '."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'ProgramEffect' => [ - 'description' => '轮播生效标志。 取值:'."\n" - .' '."\n" - .'- **0**:不生效 。'."\n" - .'- **1**:生效。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ProgramName' => [ - 'description' => '轮播台名称。', - 'type' => 'string', - 'example' => 'program_name', - ], - 'RecordConfig' => [ - 'description' => '录制配置参数为空时,表示不启用录制功能。', - 'type' => 'object', - 'properties' => [ - 'OnDemand' => [ - 'description' => '按需录制。取值:'."\n" - ."\n" - .'- 0:关闭。'."\n" - ."\n" - .'- 1:通过HTTP回调方式。'."\n" - ."\n" - .'- 2:解析推流参数按需录制。'."\n" - ."\n" - .'- 7:默认不录制。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'OssBucket' => [ - 'description' => '存储位置。', - 'type' => 'string', - 'example' => 'liveBucket****', - ], - 'OssEndpoint' => [ - 'description' => '存储位置所在OSS节点。', - 'type' => 'string', - 'example' => 'oss-cn-shanghai.aliyundoc.com', - ], - 'RecordFormat' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RecordFormat' => [ - 'description' => '录制格式配置。', - 'type' => 'array', - 'items' => [ - 'description' => '录制时长信息。', - 'type' => 'object', - 'properties' => [ - 'CycleDuration' => [ - 'description' => '录制时长。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3600', - ], - 'Format' => [ - 'description' => '录制格式。', - 'type' => 'string', - 'example' => 'M3U8', - ], - 'OssObjectPrefix' => [ - 'description' => '录制文件名。', - 'type' => 'string', - 'example' => 'record/{liveApp****}/{liveStream****}', - ], - 'SliceOssObjectPrefix' => [ - 'description' => '切片名称。', - 'type' => 'string', - 'example' => 'record/{liveApp****}/{liveStream****}/{UnixTimestamp****}', - ], - ], - ], - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '97df6b7f-3490-47d2-ac50-8833e1b64597', - ], - 'SideOutputUrl' => [ - 'description' => '用户自定义导播台旁路输出地址。', - 'type' => 'string', - 'example' => 'rtmp://sophon-developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****', - ], - 'SideOutputUrlList' => [ - 'description' => '用户自定义导播台旁路输出地址列表。', - 'type' => 'string', - 'example' => '["rtmp://domain/app1/stream1","rtmp://domain/app2/stream2"]', - ], - 'SyncGroupsConfig' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B49E6DDA-F413-422B-B58E-2FA23F286726'], + 'Content' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'SyncGroup' => [ - 'description' => '存储配置。', + 'Config' => [ + 'description' => '配置列表。', 'type' => 'array', 'items' => [ - 'description' => '存储配置。', + 'description' => '配置列表。', 'type' => 'object', 'properties' => [ - 'HostResourceId' => [ - 'description' => '导播台资源ID。', - 'type' => 'string', - 'example' => '28768383240243****', - ], - 'Mode' => [ - 'description' => '静态页面缓存的模式。取值:'."\n" - ."\n" - .'- 0: 标准模式。'."\n" - ."\n" - .'- 1:强力模式。'."\n" - ."\n" - .'- 2:不缓存。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ResourceIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ResourceId' => [ - 'description' => '需要修改资源组的云资源的资源ID列表,资源ID数量限制为1至50。', - 'type' => 'array', - 'items' => [ - 'description' => '需要修改资源组的云资源的资源ID列表,资源ID数量限制为1至50。'."\n", - 'type' => 'string', - 'example' => '1', - ], - ], - ], - ], - ], - ], - ], - ], - ], - 'TranscodeConfig' => [ - 'description' => '转码配置。', - 'type' => 'object', - 'properties' => [ - 'CasterTemplate' => [ - 'description' => '导播台转码模板。取值:'."\n" - ."\n" - .'- **lp_ld**:流畅。'."\n" - .'- **lp_sd**:标清。'."\n" - .'- **lp_hd**:高清。'."\n" - .'- **lp_ud**:超清。'."\n" - .'- **lp_ld_v**:竖屏流畅。'."\n" - .'- **lp_sd_v**:竖屏标清。'."\n" - .'- **lp_hd_v**:竖屏高清。'."\n" - .'- **lp_ud_v**:竖屏超清。', - 'type' => 'string', - 'example' => 'lp_hd', - ], - 'LiveTemplateIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LocationId' => [ - 'description' => '直播转码配置。', - 'type' => 'array', - 'items' => [ - 'description' => '直播转码配置。取值:'."\n" - ."\n" - .'- **lsd**:标清 。'."\n" - .'- **lld**:流畅。'."\n" - .'- **lud**:超清。'."\n" - .'- **lhd**:高清自适应转码模板 。'."\n" - .'- **daobo-lsd**:标清。'."\n" - .'- **daobo-lld**:流畅。'."\n" - .'- **daobo-lud**:超清。'."\n" - .'- **daobo-lhd**:高清 。', - 'type' => 'string', - 'example' => 'lld', - ], - ], - ], - ], - 'CustomParams' => [ - 'description' => '自定义配置', - 'type' => 'object', - 'properties' => [ - 'video' => [ - 'description' => '视频参数', - 'type' => 'object', - 'properties' => [ - 'fps' => [ - 'description' => '视频帧率', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '300', - ], - 'bitrate' => [ - 'description' => '视频码率', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '300', - ], - 'width' => [ - 'description' => '视频画面宽度,单位为像素(px)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1080', - ], - 'height' => [ - 'description' => '视频画面高度,单位为像素(px)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '720', - ], - ], + 'AppName' => ['description' => '配置的应用。', 'type' => 'string', 'example' => 'liveApp****'], + 'Vision' => ['description' => '配置的保存天数。', 'type' => 'integer', 'format' => 'int32', 'example' => '7'], + 'DomainName' => ['description' => '配置的域名。', 'type' => 'string', 'example' => 'example.com'], + 'StreamName' => ['description' => '配置的流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'IgnoreTranscode' => ['description' => '是否忽略对应转码流生成时移。取值:'."\n" + ."\n" + .'- **true**:转码流不生成时移。'."\n" + ."\n" + .'- **false**:转码流生成时移。'."\n" + ."\n" + .'默认选择为true。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], - ], - 'UrgentImageId' => [ - 'description' => '备播图片媒资库素材ID。', - 'type' => 'string', - 'example' => 'a089175eb5f4427684fc0715159a****', - ], - 'UrgentImageUrl' => [ - 'description' => '备播图片素材URL。', - 'type' => 'string', - 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', - ], - 'UrgentLiveStreamUrl' => [ - 'description' => '备播直播流URL。', - 'type' => 'string', - 'example' => 'rtmp://demo.aliyundoc.com', - ], - 'UrgentMaterialId' => [ - 'description' => '备播视频媒资库素材ID。', - 'type' => 'string', - 'example' => '98646538-bcf9-4aef-bd4a-e6bb76588****', + 'description' => '', ], ], ], @@ -32592,50 +26353,50 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], ], 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidDataNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '数据不存在,请检查后重试。'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + 409 => [ + ['errorCode' => 'InvalidStreamNum', 'errorMessage' => '%s, please check and try again later.', 'description' => '流数量异常,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"AutoSwitchUrgentConfig\\": \\"{\\\\\\"eofThres\\\\\\":3}\\",\\n \\"AutoSwitchUrgentOn\\": \\"true\\",\\n \\"CallbackUrl\\": \\"http://learn.aliyundoc.com/callBackLive\\",\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"CasterName\\": \\"coco-caster10\\",\\n \\"ChannelEnable\\": 1,\\n \\"Delay\\": 0,\\n \\"DomainName\\": \\"example.com\\",\\n \\"ProgramEffect\\": 0,\\n \\"ProgramName\\": \\"program_name\\",\\n \\"RecordConfig\\": {\\n \\"OnDemand\\": 0,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"OssEndpoint\\": \\"oss-cn-shanghai.aliyundoc.com\\",\\n \\"RecordFormat\\": {\\n \\"RecordFormat\\": [\\n {\\n \\"CycleDuration\\": 3600,\\n \\"Format\\": \\"M3U8\\",\\n \\"OssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}\\",\\n \\"SliceOssObjectPrefix\\": \\"record/{liveApp****}/{liveStream****}/{UnixTimestamp****}\\"\\n }\\n ]\\n }\\n },\\n \\"RequestId\\": \\"97df6b7f-3490-47d2-ac50-8833e1b64597\\",\\n \\"SideOutputUrl\\": \\"rtmp://sophon-developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****\\",\\n \\"SideOutputUrlList\\": \\"[\\\\\\"rtmp://domain/app1/stream1\\\\\\",\\\\\\"rtmp://domain/app2/stream2\\\\\\"]\\",\\n \\"SyncGroupsConfig\\": {\\n \\"SyncGroup\\": [\\n {\\n \\"HostResourceId\\": \\"28768383240243****\\",\\n \\"Mode\\": 0,\\n \\"ResourceIds\\": {\\n \\"ResourceId\\": [\\n \\"1\\"\\n ]\\n }\\n }\\n ]\\n },\\n \\"TranscodeConfig\\": {\\n \\"CasterTemplate\\": \\"lp_hd\\",\\n \\"LiveTemplateIds\\": {\\n \\"LocationId\\": [\\n \\"lld\\"\\n ]\\n },\\n \\"CustomParams\\": {\\n \\"video\\": {\\n \\"fps\\": 300,\\n \\"bitrate\\": 300,\\n \\"width\\": 1080,\\n \\"height\\": 720\\n }\\n }\\n },\\n \\"UrgentImageId\\": \\"a089175eb5f4427684fc0715159a****\\",\\n \\"UrgentImageUrl\\": \\"http://learn.aliyundoc.com/AppName/image.jpg\\",\\n \\"UrgentLiveStreamUrl\\": \\"rtmp://demo.aliyundoc.com\\",\\n \\"UrgentMaterialId\\": \\"98646538-bcf9-4aef-bd4a-e6bb76588****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0\\n rtmp://demo.aliyundoc.com\\n 98646538-bcf9-4aef-bd4a-e6bb76588****\\n a089175eb5f4427684fc0715159a****\\n http://learn.aliyundoc.com/AppName/image.jpg\\n http://learn.aliyundoc.com/callBackLive\\n program_name\\n coco-caster10\\n LIVEPRODUCER_POST-cn-0pp1czt****\\n 0\\n 1\\n example.com\\n 97df6b7f-3490-47d2-ac50-8833e1b64597\\n [\\"rtmp://domain/app1/stream1\\",\\"rtmp://domain/app2/stream2\\"]\\n rtmp://sophon-developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****\\n true\\n {\\"eofThres\\":3}\\n \\n lp_hd\\n lld\\n \\n \\n oss-cn-shanghai.aliyundoc.com\\n liveBucket****\\n 0\\n \\n 3600\\n record/{liveApp****}/{liveStream****}/{UnixTimestamp****}\\n record/{liveApp****}/{liveStream****}\\n M3U8\\n \\n \\n \\n 28768383240243****\\n 0\\n 1\\n \\n","errorExample":""}]', - 'title' => '查询导播台配置', - 'description' => '先通过[CreateCaster](~~2848009~~)接口创建导播台,再调用本接口查询导播台配置信息。'."\n" - ."\n" + 'title' => '查询域名时移配置', + 'description' => '先获取播流域名,再调用本接口查询指定域名的时移配置。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeCasters' => [ - 'summary' => '查询导播台列表。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '### 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" + .'|------------|--------|---------|------|'."\n" + .'| InvalidParam | param error | 400 | 用户参数错误。 |'."\n" + .'| InvalidDataNotFound | data not found | 404 | 用户数据未找到。 |'."\n", + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveShiftConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B49E6DDA-F413-422B-B58E-2FA23F286726\\",\\n \\"Content\\": {\\n \\"Config\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"Vision\\": 7,\\n \\"DomainName\\": \\"example.com\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"IgnoreTranscode\\": true\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n B49E6DDA-F413-422B-B58E-2FA23F286726\\n \\n liveApp****\\n 7\\n example.com\\n liveStream****\\n true\\n \\n","errorExample":""}]', + ], + 'DescribeLiveSnapshotConfig' => [ + 'summary' => '查询播流域名下的截图配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -32646,446 +26407,266 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '106972', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'CasterId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaste接口](~~2848012~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台 > 导播台 > 云导播台**页面查看。'."\n" - ."\n" - .'> - 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。'."\n" - .'> - 若参数为空,默认返回所有导播台合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '直播流所属应用名称。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ - 'name' => 'CasterName', + 'name' => 'PageNum', 'in' => 'query', - 'schema' => [ - 'description' => '导播台名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveCaster****', - ], + 'schema' => ['description' => '分页的页码。默认值:**1**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'StartTime', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2016-06-29T09:00:00Z', - ], + 'schema' => ['description' => '每页大小。取值范围:**5~30**,默认值:**10**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '5', 'example' => '10', 'default' => '10'], ], [ - 'name' => 'EndTime', + 'name' => 'Order', 'in' => 'query', 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', + 'description' => '排序。取值:'."\n" + ."\n" + .'- **asc**(默认值):升序。'."\n" + .'- **desc**:降序。', 'type' => 'string', 'required' => false, - 'example' => '2016-06-29T11:00:00Z', + 'enumValueTitles' => ['asc' => '升序', 'desc' => '降序'], + 'example' => 'asc', + 'default' => 'asc', + 'enum' => ['asc', 'desc'], ], ], - [ - 'name' => 'PageNum', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'type' => 'object', + 'properties' => [ + 'PageNum' => ['description' => '分页的页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A3136B58-5876-4168-83CA-B562781981A0'], + 'Order' => ['description' => '排序。', 'type' => 'string', 'example' => 'asc'], + 'TotalPage' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageSize' => ['description' => '每页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '11'], + 'TotalNum' => ['description' => '符合条件的总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '6'], + 'LiveStreamSnapshotConfigList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamSnapshotConfig' => [ + 'description' => '截图配置列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'OverwriteOssObject' => ['description' => '覆盖截图存储文件名。', 'type' => 'string', 'example' => '{liveApp****}/{liveStream****}.jpg'], + 'TimeInterval' => ['description' => '截图周期。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'AppName' => ['description' => '直播流所属的应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'CreateTime' => ['description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'example' => '2016-05-20T01:33:38Z'], + 'OssBucket' => ['description' => 'OSS存储Bucket名称。', 'type' => 'string', 'example' => 'liveBucket****'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'Callback' => ['description' => '截图回调地址。', 'type' => 'string', 'example' => 'https://learn.aliyundoc.com'], + 'SequenceOssObject' => ['description' => '实时截图存储文件名。', 'type' => 'string', 'example' => 'snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp}.jpg'], + 'OssEndpoint' => ['description' => 'OSS存储的Endpoint名称。', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 2,\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"Order\\": \\"asc\\",\\n \\"TotalPage\\": 10,\\n \\"PageSize\\": 11,\\n \\"TotalNum\\": 6,\\n \\"LiveStreamSnapshotConfigList\\": {\\n \\"LiveStreamSnapshotConfig\\": [\\n {\\n \\"OverwriteOssObject\\": \\"{liveApp****}/{liveStream****}.jpg\\",\\n \\"TimeInterval\\": 10,\\n \\"AppName\\": \\"liveApp****\\",\\n \\"CreateTime\\": \\"2016-05-20T01:33:38Z\\",\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Callback\\": \\"https://learn.aliyundoc.com\\",\\n \\"SequenceOssObject\\": \\"snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp}.jpg\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\nasc\\n6\\n10\\n11\\n2\\nA3136B58-5876-4168-83CA-B562781981A0\\n\\n \\n {liveApp****}/{liveStream****}.jpg\\n snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp}.jpg\\n https://learn.aliyundoc.com\\n cn-oss-****.aliyuncs.com\\n 10\\n example.com\\n 2016-05-20T01:33:38Z\\n liveBucket****\\n liveApp****\\n \\n\\n","errorExample":"{\\n \\"LiveStreamSnapshotConfigList\\":{\\n \\"LiveStreamSnapshotConfig\\":[{\\n \\"AppName\\":\\"xxx\\",\\n \\"CreateTime\\":\\"2016-05-20T01:33:38Z\\",\\n \\"DomainName\\":\\"xxx\\",\\n \\"OssBucket\\":\\"bucket\\",\\n \\"OssEndpoint\\":\\"endpoint\\",\\n \\"OverwriteOssObject\\":\\"object\\",\\n \\"SequenceOssObject\\":\\"object\\",\\n \\"TimeInterval\\":10\\n }]\\n },\\n \\"Order\\":\\"asc\\",\\n \\"PageNum\\":1,\\n \\"PageSize\\":10,\\n \\"RequestId\\":\\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"TotalNum\\":100,\\n \\"TotalPage\\":10\\n}"}]', + 'title' => '查询域名下的截图配置', + 'description' => '先获取主播流域名,再调用本接口查询播流域名下的截图配置。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveSnapshotConfig'], ], + ], + 'ramActions' => [ [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每⻚模板数值,不传默认为100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveSnapshotConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DescribeLiveSnapshotDetectPornConfig' => [ + 'summary' => '查询直播审核配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Status', - 'in' => 'query', - 'schema' => [ - 'description' => '状态。 取值:'."\n" - ."\n" - .'- 0:空闲。 '."\n" - ."\n" - .'- 1:导播中。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], + ], + 'parameters' => [ [ - 'name' => 'ChargeType', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '付费方式。 取值:'."\n" - ."\n" - .'- 0:PrePaid预付费。'."\n" - ."\n" - .'- 1:PostPaid后付费。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'OrderByModifyAsc', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '是否按照导播台的修改时间进行升序排序。'."\n" - ."\n" - .'> 不填默认为"false"。', - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ - 'name' => 'NormType', + 'name' => 'PageNum', 'in' => 'query', - 'schema' => [ - 'description' => '导播台规格类型。取值:'."\n" - ."\n" - .'- 1:通用型。'."\n" - ."\n" - .'- 3:轻量级轮播型。'."\n" - ."\n" - .'- 4:虚拟演播厅型。'."\n" - ."\n" - .'- 6:轮播台(新播单型导播台)。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '分页的页码。默认值:**1**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。关于资源组的更多信息,请参见[什么是资源组](~~2381067~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-aekzw******', - ], + 'schema' => ['description' => ' '."\n" + .'每页大小。默认值:**10**,取值范围:**5~30**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '5', 'example' => '10', 'default' => '10'], ], [ - 'name' => 'Tag', + 'name' => 'Order', 'in' => 'query', - 'style' => 'repeatList', 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签列表。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签健。', - 'type' => 'string', - 'required' => false, - 'example' => 'TestKey', - ], - 'Value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'required' => false, - 'example' => 'TestValue', - ], - ], - 'required' => false, - ], + 'description' => '按创建时间排序。取值:'."\n" + ."\n" + .'- **Asc**(默认值):升序。'."\n" + .'- **Desc**:降序。', + 'type' => 'string', 'required' => false, - 'maxItems' => 100, + 'enumValueTitles' => ['asc' => '升序', 'desc' => '降序'], + 'example' => 'Asc', + 'default' => 'asc', + 'enum' => ['asc', 'desc'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '导播台数量。', 'type' => 'object', 'properties' => [ - 'CasterList' => [ + 'PageNum' => ['description' => '分页的页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'Order' => ['description' => '排序。', 'type' => 'string', 'example' => 'Asc'], + 'TotalPage' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '11'], + 'PageSize' => ['description' => '每页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'TotalNum' => ['description' => '符合条件的总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '6'], + 'LiveSnapshotDetectPornConfigList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Caster' => [ - 'description' => '导播台信息列表。', + 'LiveSnapshotDetectPornConfig' => [ + 'description' => '审核配置列表。', 'type' => 'array', 'items' => [ - 'description' => '导播台信息。', 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。可作为查询导播台流地址、启动导播台、添加导播台视频资源、添加导播台布局、查询导播台布局列表、添加导播台组件和添加导播台节目单的请求参数。', - 'type' => 'string', - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], - 'CasterName' => [ - 'description' => '导播台名称。', - 'type' => 'string', - 'example' => 'liveCaster****', - ], - 'CasterTemplate' => [ - 'description' => '导播台分辨率配置,付费类型为预付费时必选。 '."\n" - ."\n" - .'- lp_ld:流畅。'."\n" - ."\n" - .'- lp_sd:标清。'."\n" - ."\n" - .'- lp_hd:高清。'."\n" - ."\n" - .'- lp_ud:超清。'."\n" - ."\n" - .'- lp_ld_v:竖屏流畅。'."\n" - ."\n" - .'- lp_sd_v:竖屏标清。'."\n" - ."\n" - .'- lp_hd_v:竖屏高清。'."\n" - ."\n" - .'- lp_ud_v:竖屏超清。', - 'type' => 'string', - 'example' => 'lp_ld', - ], - 'ChannelEnable' => [ - 'description' => '是否启用Channel。'."\n" - ."\n" - .'- 0:不启用。'."\n" - ."\n" - .'- 1:启用。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ChargeType' => [ - 'description' => '付费方式。 '."\n" - ."\n" - .'- PrePaid:预付费。'."\n" - ."\n" - .'- PostPaid:后付费。', - 'type' => 'string', - 'example' => 'PrePaid', - ], - 'CreateTime' => [ - 'description' => '创建时间。', - 'type' => 'string', - 'example' => '2017-08-30 12:02:57.0', - ], - 'Duration' => [ - 'description' => '时长。格式为:hh:mm:ss(时:分:秒)。', - 'type' => 'string', - 'example' => '1:02:33', - ], - 'ExpireTime' => [ - 'description' => '导播台过期时间。', - 'type' => 'string', - 'example' => '2018-08-30 12:02:57.0', - ], - 'LastModified' => [ - 'description' => '对导播台最新修改时间。例如:近期有对导播台进行过开启,停止,修改配置等操作的时间。', - 'type' => 'string', - 'example' => '2021-12-01T05:08:45Z', - ], - 'NormType' => [ - 'description' => '导播台规格类型 。 取值: '."\n" - ."\n" - .'- 0:播单型。'."\n" - ."\n" - .'- 1:通用型。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PurchaseTime' => [ - 'description' => '导播台购买时间。', - 'type' => 'string', - 'example' => '2017-08-30 12:02:57.0', - ], - 'StartTime' => [ - 'description' => '导播台启动时间,当导播台处于导播中时输出。', - 'type' => 'string', - 'example' => '2017-08-30 18:02:57.0', - ], - 'Status' => [ - 'description' => '状态。取值:'."\n" - ."\n" - .'- 0:空闲。'."\n" - ."\n" - .'- 1:导播中。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ClientTokenId' => [ - 'description' => '用户生成的请求 token,用于保证请求的幂等性。'."\n" - .'该参数值可自定义,但是要保证在不同请求间唯一,最大值不超过 64 个 ASCII 字符。', - 'type' => 'string', - 'example' => '53200b81-b761-4c10-842a-a0726d97****'."\n", - ], - 'Tags' => [ + 'OssObject' => ['description' => 'OSS存储的文件名。', 'type' => 'string', 'example' => ' {liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg'], + 'AppName' => ['description' => '应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'Interval' => ['description' => '采样间隔。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'OssBucket' => ['description' => 'OSS存储Bucket名称。', 'type' => 'string', 'example' => 'liveBucket****'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'OssEndpoint' => ['description' => 'OSS存储Endpoint名称。', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com'], + 'Scenes' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'tag' => [ - 'description' => '标签列表。', + 'scene' => [ + 'description' => '检测场数组', 'type' => 'array', - 'items' => [ - 'description' => '标签。', - 'type' => 'object', - 'properties' => [ - 'TagKey' => [ - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'TestKey', - ], - 'TagValue' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'TestValue', - ], - ], - ], + 'items' => ['description' => '检测场景。取值:'."\n" + ."\n" + .'- **porn**(默认值):鉴黄。'."\n" + .'- **terrorism**:暴恐涉政。'."\n" + .'- **ad**:图文违规。'."\n" + .'- **live**:不良直播场景。'."\n" + .'- **logo**:logo检测。', 'type' => 'string', 'example' => 'porn'], ], ], - ], - 'ResourceGroupId' => [ - 'description' => '资源组ID。关于资源组的更多信息,请参见[什么是资源组](~~2381067~~)。', - 'type' => 'string', - 'example' => 'rg-acfmz******', + 'description' => '', ], ], + 'description' => '', ], ], ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64- af62-20e91b******', - ], - 'Total' => [ - 'description' => '导播台数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.PageSize', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.PageNum', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.Status', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.StartTime', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.EndTime', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'LiveServiceNotFound', - 'errorMessage' => '%s', - ], - ], - 403 => [ - [ - 'errorCode' => 'PermissionDenied', - 'errorMessage' => '%s', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s', - ], - ], - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterList\\": {\\n \\"Caster\\": [\\n {\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"CasterName\\": \\"liveCaster****\\",\\n \\"CasterTemplate\\": \\"lp_ld\\",\\n \\"ChannelEnable\\": 1,\\n \\"ChargeType\\": \\"PrePaid\\",\\n \\"CreateTime\\": \\"2017-08-30 12:02:57.0\\",\\n \\"Duration\\": \\"1:02:33\\",\\n \\"ExpireTime\\": \\"2018-08-30 12:02:57.0\\",\\n \\"LastModified\\": \\"2021-12-01T05:08:45Z\\",\\n \\"NormType\\": 1,\\n \\"PurchaseTime\\": \\"2017-08-30 12:02:57.0\\",\\n \\"StartTime\\": \\"2017-08-30 18:02:57.0\\",\\n \\"Status\\": 1,\\n \\"ClientTokenId\\": \\"53200b81-b761-4c10-842a-a0726d97****\\\\n\\",\\n \\"Tags\\": {\\n \\"tag\\": [\\n {\\n \\"TagKey\\": \\"TestKey\\",\\n \\"TagValue\\": \\"TestValue\\"\\n }\\n ]\\n },\\n \\"ResourceGroupId\\": \\"rg-acfmz******\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b******\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 5c6a2a0df228-4a64- af62-20e91b9676b3\\n \\n 1\\n 2017-08-30 12:02:57.0\\n 2018-08-30 12:02:57.0\\n 2017-08-30 12:02:57.0\\n liveCaster****\\n PrePaid\\n lp_ld\\n LIVEPRODUCER_POST-cn-0pp1czt****\\n 1\\n 2021-12-01T05:08:45Z\\n 2017-08-30 18:02:57.0\\n 1\\n 1:02:33\\n \\n","errorExample":""}]', - 'title' => '查询导播台列表', - 'description' => '先通过[CreateCaste接口](~~2848012~~)创建导播台,再调用本接口查询导播台列表。导播台的状态分为空闲和导播中 。'."\n" - ."\n" - .'> '."\n" - .'> - 调用该接口的账号需要先[开通直播服务](https://live.console.aliyun.com/#/overview)'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 1,\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Order\\": \\"Asc\\",\\n \\"TotalPage\\": 11,\\n \\"PageSize\\": 2,\\n \\"TotalNum\\": 6,\\n \\"LiveSnapshotDetectPornConfigList\\": {\\n \\"LiveSnapshotDetectPornConfig\\": [\\n {\\n \\"OssObject\\": \\" {liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"Interval\\": 80,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"Scenes\\": {\\n \\"scene\\": [\\n \\"porn\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n Asc\\n 11\\n 2\\n 6\\n \\n \\n {liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg\\n liveApp****\\n 80\\n liveBucket****\\n example.com\\n cn-oss-****.aliyuncs.com\\n porn\\n \\n \\n","errorExample":""}]', + 'title' => '查询直播审核配置', + 'description' => '- 先获取主播流域名,再调用本接口查询直播审核配置。本接口目前支持的排序方式为升序和降序。'."\n" ."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeCasterStreamUrl' => [ - 'summary' => '查询导播台流地址。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveSnapshotDetectPornConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveSnapshotDetectPornConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveSnapshotNotifyConfig' => [ + 'summary' => '获取截图回调配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -33096,36 +26677,18 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID,请确保传入的CasterId是正确的。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'www.yourdomain***.com'], ], ], 'responses' => [ @@ -33133,228 +26696,82 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'CasterStreams' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'CasterStream' => [ - 'description' => '导播台流信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'OutputType' => [ - 'description' => '是否正式输出。 '."\n" - .' '."\n" - .'- **0**:输出预览。'."\n" - .'- **1**:输出正式。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RtmpUrl' => [ - 'description' => 'Rtmp地址。', - 'type' => 'string', - 'example' => 'rtmp://live/caster/example.edu', - ], - 'SceneId' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'example' => '23ca74e0-aca3-4e7a-8561-9d96f525****', - ], - 'StreamInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'StreamInfo' => [ - 'description' => '播放地址列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'OutputStreamUrl' => [ - 'description' => '播放地址。', - 'type' => 'string', - 'example' => 'http://out/caster/example.net', - ], - 'TranscodeConfig' => [ - 'description' => '转码配置。 取值:'."\n" - .' '."\n" - .'- **lsd**:标清 。'."\n" - .'- **lld**:流畅。'."\n" - .'- **lud**:超清 。'."\n" - .'- **lhd**:高清 。'."\n" - .' ', - 'type' => 'string', - 'example' => 'lld', - ], - 'VideoFormat' => [ - 'description' => '格式。取值:'."\n" - .'- **flv**。'."\n" - .'- **rtmp**。'."\n" - .'- **m3u8**。'."\n" - .'- **artc**'."\n" - ."\n" - .'> 此导播台的播流域名需开通超低延时功能才可返回artc协议的地址。具体开启方法详见[开通超低延时直播功能](~~427722~~)。', - 'type' => 'string', - 'example' => 'flv', - ], - ], - ], - ], - ], - ], - 'StreamUrl' => [ - 'description' => '输出流地址。', - 'type' => 'string', - 'example' => 'http://live/caster/example.org', - ], - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E6******', - ], - 'Total' => [ - 'description' => '数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'www.yourdomain***.com'], + 'NotifyAuthKey' => ['description' => '回调鉴权密钥。', 'type' => 'string', 'example' => 'yourkey'], + 'NotifyReqAuth' => ['description' => '回调鉴权开关。取值:'."\n" + ."\n" + .'- **yes**:开启。'."\n" + ."\n" + .'- **no**:关闭。', 'type' => 'string', 'example' => 'yes'], + 'NotifyUrl' => ['description' => '回调URL', 'type' => 'string', 'example' => 'http://callback.yourdomain***.com'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5056369B-D337-499E-B8B7-B761BD37B08A'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidScene.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ], + 'title' => '获取截图回调配置', + 'description' => '本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveSnapshotNotifyConfig'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveSnapshotNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"CasterStreams\\": {\\n \\"CasterStream\\": [\\n {\\n \\"OutputType\\": 1,\\n \\"RtmpUrl\\": \\"rtmp://live/caster/example.edu\\",\\n \\"SceneId\\": \\"23ca74e0-aca3-4e7a-8561-9d96f525****\\",\\n \\"StreamInfos\\": {\\n \\"StreamInfo\\": [\\n {\\n \\"OutputStreamUrl\\": \\"http://out/caster/example.net\\",\\n \\"TranscodeConfig\\": \\"lld\\",\\n \\"VideoFormat\\": \\"flv\\"\\n }\\n ]\\n },\\n \\"StreamUrl\\": \\"http://live/caster/example.org\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E6******\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n \\n 1\\n rtmp://live/caster/example.edu\\n 23ca74e0-aca3-4e7a-8561-9d96f525****\\n \\n http://out/caster/example.net\\n lld\\n flv\\n \\n http://live/caster/example.org\\n \\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n 1\\n","errorExample":""}]', - 'title' => '查询导播台流信息列表', - 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口查询导播台流地址,否则会返回InvalidScene.NotFound错误。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"www.yourdomain***.com\\",\\n \\"NotifyAuthKey\\": \\"yourkey\\",\\n \\"NotifyReqAuth\\": \\"yes\\",\\n \\"NotifyUrl\\": \\"http://callback.yourdomain***.com\\",\\n \\"RequestId\\": \\"5056369B-D337-499E-B8B7-B761BD37B08A\\"\\n}","errorExample":""},{"type":"xml","example":"\\n yes\\n 5056369B-D337-499E-B8B7-B761BD37B08A\\n yourkey\\n www.yourdomain***.com\\n http://callback.yourdomain***.com\\n","errorExample":""}]', ], - 'CopyCaster' => [ - 'summary' => '复制导播台,复制指定导播台并返回新导播台实例。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLiveStreamAuthChecking' => [ + 'summary' => '查询当前在线流的鉴权。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'CasterName', - 'in' => 'query', - 'schema' => [ - 'description' => '新导播台名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'caster001', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'SrcCasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '原导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '直播推流域名或播流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'ClientToken', + 'name' => 'Url', 'in' => 'query', - 'schema' => [ - 'description' => '用户生成的请求token。用于保证请求的幂等性。'."\n" - ."\n" - .'由客户端生成该参数值,要保证在不同请求间唯一,最大值不超过64个ASCII字符。', - 'type' => 'string', - 'required' => true, - 'example' => '53200b81-b761-4c10-842a-a0726d97****', - ], + 'schema' => ['description' => '完整的推流地址或播放地址。您可用[地址生成器](~~197400~~)生成。', 'type' => 'string', 'required' => true, 'example' => 'http://example.com/live/test.flv?auth_key=1664248******'], ], ], 'responses' => [ @@ -33362,376 +26779,202 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '新导播台ID。', - 'type' => 'string', - 'example' => '1909f043-e3d3-49e9-82d6-4329ec4a****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'Description' => ['description' => '鉴权不通过的错误信息。', 'type' => 'string', 'example' => 'INVALID AUTH_KEY'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16F08B4E-14FD-5D72-AB2F-BAFA4C4D57F1'], + 'Status' => ['description' => '鉴权是否有效。'."\n" + .'- pass:有效。'."\n" + .'- false:无效。', 'type' => 'string', 'example' => 'pass'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidClientToken.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'CasterNumberExceed', - 'errorMessage' => '%s, please check and try again later.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ], + 'title' => '查询流鉴权', + 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseParamsDescription' => '### 鉴权不通过原因说明'."\n" + .'| 名称 | 描述 |'."\n" + .'|---------------|--------|'."\n" + .'| INVALID AUTH_KEY| 鉴权URL的参数auth_key无效。|'."\n" + .'| INVALID TIMESTAMP| 鉴权URL的时间无效。|'."\n" + .'|INVALID ALIAUTH| 配置的鉴权方式无效。|'."\n" + .'| INVALID MD5HASH| 通过MD5算法计算出的字符串无效。|'."\n", + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamAuthChecking'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamAuthChecking', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"1909f043-e3d3-49e9-82d6-4329ec4a****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t1909f043-e3d3-49e9-82d6-4329ec4a****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"CasterId\\": \\"1909f043-e3d3-49e9-82d6-4329ec4a0293\\"\\n}"}]', - 'title' => '复制导播台', - 'description' => '调用本接口复制导播台,复制指定导播台并返回新导播台实例。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"INVALID AUTH_KEY\\",\\n \\"RequestId\\": \\"16F08B4E-14FD-5D72-AB2F-BAFA4C4D57F1\\",\\n \\"Status\\": \\"pass\\"\\n}","errorExample":""},{"type":"xml","example":"\\n pass\\n \\n 16F08B4E-14FD-5D72-AB2F-BAFA4C4D57F1\\n","errorExample":""}]', ], - 'StartCaster' => [ - 'summary' => '启动导播台。若PVW、PGM场景不存在则创建,启动PVW、PGM场景,启动底层音视频处理任务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLiveStreamBitRateData' => [ + 'summary' => '查询RTMP协议的直播流在设置时间范围内的一组帧率和码率,适用于获取历史数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '推流域名。'."\n" + .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。'."\n" + .'> - 可以通过调用 DescribeLiveUserDomains API获取可用域名列表。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'CasterId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '80787064-1c94-4dc1-85ce-9409960a****', - ], + 'schema' => ['description' => '流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '流的名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2017-12-21T08:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> '."\n" + .'> - EndTime要大于StartTime,并且EndTime与StartTime间隔最多为30天', 'type' => 'string', 'required' => false, 'example' => '2017-12-22T08:00:00Z'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '导播台信息。', 'type' => 'object', 'properties' => [ - 'PgmSceneInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SceneInfo' => [ - 'description' => 'PGM场景信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'PGM场景信息列表。', - 'type' => 'object', - 'properties' => [ - 'SceneId' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', - ], - 'StreamInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'StreamInfo' => [ - 'description' => '旁路输出播放地址列表。', - 'type' => 'array', - 'items' => [ - 'description' => '旁路输出播放地址列表。', - 'type' => 'object', - 'properties' => [ - 'OutputStreamUrl' => [ - 'description' => '播放地址。', - 'type' => 'string', - 'example' => 'rtmp://abclive/caster/example.net', - ], - 'TranscodeConfig' => [ - 'description' => '转码配置。 取值:'."\n" - .' '."\n" - .'- **lsd**:标清。'."\n" - .'- **lld**:流畅。'."\n" - .'- **lud**:超清。'."\n" - .'- **lhd**:高清。', - 'type' => 'string', - 'example' => 'lld', - ], - 'VideoFormat' => [ - 'description' => '格式。取值:'."\n" - .'- **flv**。'."\n" - .'- **rtmp**。'."\n" - .'- **m3u8**。', - 'type' => 'string', - 'example' => 'flv', - ], - ], - ], - ], - ], - ], - 'StreamUrl' => [ - 'description' => '导播台PGM场景对应播放流地址,非旁路输出流地址。', - 'type' => 'string', - 'example' => 'rtmp://abclive/caster/example.edu', - ], - ], - ], - ], - ], - ], - 'PvwSceneInfos' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'FrameRateAndBitRateInfos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'SceneInfo' => [ - 'description' => 'PVW场景信息列表。', + 'FrameRateAndBitRateInfo' => [ + 'description' => '各直播流的帧率、码率信息。', 'type' => 'array', 'items' => [ - 'description' => 'PVW场景信息列表。', + 'description' => '各直播流的帧率、码率信息。', 'type' => 'object', 'properties' => [ - 'SceneId' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', - ], - 'StreamUrl' => [ - 'description' => '导播台PVW场景对应播放流地址,非旁路输出流地址。', - 'type' => 'string', - 'example' => 'rtmp://abclive/caster/example.net', - ], + 'Time' => ['description' => '统计时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2016-09-13T16:04:00Z'], + 'VideoFrameRate' => ['description' => '直播流的视频帧率。单位:FPS。', 'type' => 'number', 'format' => 'float', 'example' => '30'], + 'AudioFrameRate' => ['description' => '直播流的音频帧率。单位:FPS。', 'type' => 'number', 'format' => 'float', 'example' => '100'], + 'StreamUrl' => ['description' => '直播流的URL。', 'type' => 'string', 'example' => 'rtmp://guide.aliyundoc.com/liveAppName****/liveSteamName****'], + 'BitRate' => ['description' => '直播流的码率。单位:Bps。', 'type' => 'number', 'format' => 'float', 'example' => '600'], ], ], ], ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '6EBD1AC4-C34D-4AE1-963E-B688A228BE31', + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidShowList.EmptyList', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectSceneStatus', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectCasterStatus.Cease', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectCasterStatus.Expire', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectCasterStatus.Inuse', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.Inuse', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectChannel.Disable', - 'errorMessage' => '%s', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s', - ], - ], - 403 => [ - [ - 'errorCode' => 'UserQuotaExceed', - 'errorMessage' => '%s', - ], - ], - [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidTranscode.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidDelay.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidCasterTemplate.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidConfiguration.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidResource.NotFound', - 'errorMessage' => '%s', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s', - ], + ['errorCode' => 'InvalidAppName.Malformed', 'errorMessage' => 'Specified AppName is malformed.', 'description' => ''], + ['errorCode' => 'InvalidStreamName.Malformed', 'errorMessage' => 'Specified StreamName is malformed.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'StartTime or EndTime is miss match.', 'description' => ''], + ['errorCode' => 'InvalidStreamNumber.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '流数量无效,请检查后重试。'], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'StartTime和EndTime间隔无效,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PgmSceneInfos\\": {\\n \\"SceneInfo\\": [\\n {\\n \\"SceneId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e86****\\",\\n \\"StreamInfos\\": {\\n \\"StreamInfo\\": [\\n {\\n \\"OutputStreamUrl\\": \\"rtmp://abclive/caster/example.net\\",\\n \\"TranscodeConfig\\": \\"lld\\",\\n \\"VideoFormat\\": \\"flv\\"\\n }\\n ]\\n },\\n \\"StreamUrl\\": \\"rtmp://abclive/caster/example.edu\\"\\n }\\n ]\\n },\\n \\"PvwSceneInfos\\": {\\n \\"SceneInfo\\": [\\n {\\n \\"SceneId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e86****\\",\\n \\"StreamUrl\\": \\"rtmp://abclive/caster/example.net\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\n\\n \\n b5f8c837-ceeb-424f-b30b-68e94e86****\\n \\n rtmp://abclive/caster/example.net\\n \\n\\n\\n \\n b5f8c837-ceeb-424f-b30b-68e94e86****\\n rtmp://abclive/caster/example.edu\\n \\n \\n rtmp://abclive/caster/example.net\\n flv\\n lld\\n \\n \\n \\n\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"PvwSceneInfos\\": [\\n {\\n \\"SceneId\\":\\"b5f8c837-ceeb-424f-b30b-68e94e864995\\",\\n \\"StreamUrl\\":\\"rtmp://XXXXXX/caster/1975ee99db904ebb83908d43bc878188?auth_key=1506396160-0-0-063397072a9980fd418d43eb00e02e09\\"\\n }\\n ],\\n \\"PgmSceneInfos\\": [\\n {\\n \\"SceneId\\":\\"b5f8c837-ceeb-424f-b30b-68e94e864996\\",\\n \\"StreamUrl\\":\\"rtmp://XXXXXX/caster/1975ee99db904ebb83908d43bc878188?auth_key=1506396160-0-0-063397072a9980fd418d43eb00e02e10\\",\\n \\"StreamInfos\\": [\\n {\\n \\"VideoFormat\\": \\"flv\\",\\n \\"OutputStreamUrl\\": \\"http://XXXXXX/caster/fb628e2469f94f2aa2c0c219af8b2527_lld.flv?auth_key=1506396160-0-0-7de771a77102680861853af862d5eaf0\\",\\n \\"TranscodeConfig\\": \\"lld\\"\\n },\\n {\\n \\"VideoFormat\\": \\"rtmp\\",\\n \\"OutputStreamUrl\\": \\"rtmp://XXXXXX/caster/fb628e2469f94f2aa2c0c219af8b2527_lld?auth_key=1506396160-0-0-77ed32cd82ed32ccd51a832b5765814c\\",\\n \\"TranscodeConfig\\": \\"lld\\"\\n },\\n {\\n \\"VideoFormat\\": \\"m3u8\\",\\n \\"OutputStreamUrl\\": \\"http://XXXXXX/caster/fb628e2469f94f2aa2c0c219af8b2527.m3u8?auth_key=1506396160-0-0-d51f0512dcf76aa749f79f53ae6421d2\\",\\n \\"TranscodeConfig\\": \\"lld\\"\\n }\\n ]\\n }\\n ]\\n}"}]', - 'title' => '启动导播台', - 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口启动导播台。若PVW、PGM场景不存在则创建,启动PVW、PGM场景,启动底层音视频处理任务。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"FrameRateAndBitRateInfos\\": {\\n \\"FrameRateAndBitRateInfo\\": [\\n {\\n \\"Time\\": \\"2016-09-13T16:04:00Z\\",\\n \\"VideoFrameRate\\": 30,\\n \\"AudioFrameRate\\": 100,\\n \\"StreamUrl\\": \\"rtmp://guide.aliyundoc.com/liveAppName****/liveSteamName****\\",\\n \\"BitRate\\": 600\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n \\n \\n 30\\n \\n 600\\n 100\\n rtmp://guide.aliyundoc.com/liveAppName****/liveSteamName****\\n \\n \\n","errorExample":""}]', + 'title' => '查询RTMP协议直播流的帧率和码率', + 'description' => '调用本接口查询RTMP协议的直播流在设置时间范围内的一组帧率和码率,适用于获取历史数据。'."\n" ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'StopCaster' => [ - 'summary' => '停止导播台。停止PVW(预览场景)、PGM(正式输出场景)场景。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamBitRateData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamBitRateData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveStreamCount' => [ + 'summary' => '获取直播流的实时在线原始流和转码流流数信息。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID,请确保传入的CasterId是正确的。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '80787064-1c94-4dc1-85ce-9409960a****', - ], + 'schema' => ['description' => '主播流域名。'."\n" + .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -33739,111 +26982,118 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'FCFFE4A4-F34F-4EEF-B401-36A01689AFBC'], + 'StreamCountInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamCountInfo' => [ + 'description' => '流信息统计内容。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => ' 实时流类型。取值:'."\n" + ."\n" + .'- **raw**:原始流。'."\n" + .'- **trans**:转码流。', 'type' => 'string', 'example' => 'raw'], + 'Count' => ['description' => '在线流数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '3'], + 'Limit' => ['description' => '并发推流数量限制,只有白名单用户才显示。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'StreamCountDetails' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamCountDetail' => [ + 'description' => '流统计信息详情。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'VideoDataRate' => ['description' => '视频码率,该字段只有转码流数量统计时才有。', 'type' => 'integer', 'format' => 'int64', 'example' => '390'], + 'Format' => ['description' => '视频编码格式。取值:'."\n" + ."\n" + .'- **h264**。'."\n" + .'- **h265**。', 'type' => 'string', 'example' => 'h264'], + 'Count' => ['description' => '在线流数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectSceneStatus', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidScene.NotFound', - 'errorMessage' => '%s', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '停止导播台', - 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口停止导播台。停止PVW(预览场景)、PGM(正式输出场景)场景。'."\n" + 'title' => '查询在线直播流数量', + 'description' => '先获取主播流域名,再调用本接口获取直播流的实时在线原始流和转码流流数信息。调用接口返回的视频编码格式为h264和h265。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为1次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteCaster' => [ - 'summary' => '调用DeleteCaster删除导播台。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamCount'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamCount', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"FCFFE4A4-F34F-4EEF-B401-36A01689AFBC\\",\\n \\"StreamCountInfos\\": {\\n \\"StreamCountInfo\\": [\\n {\\n \\"Type\\": \\"raw\\",\\n \\"Count\\": 3,\\n \\"Limit\\": 10,\\n \\"StreamCountDetails\\": {\\n \\"StreamCountDetail\\": [\\n {\\n \\"VideoDataRate\\": 390,\\n \\"Format\\": \\"h264\\",\\n \\"Count\\": 2\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n FCFFE4A4-F34F-4EEF-B401-36A01689AFBC\\n \\n raw\\n 3\\n 10\\n \\n 390\\n h264\\n 2\\n \\n \\n","errorExample":""}]', + ], + 'DescribeLiveStreamDelayConfig' => [ + 'summary' => '调用DescribeLiveStreamDelayConfig查询直播延迟时间。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '106904', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID,请确保传入的CasterId是正确的。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '您的播放域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -33851,371 +27101,473 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。可作为添加导播台视频资源、添加导播台布局、查询导播台布局列表、添加导播台组件和添加导播台节目单的请求参数。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '785C9CB0-EB8A-4912-BBF2-966BEFD32DC3'], + 'LiveStreamHlsDelayConfig' => [ + 'description' => 'HLS延迟。', + 'type' => 'object', + 'properties' => [ + 'Delay' => ['description' => '播放延迟时间。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'Level' => ['description' => '延迟级别。取值:'."\n" + ."\n" + .'- **short**:Delay小于等于2秒。'."\n" + ."\n" + .'- **medium**:Delay大于2秒,且小于等于4秒。'."\n" + ."\n" + .'- **long**:Delay大于4秒。', 'type' => 'string', 'example' => 'short'], + ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'LiveStreamFlvDelayConfig' => [ + 'description' => 'FLV延迟。', + 'type' => 'object', + 'properties' => [ + 'Delay' => ['description' => '播放延迟时间。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'Level' => ['description' => '延迟级别。取值:'."\n" + ."\n" + .'- **short**:Delay小于等于2秒。'."\n" + ."\n" + .'- **medium**:Delay大于2秒,且小于等于4秒。'."\n" + ."\n" + .'- **long**:Delay大于4秒。', 'type' => 'string', 'example' => 'medium'], + ], + ], + 'LiveStreamRtmpDelayConfig' => [ + 'description' => 'RTMP延迟。', + 'type' => 'object', + 'properties' => [ + 'Delay' => ['description' => '播放延迟时间。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '4'], + 'Level' => ['description' => '延迟级别。取值:'."\n" + ."\n" + .'- **short**:Delay小于等于2秒。'."\n" + ."\n" + .'- **medium**:Delay大于2秒,且小于等于4秒。'."\n" + ."\n" + .'- **long**:Delay大于4秒。', 'type' => 'string', 'example' => 'short'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvaildCaster.Delete', - 'errorMessage' => 'Caster can not be deleted when ChargeType is Prepaid', - ], - [ - 'errorCode' => 'IncorrectCasterStatus.Inuse', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s', - ], - ], - 403 => [ - [ - 'errorCode' => 'PermissionDenied', - 'errorMessage' => '%s', - ], + 'errorCodes' => [], + 'title' => '查询直播延迟时间', + 'description' => '先获取播流域名,再调用本接口查询直播延迟时间。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为1000次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'extraInfo' => '| HttpCode | 错误码|错误信息| 描述|'."\n" + .'|---------------|--------|'."\n" + .'| 500| Internal|The request processing has failed due to some unknown error.| 后台发生未知错误。|'."\n" + .'| 404| InvalidDomain.NotFound|The domain provided does not exist in our records.| 当前账户下未查到域名。|'."\n" + .'| 403| IllegalOperation|Illegal domain operate is not permitted.| 不支持当前操作,如:非直播类域名。|'."\n" + ."\n", + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeLiveStreamDelayConfig'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\na2b8e671-2fe5-4642-a2ec-bf93880e****\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e1a49\\"\\n}"}]', - 'title' => '删除导播台', - 'description' => '- 只有在导播台关闭状态才能删除,否则会删除失败。'."\n" - .'- 删除导播台会把相关的场景、组件、布局一起删掉。'."\n" - .'- 删除之后不可恢复。 '."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"785C9CB0-EB8A-4912-BBF2-966BEFD32DC3\\",\\n \\"LiveStreamHlsDelayConfig\\": {\\n \\"Delay\\": 3,\\n \\"Level\\": \\"short\\"\\n },\\n \\"LiveStreamFlvDelayConfig\\": {\\n \\"Delay\\": 5,\\n \\"Level\\": \\"medium\\"\\n },\\n \\"LiveStreamRtmpDelayConfig\\": {\\n \\"Delay\\": 4,\\n \\"Level\\": \\"short\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 785C9CB0-EB8A-4912-BBF2-966BEFD32DC3\\n \\n 3\\n short\\n \\n \\n 4\\n short\\n \\n \\n 5\\n medium\\n \\n","errorExample":""}]', ], - 'RestartCaster' => [ - 'summary' => '调用RestartCaster重启导播台。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLiveStreamDetailFrameRateAndBitRateData' => [ + 'summary' => '查询RTMP协议直播流的详细音视频帧率码率。', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '215287', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '80787064-1c94-4dc1-85ce-9409960a****', - ], + 'schema' => ['description' => '您的推流域名或播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '直播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'AppName'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => true, 'example' => 'exampleStreamName'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2017-12-21T08:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> StartTime 和 EndTime 指定不合法,或者不指定 StartTime 和 EndTime 时,默认读取过去 1 小时的数据。', 'type' => 'string', 'required' => false, 'example' => '2017-12-22T08:00:00Z'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '6EBD1AC4-C34D-4AE1-963E-B688A228BE31', + 'FrameRateAndBitRateInfos' => [ + 'description' => '每个时间间隔的详细音视频帧率码率数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AudioBitRate' => ['description' => '直播流的音频码率。单位:Bps。', 'type' => 'number', 'format' => 'float', 'example' => '200'], + 'AudioFrameRate' => ['description' => '直播流的音频帧率。单位:FPS。', 'type' => 'number', 'format' => 'float', 'example' => '60'], + 'BitRate' => ['description' => '直播流的码率。单位:Bps。', 'type' => 'number', 'format' => 'float', 'example' => '1420'], + 'StreamUrl' => ['description' => '直播流的URL。', 'type' => 'string', 'example' => 'rtmp://example.com/AppName/exampleStreamName'], + 'Time' => ['description' => '统计时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2016-09-13T16:04:00Z'], + 'VideoBitRate' => ['description' => '直播流的视频码率。单位:Bps。', 'type' => 'number', 'format' => 'float', 'example' => '1200'], + 'VideoFrameRate' => ['description' => '直播流的视频帧率。单位:FPS。', 'type' => 'number', 'format' => 'float', 'example' => '30'], + ], + 'description' => '', + ], ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectSceneStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectCasterStatus.Idle', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidNormType.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectCasterStatus', - 'errorMessage' => '%s, please check and try again later.', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询RTMP协议直播流的详细音视频帧率码率', + 'description' => '- 调用本接口查询RTMP协议的直播流在设置时间范围内的一组音视频帧率和音视频码率。'."\n" + .'- 本接口为监控数据接口,数据采集处理方式不同于计费,不能用于计算用量进行对账参考。'."\n" + .'- 适用于获取90天内的历史数据。'."\n" + .'- 接口数据延时在3-5分钟。'."\n" + .'- 单次请求的时间跨度最大为1小时。', + 'responseParamsDescription' => '> 直播流的总码率与音频码率、视频码率的计算采集方式是不同的,音频码率与视频码率的数值之和不一定与总码率相等。本接口返回数据仅用于参考和监控之用,不能用于计算用量和对账。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamDetailFrameRateAndBitRateData'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamDetailFrameRateAndBitRateData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidScene.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"FrameRateAndBitRateInfos\\": [\\n {\\n \\"AudioBitRate\\": 200,\\n \\"AudioFrameRate\\": 60,\\n \\"BitRate\\": 1420,\\n \\"StreamUrl\\": \\"rtmp://example.com/AppName/exampleStreamName\\",\\n \\"Time\\": \\"2016-09-13T16:04:00Z\\",\\n \\"VideoBitRate\\": 1200,\\n \\"VideoFrameRate\\": 30\\n }\\n ],\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 200\\n 60\\n 1420\\n rtmp://example.com/AppName/exampleStreamName\\n \\n 1200\\n 30\\n \\n BC858082-736F-4A25-867B-E5B67C85ACF7\\n","errorExample":""}]', + ], + 'DescribeLiveStreamHistoryUserNum' => [ + 'summary' => '调用DescribeLiveStreamHistoryUserNum查询直播流历史在线人数。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '直播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流名。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> 支持最大的查询范围是最近**30**天。', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。需晚于开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> StartTime和EndTime时间间隔在一天内,且EndTime不超过当前时间。', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F5FF8'], + 'LiveStreamUserNumInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamUserNumInfo' => [ + 'description' => '直播流历史在线人数信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UserNum' => ['description' => '当前时间点人数。', 'type' => 'string', 'example' => '1'], + 'StreamTime' => ['description' => '流时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2017-10-20T06:20:00Z'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\n","errorExample":""}]', - 'title' => '重启导播台', - 'description' => '- 目前仅支持新播单型(轮播台)和通用型导播台,暂不支持虚拟演播厅。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time or current time.', 'description' => ''], + ], + ], + 'title' => '查询直播流历史在线人数', + 'description' => '- 调用本接口查询直播流历史在线人数,整体数据延时2~5分钟。'."\n" ."\n" - .'- 重启导播台后,会重新加载当前配置(如分辨率、横竖屏切换等),恢复之前的播放状态。'."\n" + .'- 该接口仅支持查询FLV和RTMP流的历史在线人数。'."\n" ."\n" + .'- 该接口不支持查询转码流的播放人数。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'UpdateCasterResourceGroup' => [ - 'summary' => '调用UpdateCasterResourceGroup更新导播台所在资源组。', - 'methods' => [ - 'post', - 'get', + ."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamHistoryUserNum'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamHistoryUserNum', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F5FF8\\",\\n \\"LiveStreamUserNumInfos\\": {\\n \\"LiveStreamUserNumInfo\\": [\\n {\\n \\"UserNum\\": \\"1\\",\\n \\"StreamTime\\": \\"2017-10-20T06:20:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n \\n 2017-10-20T06:20:00Z\\n 1\\n \\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F5FF8\\n","errorExample":"{\\n \\"LiveStreamUserNumInfos\\":{\\n \\"LiveStreamUserNumInfo\\":[\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:20:00Z\\",\\n \\"UserNum\\":0\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:19:00Z\\",\\n \\"UserNum\\":0\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:18:00Z\\",\\n \\"UserNum\\":15\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:17:00Z\\",\\n \\"UserNum\\":0\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:16:00Z\\",\\n \\"UserNum\\":0\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:15:00Z\\",\\n \\"UserNum\\":6\\n },\\n {\\n \\"StreamTime\\":\\"2017-10-20T06:14:00Z\\",\\n \\"UserNum\\":0\\n }\\n ]\\n },\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F5FF8\\"\\n}"}]', + ], + 'DescribeLiveStreamMerge' => [ + 'summary' => '查询主备合流配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '233607', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveBLHP6S'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'NewResourceGroupId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '待转入的新资源组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'rg-aekz7***34cn5ty', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'CasterId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a41300c9-23d3-470e-b9bd-****663e0700', - ], + 'schema' => ['description' => '合流输出App名称。您可在[主备合流配置](~~606583~~)页面查看。', 'type' => 'string', 'required' => false, 'example' => 'app'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '合流输出Stream名称。您可在[主备合流配置](~~606583~~)页面查看。', 'type' => 'string', 'required' => false, 'example' => 'StreamName'], + ], + [ + 'name' => 'Protocol', + 'in' => 'query', + 'schema' => ['description' => '播流协议,取值:'."\n" + ."\n" + .'- **rtmp**(默认值)'."\n" + ."\n" + .'- **rtc**', 'type' => 'string', 'required' => false, 'example' => 'rtmp'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0D776BD1-****-59D0-9A1B-272832D999F6', + 'LiveStreamMergeList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamMerge' => [ + 'description' => '直播流信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '直播流信息列表。', + 'type' => 'object', + 'properties' => [ + 'AppName' => ['description' => '合流输出App名称。', 'type' => 'string', 'example' => 'app'], + 'AppUsing' => ['description' => '当前使用的App。', 'type' => 'string', 'example' => 'app1'], + 'DomainName' => ['description' => '播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'EndTime' => ['description' => '合流结束时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2020-05-29T01:00:00Z'], + 'ExtraInAppStreams' => ['description' => '合流输入第3路-第N路的app和stream。', 'type' => 'string', 'example' => 'app3/stream3,app4/stream4,app5/stream5,…,appN/streamN'], + 'InAppName1' => ['description' => '合流输入主流应用名称。', 'type' => 'string', 'example' => 'app1'], + 'InAppName2' => ['description' => '合流输入备流应用名称。', 'type' => 'string', 'example' => 'app2'], + 'InStreamName1' => ['description' => '合流输入主流直播流名称。', 'type' => 'string', 'example' => 'InStream1'], + 'InStreamName2' => ['description' => '合流输入备流直播流名称。', 'type' => 'string', 'example' => 'stream2'], + 'Protocol' => ['description' => '直播流协议。', 'type' => 'string', 'example' => 'rtmp'], + 'StartTime' => ['description' => '合流开始时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2020-05-29T00:00:00Z'], + 'StreamName' => ['description' => '合流输出Stream名称。', 'type' => 'string', 'example' => 'StreamName'], + 'StreamUsing' => ['description' => '当前使用的Stream。', 'type' => 'string', 'example' => 'InStream1'], + 'LiveMerger' => [ + 'description' => '当前任务是否使用merge引擎。', + 'type' => 'string', + 'enumValueTitles' => ['off' => 'off', 'on' => 'on'], + 'example' => 'on', + ], + 'MergeParameters' => ['description' => '查询任务所对应的切流相关的配置参数'."\n" + ."\n" + .'1. 明确发生断流时(eof 或 net err),立刻触发主备切换;'."\n" + .'2. 最近5秒内卡顿率超过60%,立刻触发主备切换;'."\n" + .'3. 拉流超时,持续2秒收不到帧数据,触发主备切换;'."\n" + .'4. 未断流、未发生卡顿,但是最近ali_max_no_frame_timeout时间内的平均帧率 小于 ali_low_frame_rate_threshold,立刻触发主备切换。如果用户设置了 ali_max_no_frame_timeout 参数,则3的超时时间会同步更新成 ali_max_no_frame_timeout。'."\n" + ."\n" + .'开启 block_all_jitter 则2、3、4不生效。'."\n" + ."\n" + .'取值范围: '."\n" + ."\n" + .'- 10 > ali_max_no_frame_timeout > 2;'."\n" + .'- 200 > ali_low_frame_rate_threshold > 1 ;'."\n" + .'- block_all_jitter的值为0(默认关闭)或 1(开启)。', 'type' => 'string', 'example' => 'ali_low_frame_rate_threshold=10&ali_max_no_frame_timeout=5&block_all_jitter=0'."\n"], + 'SwitchMode' => ['type' => 'string', 'description' => ''], + ], + ], + ], + ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter.PurchaseTime', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.ExpireTime', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidChargeType.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidChargeType.PostSupport', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidCasterTemplate.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidParameter.ChargeType', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidPeriod.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidClientToken.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'IncorrectCasterStatus', - 'errorMessage' => '%s', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'QuotaExceeded.Merge', 'errorMessage' => 'Exceed max merge count limit', 'description' => ''], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], ], - [ - [ - 'errorCode' => 'CasterNumberExceed', - 'errorMessage' => '%s', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], - 403 => [ - [ - 'errorCode' => 'PermissionDenied', - 'errorMessage' => '%s', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LiveStreamMergeList\\": {\\n \\"LiveStreamMerge\\": [\\n {\\n \\"AppName\\": \\"app\\",\\n \\"AppUsing\\": \\"app1\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2020-05-29T01:00:00Z\\",\\n \\"ExtraInAppStreams\\": \\"app3/stream3,app4/stream4,app5/stream5,…,appN/streamN\\",\\n \\"InAppName1\\": \\"app1\\",\\n \\"InAppName2\\": \\"app2\\",\\n \\"InStreamName1\\": \\"InStream1\\",\\n \\"InStreamName2\\": \\"stream2\\",\\n \\"Protocol\\": \\"rtmp\\",\\n \\"StartTime\\": \\"2020-05-29T00:00:00Z\\",\\n \\"StreamName\\": \\"StreamName\\",\\n \\"StreamUsing\\": \\"InStream1\\",\\n \\"LiveMerger\\": \\"on\\",\\n \\"MergeParameters\\": \\"ali_low_frame_rate_threshold=10&ali_max_no_frame_timeout=5&block_all_jitter=0\\\\n\\",\\n \\"SwitchMode\\": \\"\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n app\\n app1\\n example.com\\n 2020-05-29T01:00:00Z\\n app3/stream3,app4/stream4,app5/stream5,…,appN/streamN\\n app1\\n app2\\n InStream1\\n stream2\\n rtmp\\n 2020-05-29T00:00:00Z\\n StreamName\\n InStream1\\n \\n \\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + 'title' => '查询主备合流配置', + 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamMerge'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidParameter.NormType', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidConfiguration.NotFound', - 'errorMessage' => '%s', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamMerge', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0D776BD1-****-59D0-9A1B-272832D999F6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0D776BD1-****-59D0-9A1B-272832D999F6\\n","errorExample":""}]', - 'title' => '更新导播台所在资源组', - 'description' => '## 使用说明'."\n" - .'调用此接口执行更新导播台所在资源组操作时,操作账号需要对原资源组和目标资源组都具备操作权限。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', ], - 'AddCasterVideoResource' => [ - 'summary' => '添加视频源,视频源数量受限于导播台输入路数。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLiveStreamMetricDetailData' => [ + 'summary' => '调用DescribeLiveStreamMetricDetailData查询指定域名流粒度批量数据,单次查询最多返回5000行数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '106832', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ @@ -34225,206 +27577,140 @@ 'description' => '地域ID。', 'type' => 'string', 'required' => false, - 'example' => 'cn-shanghai', + 'enumValueTitles' => ['cn-shenzhen' => 'cn-shenzhen'], + 'example' => 'cn-shenzhen', 'default' => 'cn-shanghai', ], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '- 需要查询的加速域名。仅支持单个域名查询,传多个域名将报错。'."\n" + .'- 不指定AppName和StreamName时,按域名返回所有流粒度的数据。'."\n" + .'- 域名为空时,查询用户下的所有加速域名的聚合数据'."\n" + .'- DomainName不为空且AppName为all和StreamName为all时,返回指定加速域名下的聚合数据。'."\n" + .'- 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'ResourceName', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '视频源名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'test001', - ], + 'schema' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T20:00:00Z'], ], [ - 'name' => 'LocationId', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '用于标识视频源位置。本参数必填。 '."\n" - ."\n" - .'定义布局内画面的引用编号,每个位置至多关联一个资源,格式需符合“RV01~RV12”,即RV+数字,数字范围`[01~99]`。', - 'type' => 'string', - 'required' => false, - 'example' => 'RV01', - ], - ], - [ - 'name' => 'LiveStreamUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '阿里云直播流地址。'."\n" - ."\n" - .'> '."\n" - .' '."\n" - .'- 当视频源类型为直播流时,本参数必填。'."\n" - .' '."\n" - .'- 视频源类型不是直播流时,请求时不要带这个参数。'."\n" - ."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****', - ], - ], - [ - 'name' => 'MaterialId', - 'in' => 'query', - 'schema' => [ - 'description' => '媒资库素材ID。'."\n" - .'>当视频源类型为素材时,本参数才可用且必须传入。'."\n" - .'>'."\n" - ."\n" - .'如果您通过[DescribeCasterConfig接口](~~2848011~~)查询导播台配置信息,请查看DescribeCasterConfig接口调用返回的参数UrgentMaterialId值。'."\n" - ."\n" - .'> UrgentMaterialId值即为媒资库素材ID值。', - 'type' => 'string', - 'required' => false, - 'example' => 'f080575eb5f4427684fc0715159a****', - ], - ], - [ - 'name' => 'VodUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '点播文件地址。'."\n" - .'>当视频源类型为文件视频且视频文件未导入素材库时,本参数才可用。'."\n" - .'>'."\n" - ."\n" - .'>点播文件仅限MP4、FLV、TS格式。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://learn.aliyundoc.com/AppName/StreamName.flv', - ], - ], - [ - 'name' => 'BeginOffset', - 'in' => 'query', - 'schema' => [ - 'description' => '视频文件起始偏移值。单位:毫秒。'."\n" - .'>当视频源类型为文件视频时,本参数才有用。'."\n" - .'>'."\n" - ."\n" - .'> 大于**0**,表示从相对于首帧的偏差时间作为开始读取的位置。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1000', - ], - ], - [ - 'name' => 'EndOffset', - 'in' => 'query', - 'schema' => [ - 'description' => '视频文件结束偏移值。单位:毫秒。'."\n" - .'>当视频源类型为文件视频时,本参数才有用。'."\n" - .'>'."\n" - .' '."\n" - .'- 大于**0**时:从相对于首帧的偏差时间为结束读取的位置。'."\n" - .'- 小于**0**时:相对于最后一帧的偏差时间作为结束读取的位置。 ', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10000', - ], - ], - [ - 'name' => 'RepeatNum', - 'in' => 'query', - 'schema' => [ - 'description' => '播放完后重复继续播放的次数。取值:'."\n" - .'>当视频源类型为文件视频时,本参数才有用。'."\n" - .'>'."\n" - ."\n" - .'- **0**(默认值):不重复播放。'."\n" - .'- **-1**:一直循环重复。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '60', - 'minimum' => '-1', - 'example' => '0', - ], + 'schema' => ['description' => '结束时间需大于起始时间,不能相差超过1天;日期格式按照ISO8601表示法,并使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T21:00:00Z'], ], [ - 'name' => 'PtsCallbackInterval', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => 'PTS回调间隔。单位:毫秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '0', - 'example' => '2000', - ], + 'schema' => ['description' => '应用名称,查询指定应用流粒度的数据。'."\n" + ."\n" + .'>指定StreamName时,必须指定AppName。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ - 'name' => 'FixedDelayDuration', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '该字段对视频进行固定延迟设置,可用于字幕同步。单位ms, 默认取值为0, 取值范围`[0-5000]`。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => '流名称,按照设置的AppName指定StreamName,返回流粒度的数据。'."\n" + ."\n" + .'> 指定StreamName时,必须指定AppName。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], ], [ - 'name' => 'ImageId', + 'name' => 'Protocol', 'in' => 'query', - 'schema' => [ - 'description' => '媒资库图片素材ID。'."\n" - .'> 当视频源类型为图片时,本参数才可用且必须传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'a089175eb5f4427684fc0715159a****', - ], + 'schema' => ['description' => '流协议名,目前支持:**flv**、**hls**、**rtmp**、**rts**和**p2p**。'."\n" + ."\n" + .'支持查询多个协议的数据,不同协议之间用英文逗号(,)分隔。但多个协议的数据不会聚合,按照流的粒度输出。'."\n" + ."\n" + .'> **rts**选项可查询artc协议的超低延时直播流。'."\n" + .'> - 使用rts可能需要额外统计xxx_AliRTS-opu转码流。原因:Web端播超低延时直播时,会生成流名后加上_AliRTS-opus后缀的转码流进行自动转码,产生转码流数据。详细请参见[rts亚秒延时自动转码](~~2948703~~)。', 'type' => 'string', 'required' => false, 'example' => 'flv'], ], [ - 'name' => 'ImageUrl', + 'name' => 'NextPageToken', 'in' => 'query', - 'schema' => [ - 'description' => '图片素材URL。'."\n" - .'>当视频源类型为图片且图片文件未导入素材库时,本参数才可用。支持上传jpg、png格式图片,最大文件不可超过10M。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', - ], + 'schema' => ['description' => '分页查询token,每次查询最多返回5000行数据,当要查询的数据超过5000行时,响应数据会提供下次查询数据的起始索引。请求时传入该token,将从上一次查询结束的下一行继续查询未获取的数据。', 'type' => 'string', 'required' => false, 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67CIBKLw*****'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '查询数据。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', - ], - 'ResourceId' => [ - 'description' => '资源ID。可作为删除导播台视频源,修改导播台视频源的请求参数。', - 'type' => 'string', - 'example' => 'e5542d98-b08c-46bf-83e9-5b09d08c****', + 'DomainName' => ['description' => '查询的加速域名。', 'type' => 'string', 'example' => 'example.com'], + 'EndTime' => ['description' => '结束时间。日期格式按照 ISO8601 表示法,并使用 UTC 时间。格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2015-12-10T21:00:00Z'], + 'NextPageToken' => ['description' => '下一次返回数据的起始索引,当查询的数据未获取完时返回该值。', 'type' => 'string', 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0='], + 'PageSize' => ['description' => '返回数据行数。', 'type' => 'integer', 'format' => 'int32', 'example' => '5000'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E'], + 'StartTime' => ['description' => '开始时间。日期格式按照 ISO8601 表示法,并使用 UTC 时间。格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + 'StreamDetailData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamData' => [ + 'description' => '返回数据组。', + 'type' => 'array', + 'items' => [ + 'description' => '返回数据组。', + 'type' => 'object', + 'properties' => [ + 'AppName' => ['description' => '应用名称。', 'type' => 'string', 'example' => 'app'], + 'Bps' => ['description' => '流每分钟平均带宽,单位:bps。', 'type' => 'number', 'format' => 'float', 'example' => '423304182.66'], + 'Count' => ['description' => '流每分钟总在线人数。', 'type' => 'integer', 'format' => 'int64', 'example' => '423304182'], + 'FlvBps' => ['description' => 'FLV协议带宽,单位:bps。'."\n" + ."\n" + .'> 指定协议不满足时,不返回。', 'type' => 'number', 'format' => 'float', 'example' => '454'], + 'FlvCount' => ['description' => 'FLV协议在线人数。'."\n" + ."\n" + .'> 指定协议不满足时,不返回。', 'type' => 'integer', 'format' => 'int64', 'example' => '32'], + 'FlvTraffic' => ['description' => 'FLV协议流量,单位:Byte。'."\n" + ."\n" + .'> 指定协议不满足时,不返回。', 'type' => 'integer', 'format' => 'int64', 'example' => '1254'], + 'HlsBps' => ['description' => 'HLS协议带宽,单位:bps。'."\n" + ."\n" + .'> 指定协议不满足时,不返回。', 'type' => 'number', 'format' => 'float', 'example' => '4456'], + 'HlsCount' => ['description' => 'HLS协议在线人数。'."\n" + ."\n" + .'> 目前不支持。', 'type' => 'integer', 'format' => 'int64', 'example' => '56'], + 'HlsTraffic' => ['description' => 'HLS协议流量,单位:Byte。'."\n" + ."\n" + .'> 指定协议不满足时,不返回。', 'type' => 'integer', 'format' => 'int64', 'example' => '568'], + 'NewConns' => ['description' => '流每分钟新建连接数。', 'type' => 'string', 'example' => '450'], + 'P2pBps' => ['description' => 'P2P协议带宽,单位:bps。'."\n" + ."\n" + .'>指定协议不满足时,不返回.', 'type' => 'number', 'format' => 'float', 'example' => '6845'], + 'P2pCount' => ['description' => 'P2P协议在线人数。'."\n" + ."\n" + .'> 指定协议不满足时,不返回。', 'type' => 'integer', 'format' => 'int64', 'example' => '78'], + 'P2pTraffic' => ['description' => 'P2P协议流量,单位:Byte。'."\n" + ."\n" + .'> 指定协议不满足时,不返回。', 'type' => 'integer', 'format' => 'int64', 'example' => '4102'], + 'RtmpBps' => ['description' => 'RTMP协议带宽,单位:bps。'."\n" + ."\n" + .'>指定协议不满足时,不返回。', 'type' => 'number', 'format' => 'float', 'example' => '3323'], + 'RtmpCount' => ['description' => 'RTMP协议在线人数。'."\n" + ."\n" + .'> 指定协议不满足时,不返回。', 'type' => 'integer', 'format' => 'int64', 'example' => '63'], + 'RtmpTraffic' => ['description' => 'RTMP协议流量,单位:Byte。'."\n" + ."\n" + .'> 指定协议不满足时,不返回。', 'type' => 'integer', 'format' => 'int64', 'example' => '5568'], + 'RtsBps' => ['description' => 'RTS协议带宽,单位:bps。'."\n" + ."\n" + .'> 指定协议不满足时,不返回。', 'type' => 'number', 'format' => 'float', 'example' => '2361'], + 'RtsCount' => ['description' => 'RTS协议在线人数。'."\n" + ."\n" + .'> 指定协议不满足时,不返回。', 'type' => 'integer', 'format' => 'int64', 'example' => '89'], + 'RtsTraffic' => ['description' => 'RTS协议流量,单位:Byte。'."\n" + ."\n" + .'> 指定协议不满足时,不返回。', 'type' => 'integer', 'format' => 'int64', 'example' => '2322'], + 'StreamName' => ['description' => '流名称。', 'type' => 'string', 'example' => 'test.flv'], + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC 时间。格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + 'Traffic' => ['description' => '流每分钟总流量,单位:Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '423304182'], + ], + ], + ], + ], + 'description' => '', ], ], ], @@ -34432,137 +27718,119 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidLiveStreamUrl.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidMaterialId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidVodUrl.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ResourceNumberExceed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'DuplicateLocationID', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'UnexpectedLocationID', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidPageToken', 'errorMessage' => 'The token of page is invalid.', 'description' => '指定的分页token错误,请传入上次查询返回的正确索引,并确认没有修改您的请求参数。'], + ['errorCode' => 'InvalidAppName.Mismatch', 'errorMessage' => 'The AppName param must be passed.', 'description' => 'AppName参数不匹配,请确认传入了正确的AppName参数。'], + ['errorCode' => 'InvalidStreamProtocol.NotSupport', 'errorMessage' => 'The specified stream protocol is not support.', 'description' => '指定的流协议不支持,请参照文档查询所需的流协议。'], + ['errorCode' => 'InvalidStreamName.LengthTooLong', 'errorMessage' => 'The specified stream name is too long.', 'description' => 'StreamName的长度超过限制,请传入合法的StreamName。'], + ['errorCode' => 'InvalidAppName.LengthTooLong', 'errorMessage' => 'The specified app name is too long.', 'description' => 'AppName的长度超过限制,请传入合法的AppName。'], + ['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'Specified Time is malformed.', 'description' => '指定的时间无效。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"ResourceId\\": \\"e5542d98-b08c-46bf-83e9-5b09d08c****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\te5542d98-b08c-46bf-83e9-5b09d08c****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"ResourceId\\": \\"e5542d98-b08c-46bf-83e9-5b09d08c692f\\"\\n}"}]', - 'title' => '添加导播台视频资源', - 'description' => '请先创建导播台,再调用本接口添加导播台视频源。视频源数量受限于导播台输入路数。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2015-12-10T21:00:00Z\\",\\n \\"NextPageToken\\": \\"UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\",\\n \\"PageSize\\": 5000,\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"StartTime\\": \\"2015-12-10T20:00:00Z\\",\\n \\"StreamDetailData\\": {\\n \\"StreamData\\": [\\n {\\n \\"AppName\\": \\"app\\",\\n \\"Bps\\": 423304182.66,\\n \\"Count\\": 423304182,\\n \\"FlvBps\\": 454,\\n \\"FlvCount\\": 32,\\n \\"FlvTraffic\\": 1254,\\n \\"HlsBps\\": 4456,\\n \\"HlsCount\\": 56,\\n \\"HlsTraffic\\": 568,\\n \\"NewConns\\": \\"450\\",\\n \\"P2pBps\\": 6845,\\n \\"P2pCount\\": 78,\\n \\"P2pTraffic\\": 4102,\\n \\"RtmpBps\\": 3323,\\n \\"RtmpCount\\": 63,\\n \\"RtmpTraffic\\": 5568,\\n \\"RtsBps\\": 2361,\\n \\"RtsCount\\": 89,\\n \\"RtsTraffic\\": 2322,\\n \\"StreamName\\": \\"test.flv\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\",\\n \\"Traffic\\": 423304182\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2015-12-10T21:00:00Z\\n 2015-12-10T20:00:00Z\\n B955107D-E658-4E77-B913-E0AC3D31693E\\n UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\n 5000\\n example.com\\n \\n 4102\\n 3323\\n 4456\\n 6845\\n test.flv\\n 78\\n 423304182\\n 63\\n 89\\n 2361\\n 423304192\\n 568\\n 454\\n 423304182\\n 2322\\n 5568\\n 56\\n app\\n 32\\n 1254\\n 2015-12-10T20:00:00Z\\n 450\\n \\n","errorExample":""}]', + 'title' => '查询指定域名流粒度批量数据', + 'description' => '若指定域名第一次使用此接口进行流粒度数据的查询,需先[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)进行后端配置后方可使用。'."\n" + .'请在工单中提供如下信息:'."\n" + .'- 需要查询的域名。'."\n" + .'- 对应域名下最高并发直播流数。'."\n" + .'- 每个直播流最高并发在线人数。'."\n" + .'- 对应客户端请求包含的协议类型。'."\n" + ."\n" + .'>当前接口将于2025年9月31号不再进行维护,请及时切换到新版流粒度接口[DescribeLiveUserStreamMetricData](~~2948552~~),新版流粒度接口无需后台配置即可使用。>'."\n" + ."\n\n" + .'## 使用限制'."\n" + .'- 默认不支持HLS的在线人数统计。'."\n" + ."\n" + .'- 仅支持单个域名查询。'."\n" + ."\n" + .'- 数据最大查询跨度:24小时。'."\n" + ."\n" + .'- 数据最小查询粒度:1分钟。'."\n" + ."\n" + .'- 数据最大查询范围:31天。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' >视频源类型是根据直播流地址里的资源类型判断的。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteCasterVideoResource' => [ - 'summary' => '删除视频资源。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2023-12-21T06:31:03.000Z', 'description' => '错误码发生变更、请求参数发生变更、响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamMetricDetailData'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamMetricDetailData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveStreamMonitorList' => [ + 'summary' => '查询已创建的监播室列表。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveSM955S'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'MonitorId', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '80787064-1c94-4dc1-85ce-9409960a****', - ], + 'schema' => ['description' => '监播室ID。'."\n" + .'>通过查看[CreateLiveStreamMonitor](~~2848129~~)接口的返回参数获取MonitorId值。若参数为空,默认返回所有监播室合并后的数据。', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], [ - 'name' => 'ResourceId', + 'name' => 'PageNum', 'in' => 'query', - 'schema' => [ - 'description' => '资源ID。如果您通过[AddCasterVideoResource](~~2848020~~)接口添加导播台视频资源,请查看AddCasterVideoResource接口调用返回的参数ResourceId值。', - 'type' => 'string', - 'required' => true, - 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', - ], + 'schema' => ['description' => '当前页数值。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页监播室数值个数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => ['description' => '监播室内状态。取值:'."\n" + ."\n" + .'- 1:监播中。'."\n" + .'- 0:未监播。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'OrderRule', + 'in' => 'query', + 'schema' => ['description' => '启动时间顺序。取值:'."\n" + ."\n" + .'- 0:默认(按启动状态倒序,启动时间不参与排序)。'."\n" + .'- 1:启动时间倒序。'."\n" + .'- 2:启动时间正序。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], ], 'responses' => [ @@ -34570,249 +27838,215 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122C*******', + 'Total' => ['description' => '数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '2234baba-a586-46ea-8bd4-c8f7891abcdef'], + 'LiveStreamMonitorList' => [ + 'description' => '监播室列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'MonitorConfig' => ['description' => '监播告警阈值设置。参数字段如下:'."\n" + .'- fpsLowThres:视频帧率告警阈值,Float类型。'."\n" + .'- brHighThres:音视频码率告警阈值,Float类型。'."\n" + .'- eofDurationThresSec:断流时长检测阈值,Float类型。', 'type' => 'string', 'example' => '"{\\"fpsLowThres\\": 0.6,\\"brLowThres\\": 1.1,\\"eofDurationThresSec\\": 10}"'], + 'Status' => ['description' => '监播室内状态。取值:'."\n" + ."\n" + .'- 1:监播中。'."\n" + .'- 0:未监播。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'MonitorId' => ['description' => '监播室ID。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + 'Domain' => ['description' => '监播输出域名。', 'type' => 'string', 'example' => 'demo.aliyundoc.com'], + 'CallbackUrl' => ['description' => '监播告警通知回调地址。', 'type' => 'string', 'example' => 'http://guide.aliyundoc.com/notify'], + 'AudioFrom' => ['description' => '布局声音来源。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'DingTalkWebHookUrl' => ['description' => '钉群机器人URL。', 'type' => 'string', 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****'], + 'MonitorName' => ['description' => '监播室名称。', 'type' => 'string', 'example' => 'liveMonito****'], + 'StopTime' => ['description' => '停止监播时间,UTC格式。', 'type' => 'string', 'example' => '2017-01-11T12:00:00Z'], + 'StartTime' => ['description' => '开始监播时间,UTC格式。', 'type' => 'string', 'example' => '2017-01-11T12:00:00Z'], + 'OutputTemplate' => ['description' => '监播输出分辨率模板。类型取值:'."\n" + ."\n" + .'- **lp_ld**:流畅。'."\n" + .'- **lp_sd**:标清。'."\n" + .'- **lp_hd**:高清。'."\n" + .'- **lp_ud**:超清。', 'type' => 'string', 'example' => 'lp_ud'], + 'Region' => ['description' => '地区。取值:'."\n" + ."\n" + .'- cn-shanghai:上海。'."\n" + .'- cn-beijing:北京。'."\n" + .'- ap-southeast-1:新加坡。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'InputList' => [ + 'description' => '监控流输入列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Index' => ['description' => '索引,前端使用。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'InputUrl' => ['description' => '输入流地址。', 'type' => 'string', 'example' => 'demo.aliyundoc.com'], + 'LayoutId' => ['description' => '布局ID,必须从1开始。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'StreamName' => ['description' => '监播流的显示名称。', 'type' => 'string', 'example' => 'monitorStream****'], + 'LayoutConfig' => [ + 'description' => '布局信息。', + 'type' => 'object', + 'properties' => [ + 'FillMode' => ['description' => '填充类型,前端填none即可。', 'type' => 'string', 'example' => 'none'], + 'PositionRefer' => ['description' => '设置元素的position参考坐标值,取值:'."\n" + ."\n" + .'- topLeft'."\n" + .'- topRight'."\n" + .'- bottomLeft'."\n" + .'- bottomRight'."\n" + ."\n", 'type' => 'string', 'example' => 'topLeft'], + 'PositionNormalized' => [ + 'description' => '位置归一化值[unk][x,y][unk],默认为[unk][0,0][unk]。>x,y需要进行归一化计算。', + 'type' => 'array', + 'items' => ['description' => '表示该Layer元素填充区位置\\[x,y],x和y归一化百分比。
例如\\[0.1,0.1]代表左上角水平偏移10%, 垂直偏移10%。', 'type' => 'number', 'format' => 'float', 'example' => '0.1'], + ], + 'SizeNormalized' => [ + 'description' => '字幕文件大小,单位为字节。', + 'type' => 'array', + 'items' => ['description' => 'Layer元素需要填充的尺寸大小\\[w,h],w和h归一化百分比。
例如\\[0.2,0.3]代表水平占比20%,垂直占比30%。', 'type' => 'number', 'format' => 'float', 'example' => '0.3'], + ], + ], + ], + 'PlayConfig' => [ + 'description' => '播放配置。', + 'type' => 'object', + 'properties' => [ + 'VolumeRate' => ['description' => '音量。取值0~1之间,精确小数点后2位。', 'type' => 'number', 'format' => 'float', 'example' => '0.50'], + ], + ], + ], + 'description' => '', + ], + ], + 'OutputUrls' => [ + 'description' => '监播输出地址。', + 'type' => 'object', + 'properties' => [ + 'FlvUrl' => ['description' => 'FLV输出地址。', 'type' => 'string', 'example' => 'http://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****.flv'], + 'RtmpUrl' => ['description' => 'RTMP输出地址。', 'type' => 'string', 'example' => 'rtmp://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****'], + ], + ], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], ], [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidResource.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122C*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', - 'title' => '删除导播台视频资源', - 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口删除导播台视频资源。'."\n" - ."\n\n" + 'title' => '查询监播室列表', + 'description' => '先[创建监播室](~~2848129~~)后再调用本接口查询监播室列表,调用时请保证参数设置符合要求。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyCasterVideoResource' => [ - 'summary' => '修改导播台视频资源。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamMonitorList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamMonitorList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 1,\\n \\"RequestId\\": \\"2234baba-a586-46ea-8bd4-c8f7891abcdef\\",\\n \\"LiveStreamMonitorList\\": [\\n {\\n \\"MonitorConfig\\": \\"\\\\\\"{\\\\\\\\\\\\\\"fpsLowThres\\\\\\\\\\\\\\": 0.6,\\\\\\\\\\\\\\"brLowThres\\\\\\\\\\\\\\": 1.1,\\\\\\\\\\\\\\"eofDurationThresSec\\\\\\\\\\\\\\": 10}\\\\\\"\\",\\n \\"Status\\": 1,\\n \\"MonitorId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"Domain\\": \\"demo.aliyundoc.com\\",\\n \\"CallbackUrl\\": \\"http://guide.aliyundoc.com/notify\\",\\n \\"AudioFrom\\": 1,\\n \\"DingTalkWebHookUrl\\": \\"https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****\\",\\n \\"MonitorName\\": \\"liveMonito****\\",\\n \\"StopTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"StartTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"OutputTemplate\\": \\"lp_ud\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"InputList\\": [\\n {\\n \\"Index\\": 1,\\n \\"InputUrl\\": \\"demo.aliyundoc.com\\",\\n \\"LayoutId\\": 1,\\n \\"StreamName\\": \\"monitorStream****\\",\\n \\"LayoutConfig\\": {\\n \\"FillMode\\": \\"none\\",\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"PositionNormalized\\": [\\n 0.1\\n ],\\n \\"SizeNormalized\\": [\\n 0.3\\n ]\\n },\\n \\"PlayConfig\\": {\\n \\"VolumeRate\\": 0.5\\n }\\n }\\n ],\\n \\"OutputUrls\\": {\\n \\"FlvUrl\\": \\"http://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****.flv\\",\\n \\"RtmpUrl\\": \\"rtmp://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****\\"\\n }\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n2234baba-a586-46ea-8bd4-c8f7891abcdef\\n1\\n\\n 1\\n 1\\n lp_ud\\n 2017-01-11T12:00:00Z\\n liveMonito****\\n cn-shanghai\\n demo.aliyundoc.com\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 2017-01-11T12:00:00Z\\n \\n monitorStream****\\n 1\\n 1\\n demo.aliyundoc.com\\n \\n none\\n topLeft\\n 0.1\\n 0.3\\n \\n \\n 0.50\\n \\n \\n \\n http://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****.flv\\n rtmp://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****\\n \\n\\n","errorExample":""}]', + ], + 'DescribeLiveStreamPreloadTasks' => [ + 'summary' => '仅支持查询最近3天内的数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster](~~2848009~~)接口创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'ResourceId', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '资源ID。如果您通过[AddCasterVideoResource](~~2848020~~)接口添加导播台视频源,请查看AddCasterVideoResource接口调用返回的参数ResourceId值。', - 'type' => 'string', - 'required' => true, - 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', - ], + 'schema' => ['description' => '任务ID。您可以通过调用[SetLiveStreamPreloadTasks](~~2519938~~)接口获取预热任务ID。', 'type' => 'string', 'required' => false, 'example' => 'yourTaskId'], ], [ - 'name' => 'ResourceName', + 'name' => 'PlayUrl', 'in' => 'query', - 'schema' => [ - 'description' => '视频源名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test001', - ], + 'schema' => ['description' => '直播URL,支持批量设置多个直播URL,多个URL之间用逗号(,)分隔,不超过100个。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****'], ], [ - 'name' => 'LiveStreamUrl', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '直播流地址。'."\n" - ."\n" - .'>当视频源类型为直播流时,本参数才可用且必传。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****', - ], + 'schema' => ['description' => '每页大小,最大100,取值:1~100之间的任意整数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '20'], ], [ - 'name' => 'MaterialId', + 'name' => 'PageNum', 'in' => 'query', - 'schema' => [ - 'description' => '素材ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'f080575eb5f4427684fc0715159a****', - ], + 'schema' => ['description' => '取得第几页,默认1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'VodUrl', + 'name' => 'Status', 'in' => 'query', 'schema' => [ - 'description' => '点播文件地址。'."\n" - .'>当视频源类型为文件视频且视频文件未导入素材库时,本参数才可用。'."\n" - .'>'."\n" - .'>点播文件仅限MP4、FLV、TS格式。', + 'description' => '任务状态。取值:'."\n" + .'- complete:已完成。'."\n" + .'- pending:等待预热。'."\n" + .'- preloading:预热中。'."\n" + .'- failed:预热失败。', 'type' => 'string', 'required' => false, - 'example' => 'http://developer.aliyundoc.com/AppName/StreamName.flv', - ], - ], - [ - 'name' => 'BeginOffset', - 'in' => 'query', - 'schema' => [ - 'description' => '视频文件起始偏移值。单位:毫秒。'."\n" - ."\n" - .'>当视频源类型为文件视频时,本参数才有用。'."\n" - .'>'."\n" - ."\n" - .'>大于0,表示从相对于首帧的偏差时间作为开始读取的位置。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], - ], - [ - 'name' => 'EndOffset', - 'in' => 'query', - 'schema' => [ - 'description' => '仅对文件视频有效。单位:毫秒。 '."\n" - .' '."\n" - .'- 大于**0**时,表示从相对于首帧的偏差时间为结束读取的位置。'."\n" - .'- 小于**0**时,表示相对于最后一帧的偏差时间作为结束读取的位置。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10000', - ], - ], - [ - 'name' => 'RepeatNum', - 'in' => 'query', - 'schema' => [ - 'description' => '仅对文件视频有效,表示播放完后重复继续播放的次数。 '."\n" - .' '."\n" - .'- **0**(默认值):表示不重复播放。'."\n" - .'- **-1**:表示一直循环重复。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '60', - 'minimum' => '-1', - 'example' => '0', - ], - ], - [ - 'name' => 'PtsCallbackInterval', - 'in' => 'query', - 'schema' => [ - 'description' => 'PTS回调间隔。单位:毫秒,仅对点播素材有效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '0', - 'example' => '2000', + 'enumValueTitles' => ['pending' => '等待预热', 'preloading' => '预热中', 'failed' => '预热失败', 'complete' => '已完成'], + 'example' => 'complete', + 'enum' => ['complete', 'pending', 'preloading', 'failed'], ], ], [ - 'name' => 'ImageId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '媒资库图片素材ID。'."\n" - .'>当视频源类型为图片时,本参数才可用且必须传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'a089175eb5f4427684fc0715159a****', - ], + 'schema' => ['description' => '起始时间,日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ,开始时间必须在近3天内。', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T19:00:00Z'], ], [ - 'name' => 'ImageUrl', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '图片素材URL。'."\n" - .'>当视频源类型为图片且图片文件未导入素材库时,本参数才可用。支持上传jpg、png格式图片,最大文件不可超过10M。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', - ], + 'schema' => ['description' => '结束时间,日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ,EndTime和StartTime之间的间隔不能超过3天。', 'type' => 'string', 'required' => false, 'example' => '2016-06-30T19:00:00Z'], ], ], 'responses' => [ @@ -34820,99 +28054,93 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。可作为查询导播台视频源、添加导播台布局、查询导播台布局列表的请求参数。', - 'type' => 'string', - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', - ], - 'ResourceId' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'example' => '98461064-1c94-4dc1-85ce-94098764****', + 'PageNum' => ['description' => '分页的页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'PreloadTasks' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PreloadTask' => [ + 'description' => '直播预热详情。', + 'type' => 'array', + 'items' => [ + 'description' => '直播预热详情。', + 'type' => 'object', + 'properties' => [ + 'Area' => ['description' => '预热区域。取值:'."\n" + .'- domestic:中国内地。'."\n" + .'- overseas:海外及港澳台加速。'."\n" + .'- global:全球加速。'."\n" + ."\n" + .'> 如果不传该参数,默认的预热区域为您的域名所配置的加速区域。', 'type' => 'string', 'example' => 'domestic'], + 'CreateTime' => ['description' => '预热任务创建时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2016-06-29T19:00:00Z'], + 'Description' => ['description' => '预热任务是否成功。取值:'."\n" + .'- Successfully:成功。'."\n" + .'- InternalError:失败。', 'type' => 'string', 'example' => 'Successfully'], + 'DomainName' => ['description' => '播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'PlayUrl' => ['description' => '直播URL。', 'type' => 'string', 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****'], + 'PreloadedEndTime' => ['description' => '预热结束时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2016-06-30T19:00:00Z'], + 'PreloadedStartTime' => ['description' => '预热开始时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2016-06-29T19:00:00Z'], + 'Process' => ['description' => '进度百分比。', 'type' => 'string', 'example' => '100%'], + 'Status' => ['description' => '任务状态。取值:'."\n" + .'- Success:成功。'."\n" + .'- Failed:失败。'."\n" + ."\n" + .'> 只要有一条任务创建失败即为失败', 'type' => 'string', 'example' => 'Success'], + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'yourTaskId'], + ], + ], + ], + ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'E1564CBC-DCFE-5E1B-8B78-8DED9A39F334'], + 'TotalNum' => ['description' => '符合条件的总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalPage' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidResourceId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidLiveStreamUrl.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidMaterialId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidVodUrl.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidResource.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not match the specified start time.', 'description' => ''], + ['errorCode' => 'Duration.Exceed', 'errorMessage' => 'Duration between StartTime and EndTime is too long.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"ResourceId\\": \\"98461064-1c94-4dc1-85ce-94098764****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n LIVEPRODUCER_POST-cn-0pp1czt****\\n 98461064-1c94-4dc1-85ce-94098764****\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', - 'title' => '修改导播台视频源', - 'description' => '先通过[CreateCaster](~~2848009~~)接口创建导播台,再调用本接口修改导播台视频资源。'."\n" - ."\n\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 2,\\n \\"PreloadTasks\\": {\\n \\"PreloadTask\\": [\\n {\\n \\"Area\\": \\"domestic\\",\\n \\"CreateTime\\": \\"2016-06-29T19:00:00Z\\",\\n \\"Description\\": \\"Successfully\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"PlayUrl\\": \\"rtmp://guide.aliyundoc.com/liveApp****/liveStream****\\",\\n \\"PreloadedEndTime\\": \\"2016-06-30T19:00:00Z\\",\\n \\"PreloadedStartTime\\": \\"2016-06-29T19:00:00Z\\",\\n \\"Process\\": \\"100%\\",\\n \\"Status\\": \\"Success\\",\\n \\"TaskId\\": \\"yourTaskId\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"E1564CBC-DCFE-5E1B-8B78-8DED9A39F334\\",\\n \\"TotalNum\\": 1,\\n \\"TotalPage\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 2\\n \\n domestic\\n 2016-06-29T19:00:00Z\\n Successfully\\n example.com\\n rtmp://guide.aliyundoc.com/liveApp****/liveStream****\\n 2016-06-30T19:00:00Z\\n 2016-06-29T19:00:00Z\\n 100%\\n Success\\n yourTaskId\\n \\n E1564CBC-DCFE-5E1B-8B78-8DED9A39F334\\n 1\\n 1\\n","errorExample":""}]', + 'title' => '查询直播预热任务', + 'description' => '本接口仅支持查询最近3天内的数据。'."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeCasterVideoResources' => [ - 'summary' => '查询导播台视频源。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamPreloadTasks'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamPreloadTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveStreamPushMetricDetailData' => [ + 'summary' => '查询指定域名推流app及流粒度数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -34923,148 +28151,94 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '- 需要查询的加速域名。仅支持单个域名查询,传多个域名将报错。'."\n" + .'- 不指定AppName和StreamName时,按指定加速域名返回此域名下所有流粒度的数据,所有查询数据不聚合。'."\n" + .'- DomainName不为空且AppName为all和StreamName为all时,返回指定加速域名下所有流粒度的聚合数据。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。'."\n" + ."\n" + .'格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2022-09-10T20:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据结束时间点,日期格式按照ISO8601表示法,并使用UTC时间,结束时间需大于起始时间,且不能相差超过1天。'."\n" + ."\n" + .'格式为:YYYY-MM-DDThh:mm:ssZ。'."\n", 'type' => 'string', 'required' => true, 'example' => '2022-09-10T21:00:00Z'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '直播流所属应用名称。指定应用名称,查询对应应用流粒度的数据。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流名称。指定StreamName时,按指定AppName的指定StreamName,返回流粒度的数据(指定StreamName时,必须指定AppName)。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], + ], + [ + 'name' => 'NextPageToken', + 'in' => 'query', + 'schema' => ['description' => '分页查询token,每次查询最多返回5000行数据,当要查询的数据超过5000行时,响应数据会提供下次查询数据的起始索引。'."\n" + ."\n" + .'请求时传入该token,将从上一次查询结束的下一行继续查询未获取的数据。', 'type' => 'string', 'required' => false, 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0='], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', - ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'VideoResources' => [ + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'EndTime' => ['description' => '获取数据结束时间点,日期格式按照ISO8601表示法,并使用UTC时间。'."\n" + ."\n" + .'格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2022-09-10T21:00:00Z'], + 'NextPageToken' => ['description' => '分页查询token,每次查询最多返回5000行数据,当要查询的数据超过5000行时,响应数据会提供下次查询数据的起始索引。'."\n" + ."\n" + .'请求时传入该token,将从上一次查询结束的下一行继续查询未获取的数据。', 'type' => 'string', 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0='], + 'PageSize' => ['description' => '返回数据行数。', 'type' => 'integer', 'format' => 'int32', 'example' => '5000'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5EBF2AC3-4B73-40A5-8B32-83F49D5F035E'], + 'StartTime' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。'."\n" + ."\n" + .'格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2022-09-10T20:00:00Z'], + 'StreamDetailData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'VideoResource' => [ - 'description' => '资源列表。', + 'StreamData' => [ + 'description' => '返回数据组。', 'type' => 'array', 'items' => [ - 'description' => '资源列表。', + 'description' => '返回数据组。', 'type' => 'object', 'properties' => [ - 'BeginOffset' => [ - 'description' => '视频文件起始偏移值。仅对文件视频有效, 单位:毫秒。'."\n" - ."\n" - .'**大于0**,表示从相对于首帧的偏差时间作为开始读取的位置。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'EndOffset' => [ - 'description' => '视频文件结束偏移值。仅对文件视频有效,单位:毫秒。 '."\n" - .' '."\n" - .'- 大于**0**:从相对于首帧的偏差时间为结束读取的位置。'."\n" - .'- 小于**0**:从相对于最后一帧的偏差时间作为结束读取的位置。 ', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10000', - ], - 'FlvUrl' => [ - 'description' => '拉流地址。', - 'type' => 'string', - 'example' => 'http://guide.aliyundoc.com/example.org', - ], - 'ImageId' => [ - 'description' => '媒资库图片素材ID。', - 'type' => 'string', - 'example' => 'a089175eb5f4427684fc0715159a****', - ], - 'ImageUrl' => [ - 'description' => '图片素材URL。', - 'type' => 'string', - 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg', - ], - 'LiveStreamUrl' => [ - 'description' => '直播流地址。', - 'type' => 'string', - 'example' => 'rtmp://abcLive/appName/b5447c21fcfe444c9e9b6f7ba208****', - ], - 'LocationId' => [ - 'description' => '视频源位置。', - 'type' => 'string', - 'example' => 'RV01', - ], - 'MaterialId' => [ - 'description' => '素材ID。', - 'type' => 'string', - 'example' => 'd2c429cd907742ee8f6e76465ad3****', - ], - 'PtsCallbackInterval' => [ - 'description' => '点播文件的回调间隔,等于0时为不回调。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RepeatNum' => [ - 'description' => '仅对文件视频有效,表示播放完后继续重复播放的次数。 '."\n" - .' '."\n" - .'- **0**(默认值):不重复播放。'."\n" - .'- **-1**:一直循环重复播放。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ResourceId' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', - ], - 'ResourceName' => [ - 'description' => '资源名称。', - 'type' => 'string', - 'example' => 'resource-Name1', - ], - 'VodUrl' => [ - 'description' => '点播文件地址。'."\n" - ."\n" - .'当且仅当资源为文件视频,且视频文件未导入素材库时使用,仅限MP4、FLV、TS格式。', - 'type' => 'string', - 'example' => 'http://developer.aliyundoc.com/caster1.flv', - ], + 'AppName' => ['description' => '应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'ReqBps' => ['description' => '流每分钟总带宽,单位:Bps。', 'type' => 'number', 'format' => 'float', 'example' => '133.33'], + 'ReqTraffic' => ['description' => '流每分钟总流量,单位:Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'StreamName' => ['description' => '流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC 时间。'."\n" + ."\n" + .'格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2022-09-10T20:00:00Z'], ], ], ], ], + 'description' => '', ], ], ], @@ -35072,271 +28246,89 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidPageToken', 'errorMessage' => 'The token of page is invalid.', 'description' => '指定的分页token错误,请传入上次查询返回的正确索引,并确认没有修改您的请求参数。'], + ['errorCode' => 'InvalidAppName.Mismatch', 'errorMessage' => 'The AppName param must be passed.', 'description' => 'AppName参数不匹配,请确认传入了正确的AppName参数。'], + ['errorCode' => 'InvalidStreamProtocol.NotSupport', 'errorMessage' => 'The specified stream protocol is not support.', 'description' => '指定的流协议不支持,请参照文档查询所需的流协议。'], + ['errorCode' => 'InvalidStreamName.LengthTooLong', 'errorMessage' => 'The specified stream name is too long.', 'description' => 'StreamName的长度超过限制,请传入合法的StreamName。'], + ['errorCode' => 'InvalidAppName.LengthTooLong', 'errorMessage' => 'The specified app name is too long.', 'description' => 'AppName的长度超过限制,请传入合法的AppName。'], + ['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'Specified Time is malformed.', 'description' => '指定的时间无效。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"Total\\": 2,\\n \\"VideoResources\\": {\\n \\"VideoResource\\": [\\n {\\n \\"BeginOffset\\": 1000,\\n \\"EndOffset\\": 10000,\\n \\"FlvUrl\\": \\"http://guide.aliyundoc.com/example.org\\",\\n \\"ImageId\\": \\"a089175eb5f4427684fc0715159a****\\",\\n \\"ImageUrl\\": \\"http://learn.aliyundoc.com/AppName/image.jpg\\",\\n \\"LiveStreamUrl\\": \\"rtmp://abcLive/appName/b5447c21fcfe444c9e9b6f7ba208****\\",\\n \\"LocationId\\": \\"RV01\\",\\n \\"MaterialId\\": \\"d2c429cd907742ee8f6e76465ad3****\\",\\n \\"PtsCallbackInterval\\": 0,\\n \\"RepeatNum\\": 0,\\n \\"ResourceId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e86****\\",\\n \\"ResourceName\\": \\"resource-Name1\\",\\n \\"VodUrl\\": \\"http://developer.aliyundoc.com/caster1.flv\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\nCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n2\\n\\n \\n 10000\\n 1000\\n d2c429cd907742ee8f6e76465ad3****\\n http://guide.aliyundoc.com/example.org\\n b5f8c837-ceeb-424f-b30b-68e94e86****\\n resource-Name1\\n RV01\\n 0\\n rtmp://abcLive/appName/b5447c21fcfe444c9e9b6f7ba208****\\n 0\\n http://developer.aliyundoc.com/caster1.flv\\n \\n\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"SceneList\\": [{\\n \\"ResourceId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e864995\\",\\n \\"ResourceName\\": \\"resource-Name1\\",\\n \\"LocationId\\": \\"RV01\\",\\n \\"LiveStreamUrl\\": \\"rtmp://XXXXXX/appName/b5447c21fcfe444c9e9b6f7ba208f141\\",\\n },\\n {\\n \\"ResourceId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e864995\\",\\n \\"MaterialId\\": \\"d2c429cd907742ee8f6e76465ad3c784\\",\\n \\"ResourceName\\": \\"resource-Name3\\",\\n \\"LocationId\\": \\"RV02\\",\\n \\"repeatNum\\": 2\\n }\\n ]\\n}"}]', - 'title' => '查询导播台视频源', - 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口查询导播台视频源。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2022-09-10T21:00:00Z\\",\\n \\"NextPageToken\\": \\"UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\",\\n \\"PageSize\\": 5000,\\n \\"RequestId\\": \\"5EBF2AC3-4B73-40A5-8B32-83F49D5F035E\\",\\n \\"StartTime\\": \\"2022-09-10T20:00:00Z\\",\\n \\"StreamDetailData\\": {\\n \\"StreamData\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"ReqBps\\": 133.33,\\n \\"ReqTraffic\\": 1000,\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"TimeStamp\\": \\"2022-09-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n example.com\\n 2022-09-10T21:00:00Z\\n UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\n 5000\\n 5EBF2AC3-4B73-40A5-8B32-83F49D5F035E\\n 2022-09-10T20:00:00Z\\n \\n liveApp****\\n 133.33\\n 1000\\n liveStream****\\n 2022-09-10T20:00:00Z\\n \\n","errorExample":""}]', + 'title' => '查询指定域名推流流粒度批量数据', + 'description' => '- 仅支持单个域名查询,多个域名会报错。'."\n" + .'- 数据最大查询跨度:24小时。'."\n" + .'- 数据最小查询粒度:1分钟。'."\n" + .'- 数据最大查询范围:31天。'."\n" + .'- 本接口为监控数据接口,数据采集处理方式不同于计费,不能用于计算用量进行对账参考。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddCasterLayout' => [ - 'summary' => '添加导播台布局。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamPushMetricDetailData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamPushMetricDetailData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveStreamRecordContent' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveL04ZVK'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域id。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'VideoLayer', + 'name' => 'DomainName', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '视频布局。', - 'type' => 'array', - 'items' => [ - 'description' => '视频布局。', - 'type' => 'object', - 'properties' => [ - 'FillMode' => [ - 'description' => '元素填充方式。 取值:'."\n" - .' '."\n" - .'- **none**(默认):不填充。以画面作为配置目标进行设置。'."\n" - .'- **fit**:自适应,以填充区(框)作为配置目标进行设置,此时画面会按照原始的宽高比缩放,长边对齐的自适应方式在填充区(框)内居中填充。若填充区宽高比和画面不一致,则短边两侧无填充(显示为下层元素画面,若下层未配置,默认为底图黑色)。 '."\n" - .' ', - 'type' => 'string', - 'required' => false, - 'example' => 'fit', - ], - 'FixedDelayDuration' => [ - 'description' => '该字段对视频进行固定延迟设置,可用于字幕同步。 单位:毫秒。 默认值:**0** 。取值范围:**0~5000**。'."\n" - .' ', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5000', - ], - 'HeightNormalized' => [ - 'description' => '元素的高度归一化比例值。 '."\n" - .' '."\n" - .'- 若采用不填充方式,元素的宽度会按照该高度来进行等比缩放。默认值为**0**,表示按照画面的原始尺寸进行显示。 '."\n" - .'- 若采用自适应方式,该字段必传且大于**0**,表示填充区(框)高度归一化比例值。 '."\n" - .' ', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '1', - ], - 'PositionNormalized' => [ - 'description' => '视频元素配置列表,元素为视频画面的配置信息:位置。'."\n" - ."\n" - .'设置该视频元素的位置归一化值`[x,y]`, 默认为`[0,0]`。注意x,y需要进行归一化计算。', - 'type' => 'array', - 'items' => [ - 'description' => '值。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0', - ], - 'required' => false, - 'example' => '0.3', - 'maxItems' => 2, - ], - 'PositionRefer' => [ - 'description' => '元素的位置参考坐标值。 取值:'."\n" - .' '."\n" - .'- **topLeft**(默认值):左上。'."\n" - .'- **topRight**:右上。'."\n" - .'- **bottomLeft**:左下。'."\n" - .'- **bottomRight**:右下。'."\n" - .'- **center**:中间。'."\n" - .'- **topCenter**:中上。'."\n" - .'- **bottomCenter**:中下。'."\n" - .'- **leftCenter**:左中。'."\n" - .'- **rightCenter**:右中。 '."\n" - .' ', - 'type' => 'string', - 'required' => false, - 'example' => 'topLeft', - ], - 'WidthNormalized' => [ - 'description' => '元素的宽度归一化比例值。 '."\n" - .' '."\n" - .'- 若采用不填充方式,元素的高度会按照该宽度来进行等比缩放,默认值为**0**,表示按照画面的原始尺寸进行显示。 '."\n" - .'- 若采用自适应方式,该字段必传且大于**0**,表示填充区(框)宽度归一化比例值。 '."\n" - .' ', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '1', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 12, - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'AudioLayer', + 'name' => 'AppName', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '音频布局。', - 'type' => 'array', - 'items' => [ - 'description' => '音频布局。', - 'type' => 'object', - 'properties' => [ - 'FixedDelayDuration' => [ - 'description' => '对音频进行固定延迟设置,可用于字幕同步。 单位:毫秒。 默认值:**0** 。取值范围:**0~5000**。'."\n" - .' ', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5000', - ], - 'ValidChannel' => [ - 'description' => '确定哪些声道可以作为音量输入。 取值:'."\n" - .' '."\n" - .'- **leftChannel**:左声道。'."\n" - .'- **rightChannel**:右声道。'."\n" - .'- **all**(默认值):双声道。'."\n" - .' ', - 'type' => 'string', - 'required' => false, - 'example' => 'all', - ], - 'VolumeRate' => [ - 'description' => '调节音频流的音量大小倍数。 取值范围为**0~10.0**。其中:'."\n" - .' '."\n" - .'- **1.0**(默认值):表示保持原有音量。 '."\n" - .'- 小于**1**:表示降低音量的倍数。 '."\n" - .'- 大于**1**:表示放大的倍数。 '."\n" - ."\n", - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '1.0', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 12, - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'BlendList', + 'name' => 'StreamName', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '元素为视频资源的位置ID,即LocationId。'."\n" - ."\n" - .'LocationId参见[添加视频源](~~2848020~~),与VideoLayers元素顺序对应。', - 'type' => 'array', - 'items' => [ - 'description' => 'LocationId。', - 'type' => 'string', - 'required' => false, - 'example' => 'RV01', - ], - 'required' => true, - 'example' => 'RV01', - 'maxItems' => 12, - ], + 'schema' => ['description' => '播流名称。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], [ - 'name' => 'MixList', + 'name' => 'StartTime', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '元素为音频资源的位置ID,即LocationId。'."\n" - ."\n" - .'LocationId参见[添加视频源](~~2848020~~),与AudioLayers元素顺序对应。', - 'type' => 'array', - 'items' => [ - 'description' => 'LocationId。', - 'type' => 'string', - 'required' => false, - 'example' => 'RV01', - ], - 'required' => true, - 'example' => 'RV01', - 'maxItems' => 12, - ], + 'schema' => ['description' => '开始时间。仅能查询6个月内的记录。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z'], ], [ - 'name' => 'CasterId', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '结束时间。与StartTime的间隔时间不能超过4天。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z'], ], ], 'responses' => [ @@ -35344,154 +28336,114 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'LayoutId' => [ - 'description' => '布局ID。可作为删除导播台布局,修改导播台布局,查询导播台布局列表,删除虚拟演播厅布局,修改虚拟演播厅布局,查询虚拟演播厅布局的请求参数。', - 'type' => 'string', - 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '62136AE6-7793-45ED-B14A-60D19A9486D3'], + 'RecordContentInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RecordContentInfo' => [ + 'description' => '录制内容列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'example' => '2015-12-01T07:46:00Z'], + 'StartTime' => ['description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'example' => '2015-12-01T07:36:00Z'], + 'Duration' => ['description' => '录制时长。单位:秒。', 'type' => 'number', 'format' => 'float', 'example' => '10'], + 'OssBucket' => ['description' => 'OSS存储的Bucket名称。', 'type' => 'string', 'example' => 'liveBucket****'], + 'OssObjectPrefix' => ['description' => 'OSS存储的录制文件名的规则。', 'type' => 'string', 'example' => 'record/{Date}/{UnixTimestamp}_{Sequence}'], + 'OssEndpoint' => ['description' => 'OSS存储的Endpoint名称。', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidVideoLayersAndBlendListSize.Mismatch', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidAudioLayersAndMixListSize.Mismatch', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidBlendList.ExceedNorm', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidPositionNormalized.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidHeightOrWidthNormalized', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidMixList.ExceedNorm', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidStartTime.Mismatch', 'errorMessage' => 'Specified StartTime does not math the current time.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\"\\n}"}]', - 'title' => '添加导播台布局', - 'description' => '先创建导播台和添加导播台视频资源,再调用本接口添加导播台布局。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" + 'title' => '查询直播流录制内容', + 'summary' => '查询直播录制内容。', + 'description' => '先获取主播流域名,再调用本接口查询直播录制内容。'."\n" + ."\n" + .'本接口的直播录制内容是以一次录制任务维度的,具体录制文件请使用[查询所有录制索引文件](~~2847890~~)和[查询单个录制索引文件](~~2847889~~)接口查询'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '>请求参数中的N表示第几个的意思。例如:VideoLayer.N.FillMode表示传入第几个元素的填充方式。VideoLayer.1.FillMode表示传入第1个元素的填充方式,VideoLayer.2.FillMode表示传入第2个元素的填充方式。'."\n" - ."\n\n" - .' '."\n", - 'responseParamsDescription' => ' ', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' > 访问OSS资源的URL地址组成,请参见[如何获取单个或多个文件的URL?](~~39607~~)', 'extraInfo' => ' ', - ], - 'DeleteCasterLayout' => [ - 'summary' => '删除布局数据。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamRecordContent'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamRecordContent', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"62136AE6-7793-45ED-B14A-60D19A9486D3\\",\\n \\"RecordContentInfoList\\": {\\n \\"RecordContentInfo\\": [\\n {\\n \\"EndTime\\": \\"2015-12-01T07:46:00Z\\",\\n \\"StartTime\\": \\"2015-12-01T07:36:00Z\\",\\n \\"Duration\\": 10,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"OssObjectPrefix\\": \\"record/{Date}/{UnixTimestamp}_{Sequence}\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n62136AE6-7793-45ED-B14A-60D19A9486D3\\n\\n \\n 2015-12-01T07:46:00Z\\n cn-oss-****.aliyuncs.com\\n 2015-12-01T07:36:00Z\\n liveBucket****\\n 10\\n record/{Date}/{UnixTimestamp}_{Sequence}\\n \\n\\n","errorExample":"{\\n \\"RecordContentInfoList\\":{\\n \\"RecordContentInfo\\":[{\\n \\"Duration\\":14638.0,\\n \\"EndTime\\":\\"2016-05-25T09:41:09Z\\",\\n \\"OssBucket\\":\\"livevideo-test\\",\\n \\"OssEndpoint\\":\\"oss-cn-hangzhou.aliyuncs.com\\",\\n \\"OssObjectPrefix\\":\\"record/{Date}/{UnixTimestamp}_{Sequence}\\",\\n \\"StartTime\\":\\"2016-05-25T05:37:11Z\\"\\n }]\\n },\\n \\"RequestId\\":\\"62136AE6-7793-45ED-B14A-60D19A9486D3\\"\\n}"}]', + ], + 'DescribeLiveStreamRecordIndexFile' => [ + 'summary' => '查询单个录制索引文件。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '107095', + 'abilityTreeNodes' => ['FEATUREliveL04ZVK'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'CasterId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'LayoutId', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '布局ID。如果您通过[AddCasterLayout接口](~~2848025~~)添加导播台布局,请查看AddCasterLayout接口调用返回的参数LayoutId值。', - 'type' => 'string', - 'required' => true, - 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', - ], + 'schema' => ['description' => '播流名称。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + [ + 'name' => 'RecordId', + 'in' => 'query', + 'schema' => ['description' => '索引文件ID。'."\n" + ."\n" + .'> 通过[查询所有录制索引文件](~~2847890~~)接口查询', 'type' => 'string', 'required' => true, 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****'], ], ], 'responses' => [ @@ -35499,308 +28451,132 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。可作为修改导播台布局、查询导播台布局列表、添加导播台组件、查询导播台组件列表的请求参数。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'LayoutId' => [ - 'description' => '布局ID。可作为查询导播台布局列表的请求参数。', - 'type' => 'string', - 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5EBF2AC3-4B73-40A5-8B32-83F49D5F035E'], + 'RecordIndexInfo' => [ + 'description' => '录制配置。', + 'type' => 'object', + 'properties' => [ + 'RecordUrl' => ['description' => '索引文件地址。', 'type' => 'string', 'example' => 'http://****/atestObject****.m3u8'], + 'StreamName' => ['description' => '播流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'CreateTime' => ['description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2016-05-27T09:40:56Z'], + 'RecordId' => ['description' => '索引文件ID。', 'type' => 'string', 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****'], + 'Height' => ['description' => '视频高。', 'type' => 'integer', 'format' => 'int32', 'example' => '480'], + 'OssBucket' => ['description' => 'OSS存储的Bucket名称。', 'type' => 'string', 'example' => 'liveBucket****'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'OssObject' => ['description' => 'OSS存储的录制文件名。', 'type' => 'string', 'example' => 'liveObject****'], + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2016-05-25T05:47:11Z'], + 'AppName' => ['description' => '流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'StartTime' => ['description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-12-01T05:36:00Z'], + 'Width' => ['description' => '视频宽。', 'type' => 'integer', 'format' => 'int32', 'example' => '640'], + 'Duration' => ['description' => '录制时长。单位:秒。', 'type' => 'number', 'format' => 'float', 'example' => '588.849'], + 'OssEndpoint' => ['description' => 'OSS存储的Endpoint名称。', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com'], + 'Format' => ['description' => '视频格式。', 'type' => 'string', 'example' => 'mp4'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidLayoutId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidLayout.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n 21926b36-7dd2-4fde-ae25-51b5bc8e****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '删除导播台布局数据', - 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口删除导播台布局数据。'."\n" + 'title' => '查询单个录制索引文件', + 'description' => '创建好的M3U8索引文件的信息在视频直播系统中仅保存6个月,若要查询仅能查询6个月内创建的索引文件的信息。M3U8索引文件存储在OSS中,保存时间由OSS的存储配置决定。'."\n" + ."\n\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyCasterLayout' => [ - 'summary' => '修改布局配置,传递修改项,非修改内容无需传递。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-06-25T08:54:52.000Z', 'description' => '响应参数发生变更、错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamRecordIndexFile'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamRecordIndexFile', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5EBF2AC3-4B73-40A5-8B32-83F49D5F035E\\",\\n \\"RecordIndexInfo\\": {\\n \\"RecordUrl\\": \\"http://****/atestObject****.m3u8\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"CreateTime\\": \\"2016-05-27T09:40:56Z\\",\\n \\"RecordId\\": \\"c4d7f0a4-b506-43f9-8de3-07732c3f****\\",\\n \\"Height\\": 480,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssObject\\": \\"liveObject****\\",\\n \\"EndTime\\": \\"2016-05-25T05:47:11Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"StartTime\\": \\"2015-12-01T05:36:00Z\\",\\n \\"Width\\": 640,\\n \\"Duration\\": 588.849,\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"Format\\": \\"mp4\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 2016-05-25T05:47:11Z\\n example.com\\n 2016-05-27T09:40:56Z\\n 2015-12-01T05:36:00Z\\n liveBucket****\\n 588.849\\n liveApp****\\n liveStream****\\n cn-oss-****.aliyuncs.com\\n http://****/atestObject****.m3u8\\n liveObject****\\n 480\\n c4d7f0a4-b506-43f9-8de3-07732c3f****\\n 640\\n mp4\\n \\n 5EBF2AC3-4B73-40A5-8B32-83F49D5F035E\\n","errorExample":""}]', + ], + 'DescribeLiveStreamRecordIndexFiles' => [ + 'summary' => '查询某个时间段内的所有录制索引文件。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '107096', + 'abilityTreeNodes' => ['FEATUREliveL04ZVK'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'VideoLayer', + 'name' => 'AppName', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '视频信息。', - 'type' => 'array', - 'items' => [ - 'description' => '视频信息。', - 'type' => 'object', - 'properties' => [ - 'FillMode' => [ - 'description' => '元素填充方式。 '."\n" - ."\n" - .'- **none**(默认):不填充,以画面作为配置目标进行Layer设置。'."\n" - .'- **fit**:自适应,以填充区(框)作为配置目标进行Layer设置,此时画面会按照原始的宽高比缩放,长边对齐的自适应方式在填充区(框)内居中填充,若填充区宽高比和画面不一致,则短边两侧无填充(显示为下层Layer画面,若下层未配置Layer,默认为底图黑色)。', - 'type' => 'string', - 'required' => false, - 'example' => 'fit', - ], - 'FixedDelayDuration' => [ - 'description' => '该字段对视频进行固定延迟设置,可用于字幕同步。 单位:毫秒。默认值:**0**,取值范围:**0~5000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5000', - ], - 'HeightNormalized' => [ - 'description' => 'layer元素的高度归一化比例值。 '."\n" - .' '."\n" - .'- 若采用不填充模式,元素的宽度会按照该高度来进行等比缩放,默认为**0**,表示按照画面的原始尺寸进行显示。'."\n" - .'- 若采用自适应方式时,该字段必传且大于**0**,表示填充区(框)高度归一化比例值。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '1', - ], - 'PositionNormalized' => [ - 'description' => 'layer 元素的位置归一化值`[x,y]`。默认值为`[0,0]`。'."\n" - ."\n" - .'>注意x,y需要进行归一化计算。', - 'type' => 'array', - 'items' => [ - 'description' => 'layer 元素的位置归一化值`[x,y]`。默认值为`[0,0]`。'."\n" - ."\n" - .'>注意x,y需要进行归一化计算。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '[0,3]', - ], - 'required' => false, - 'example' => '0.3', - 'maxItems' => 2, - ], - 'PositionRefer' => [ - 'description' => '元素的position参考坐标值。取值:'."\n" - .'- **topLeft**(默认值):左上。'."\n" - .'- **topRight**:右上。'."\n" - .'- **bottomLeft**:左下。'."\n" - .'- **bottomRight**:右下。'."\n" - .'- **center**:中间。'."\n" - .'- **topCenter**:中上。'."\n" - .'- **bottomCenter**:中下。'."\n" - .'- **leftCenter**:左中。'."\n" - .'- **rightCenter**:右中。', - 'type' => 'string', - 'required' => false, - 'example' => 'topLeft', - ], - 'WidthNormalized' => [ - 'description' => 'layer元素的宽度归一化比例值。 '."\n" - ."\n" - .'- 若采用不填充模式,元素的高度会按照该宽度来进行等比缩放,默认值为**0**,表示按照画面的原始尺寸进行显示。'."\n" - .'- 若采用自适应方式时,该字段必传且大于**0**,表示填充区(框)宽度归一化比例值。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '1', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 12, - ], + 'schema' => ['description' => '直播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'AudioLayer', + 'name' => 'StreamName', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '音频信息。', - 'type' => 'array', - 'items' => [ - 'description' => '音频信息。', - 'type' => 'object', - 'properties' => [ - 'FixedDelayDuration' => [ - 'description' => '该字段对音频进行固定延迟设置,可用于字幕同步。 单位:毫秒。默认值:**0**。取值范围:**0~5000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5000', - ], - 'ValidChannel' => [ - 'description' => '确定哪些声道可以作为音量输入。取值:'."\n" - .'- **leftChannel**:左声道。'."\n" - .'- **rightChannel**:右声道。'."\n" - .'- **all**(默认值):双声道。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'all', - ], - 'VolumeRate' => [ - 'description' => 'layer元素的高度归一化比例值,其中元素的宽度会按照该高度来进行等比缩放。 '."\n" - ."\n" - .'默认值为**0**,表示按照元素的原始尺寸进行显示。 ', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '1', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 12, - ], + 'schema' => ['description' => '播流名称。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], [ - 'name' => 'BlendList', + 'name' => 'StartTime', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '元素为视频资源的位置ID,即LocationId。'."\n" - ."\n" - .'LocationId参见[添加视频源](~~2848020~~),与VideoLayers元素顺序对应。', - 'type' => 'array', - 'items' => [ - 'description' => '元素为视频资源的位置ID,即LocationId。'."\n" - ."\n" - .'LocationId参见[添加视频源](~~2848020~~),与VideoLayers元素顺序对应。', - 'type' => 'string', - 'required' => false, - 'example' => 'RV02', - ], - 'required' => true, - 'example' => 'RV02', - 'maxItems' => 12, - ], + 'schema' => ['description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z'], ], [ - 'name' => 'MixList', + 'name' => 'EndTime', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '元素为音频资源的位置ID,即LocationId。'."\n" - ."\n" - .'LocationId参见[添加视频源](~~2848020~~),与AudioLayers元素顺序对应。', - 'type' => 'array', - 'items' => [ - 'description' => '元素为音频资源的位置ID,即LocationId。'."\n" - ."\n" - .'LocationId参见[添加视频源](~~2848020~~),与AudioLayers元素顺序对应。', - 'type' => 'string', - 'required' => false, - 'example' => 'RV02', - ], - 'required' => true, - 'example' => 'RV02', - 'maxItems' => 12, - ], + 'schema' => ['description' => '结束时间。与StartTime间隔时间不能超过4天。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z'], ], [ - 'name' => 'CasterId', + 'name' => 'PageNum', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '当前页码。默认值为**1**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'LayoutId', + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页大小。取值范围:**5~30**,默认值为**10**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '5', 'example' => '10', 'default' => '10'], + ], + [ + 'name' => 'Order', 'in' => 'query', 'schema' => [ - 'description' => '布局ID。如果您通过[AddCasterLayout接口](~~2848025~~)添加导播台布局,请查看AddCasterLayout接口调用返回的参数LayoutId值。', + 'description' => '按创建时间排序。取值:'."\n" + ."\n" + .'- **asc**(默认值):升序。'."\n" + .'- **desc**:降序。', 'type' => 'string', - 'required' => true, - 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + 'required' => false, + 'enumValueTitles' => ['asc' => '升序', 'desc' => '降序'], + 'example' => 'asc', + 'default' => 'asc', + 'enum' => ['asc', 'desc'], ], ], ], @@ -35809,116 +28585,96 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'LayoutId' => [ - 'description' => '布局ID。可作为查询导播台布局列表的请求参数。', - 'type' => 'string', - 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'PageNum' => ['description' => '分页的页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DE24625C-7C0F-4020-8448-9C31A50C1556'], + 'Order' => ['description' => '排序。', 'type' => 'string', 'example' => 'asc'], + 'TotalPage' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'PageSize' => ['description' => '每页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'TotalNum' => ['description' => '符合条件的总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '12'], + 'RecordIndexInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RecordIndexInfo' => [ + 'description' => '录制配置列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RecordUrl' => ['description' => '索引文件地址。', 'type' => 'string', 'example' => 'http://****/atestObject****.m3u8'], + 'StreamName' => ['description' => '播流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'CreateTime' => ['description' => '创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2016-05-27T09:40:56Z'], + 'RecordId' => ['description' => '索引文件ID。', 'type' => 'string', 'example' => 'c4d7f0a4-b506-43f9-8de3-07732c3f****'], + 'Height' => ['description' => '视频高。', 'type' => 'integer', 'format' => 'int32', 'example' => '480'], + 'OssBucket' => ['description' => 'OSS存储Bucket名称。', 'type' => 'string', 'example' => 'liveBucket****'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'OssObject' => ['description' => 'OSS存储的录制文件名。', 'type' => 'string', 'example' => 'liveObject****'], + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'example' => '2015-12-01T07:46:00Z'], + 'AppName' => ['description' => '播流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'StartTime' => ['description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'example' => '2015-12-01T07:36:00Z'], + 'Width' => ['description' => '视频宽。', 'type' => 'integer', 'format' => 'int32', 'example' => '640'], + 'Duration' => ['description' => '录制时长。单位:秒。', 'type' => 'number', 'format' => 'float', 'example' => '588.849'], + 'OssEndpoint' => ['description' => 'OSS存储的Endpoint名称。', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com'], + 'Format' => ['description' => '视频格式。', 'type' => 'string', 'example' => 'HLS'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidLayoutId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidVideoLayersAndBlendListSize.Mismatch', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidAudioLayersAndMixListSize.Mismatch', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidPositionNormalized.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidBlendList.ExceedNorm', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidMixList.ExceedNorm', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidHeightOrWidthNormalized', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidVideoLayersConfig', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidAudioLayersConfig', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidLayout.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidStartTime.Mismatch', 'errorMessage' => 'Specified StartTime does not math the current time.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'Ram Permission is forbidden.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\"\\n}"}]', - 'title' => '修改导播台布局', - 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口修改布局配置,传递修改项,非修改内容无需传递。本接口目前支持的元素填充方式为默认和自适应。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 10,\\n \\"RequestId\\": \\"DE24625C-7C0F-4020-8448-9C31A50C1556\\",\\n \\"Order\\": \\"asc\\",\\n \\"TotalPage\\": 20,\\n \\"PageSize\\": 5,\\n \\"TotalNum\\": 12,\\n \\"RecordIndexInfoList\\": {\\n \\"RecordIndexInfo\\": [\\n {\\n \\"RecordUrl\\": \\"http://****/atestObject****.m3u8\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"CreateTime\\": \\"2016-05-27T09:40:56Z\\",\\n \\"RecordId\\": \\"c4d7f0a4-b506-43f9-8de3-07732c3f****\\",\\n \\"Height\\": 480,\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"OssObject\\": \\"liveObject****\\",\\n \\"EndTime\\": \\"2015-12-01T07:46:00Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"StartTime\\": \\"2015-12-01T07:36:00Z\\",\\n \\"Width\\": 640,\\n \\"Duration\\": 588.849,\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"Format\\": \\"HLS\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n asc\\n 12\\n 20\\n 5\\n 10\\n DE24625C-7C0F-4020-8448-9C31A50C1556\\n \\n \\n 2015-12-01T07:46:00Z\\n example.com\\n 2016-05-27T09:40:56Z\\n 2015-12-01T07:36:00Z\\n liveBucket****\\n 588.849\\n liveApp****\\n liveStream****\\n cn-oss-****.aliyuncs.com\\n http://****/atestObject****.m3u8\\n liveObject****\\n 480\\n c4d7f0a4-b506-43f9-8de3-07732c3f****\\n 640\\n mp4\\n \\n \\n","errorExample":""}]', + 'title' => '查询某个时间段内的所有录制索引文件', + 'description' => '- 创建好的M3U8索引文件的信息在视频直播系统中仅保存6个月,若要查询仅能查询6个月内创建的索引文件的信息。'."\n" + .' - M3U8索引文件存储在OSS中,保存时间由OSS的存储配置决定。'."\n" + .'- 录制默认返回的是HTTP地址,如需HTTPS可以自行配置证书并将HTTP修改成HTTPS。'."\n" ."\n\n" - ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '> 请求参数中的N表示第几个的意思。例如:VideoLayer.N.FillMode表示传入第几个元素的填充方式。VideoLayer.1.FillMode表示传入第1个元素的填充方式,VideoLayer.2.FillMode表示传入第2个元素的填充方式。'."\n" - .' '."\n", + ."\n" + .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeCasterLayouts' => [ - 'summary' => '查询导播台布局列表。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-06-25T08:54:52.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamRecordIndexFiles'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamRecordIndexFiles', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveStreamSnapshotInfo' => [ + 'summary' => '查询某一段时间内截图内容。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -35929,47 +28685,54 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '主播流域名。'."\n" + .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'CasterId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'LayoutId', + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '播流名称,请确保传入的流名在查询时间段内是存在的。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。EndTime和StartTime之间的间隔不能超过**1**天。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z'], + ], + [ + 'name' => 'Limit', + 'in' => 'query', + 'schema' => ['description' => '一次调用获取的数量。取值范围:**1~100**, 默认值:**10**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '10', 'default' => '10'], + ], + [ + 'name' => 'Order', 'in' => 'query', 'schema' => [ - 'description' => '布局ID。'."\n" + 'description' => '排序。取值:'."\n" ."\n" - .'如果您不提供LayoutId值,则返回导播台下所有布局列表。', + .'- **asc**(默认值):升序。'."\n" + .'- **desc**:降序。', 'type' => 'string', 'required' => false, - 'example' => '72d2ec7a-4cd7-4a01-974b-7cd53947****', + 'enumValueTitles' => ['asc' => '升序', 'desc' => '降序'], + 'example' => 'asc', + 'default' => 'asc', + 'enum' => ['asc', 'desc'], ], ], ], @@ -35978,444 +28741,114 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Layouts' => [ + 'NextStartTime' => ['description' => '下一个起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> 当此时间范围内的内容超出了Limit的取值范围,则返回此参数,为下一个文件的创建时间。可以将此时间当做StartTime,重新调用此接口获取下一段内容,不传则表示未超出Limit取值范围。', 'type' => 'string', 'example' => '2015-12-01T17:36:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '62136AE6-7793-45ED-B14A-60D19A9486D3'], + 'LiveStreamSnapshotInfoList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Layout' => [ - 'description' => '布局列表。', + 'LiveStreamSnapshotInfo' => [ + 'description' => '截图内容列表。', 'type' => 'array', 'items' => [ - 'description' => '布局列表。', 'type' => 'object', 'properties' => [ - 'AudioLayers' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AudioLayer' => [ - 'description' => 'Audiolayer配置列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'audiolayer配置列表。', - 'type' => 'object', - 'properties' => [ - 'FixedDelayDuration' => [ - 'description' => '该字段对视频进行固定延迟设置,可用于字幕同步。 '."\n" - .' '."\n" - .'单位为毫秒(ms)。默认值为**0**。取值范围为**0~5000**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'ValidChannel' => [ - 'description' => '确定哪些声道可以作为音量输入。取值:'."\n" - ."\n" - .'- **leftChannel**:左声道。'."\n" - .'- **rightChannel**:右声道。'."\n" - .'- **all**(默认值):双声道。', - 'type' => 'string', - 'example' => 'all', - ], - 'VolumeRate' => [ - 'description' => 'Layer元素的高度归一化比例值,其中元素的宽度会按照该高度来进行等比缩放。 '."\n" - .'>默认值为**0**,表示按照元素的原始尺寸进行显示。 ', - 'type' => 'number', - 'format' => 'float', - 'example' => '1', - ], - ], - ], - ], - ], - ], - 'BlendList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LocationId' => [ - 'description' => '位置关联列表,与VideoLayers顺序保持一致。', - 'type' => 'array', - 'items' => [ - 'description' => '位置ID。', - 'type' => 'string', - 'example' => 'RV01', - ], - ], - ], - ], - 'LayoutId' => [ - 'description' => '布局ID。', - 'type' => 'string', - 'example' => '72d2ec7a-4cd7-4a01-974b-7cd53947****', - ], - 'MixList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LocationId' => [ - 'description' => '位置关联列表,与AudioLayers顺序保持一致。', - 'type' => 'array', - 'items' => [ - 'description' => '位置ID。', - 'type' => 'string', - 'example' => 'RV01', - ], - ], - ], - ], - 'VideoLayers' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'VideoLayer' => [ - 'description' => 'Videolayer配置列表,采用数组默认序列。', - 'type' => 'array', - 'items' => [ - 'description' => 'videolayer配置列表,采用数组默认序列。', - 'type' => 'object', - 'properties' => [ - 'FillMode' => [ - 'description' => '元素填充方式。取值: '."\n" - .' '."\n" - .'- **none**(默认):不填充。以画面作为配置目标进行Layer设置。'."\n" - .'- **fit**:自适应。以填充区(框)作为配置目标进行Layer设置,此时画面会按照原始的宽高比缩放,长边对齐的自适应方式在填充区(框)内居中填充,若填充区宽高比和画面不一致,则短边两侧无填充(显示为下层Layer画面,若下层未配置Layer,默认为底图黑色)。', - 'type' => 'string', - 'example' => 'fit', - ], - 'FixedDelayDuration' => [ - 'description' => '该字段对视频进行固定延迟设置,可用于字幕同步。 '."\n" - .' '."\n" - .'单位:毫秒(ms) 。 默认值为**0** 。取值范围为**0~5000**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'HeightNormalized' => [ - 'description' => 'Layer元素的高度归一化比例值。 '."\n" - .' '."\n" - .'- 若采用不填充模式,元素的宽度会按照该高度来进行等比缩放。默认值为**0**,表示按照画面的原始尺寸进行显示。'."\n" - .'- 若采用自适应方式,该字段必传且大于**0**,表示填充区(框)高度归一化比例值。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.5', - ], - 'PositionNormalizeds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Position' => [ - 'description' => 'Layer元素的位置归一化值`[x,y]`,默认为`[0,0]`。'."\n" - .'>注意x,y需要进行归一化计算。', - 'type' => 'array', - 'items' => [ - 'description' => '值。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - ], - ], - ], - 'PositionRefer' => [ - 'description' => '设置元素的位置参考坐标值。取值:'."\n" - ."\n" - .'- **topLeft**(默认值):左上。'."\n" - .'- **topRight**:右上。'."\n" - .'- **bottomLeft**:左下。'."\n" - .'- **bottomRight**:右下。 '."\n" - .'- **center**:中间。'."\n" - .'- **topCenter**:中上。'."\n" - .'- **bottomCenter**:中下。'."\n" - .'- **leftCenter**:左中。'."\n" - .'- **rightCenter**:右中。', - 'type' => 'string', - 'example' => 'topLeft', - ], - 'WidthNormalized' => [ - 'description' => 'Layer元素的宽度归一化比例值。 '."\n" - .' '."\n" - .'- 若采用不填充模式,元素的高度会按照该宽度来进行等比缩放。默认值为**0**,表示按照画面的原始尺寸进行显示。 '."\n" - .'- 若采用自适应方式,该字段必传且大于**0**,表示填充区(框)宽度归一化比例值。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.5', - ], - ], - ], - ], - ], - ], + 'OssObject' => ['description' => 'OSS存储的文件名。', 'type' => 'string', 'example' => '{liveApp****}/{liveStream****}.jpg'], + 'OssBucket' => ['description' => 'OSS存储Bucket名称。', 'type' => 'string', 'example' => 'liveBucket****'], + 'CreateTime' => ['description' => '截图产生时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-12-01T17:36:00Z'], + 'OssEndpoint' => ['description' => 'OSS存储的Endpoint名称。', 'type' => 'string', 'example' => 'cn-oss-****.aliyuncs.com'], + 'IsOverlay' => ['description' => '截图方式。取值:'."\n" + ."\n" + .'- **true**:覆盖截图。'."\n" + ."\n\n" + .'- **false**:序列截图。', 'type' => 'boolean', 'example' => 'false'], + 'CreateTimestamp' => ['description' => '截图文件创建的毫秒级时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1653641526637'], ], + 'description' => '', ], ], ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3be7ade8-d907-483c-b24a-0dad45****', - ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified parameter StartTime is not valid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified parameter EndTime is not valid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidStream.NotFound', 'errorMessage' => 'Speicified stream does not exist.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Layouts\\": {\\n \\"Layout\\": [\\n {\\n \\"AudioLayers\\": {\\n \\"AudioLayer\\": [\\n {\\n \\"FixedDelayDuration\\": 20,\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 1\\n }\\n ]\\n },\\n \\"BlendList\\": {\\n \\"LocationId\\": [\\n \\"RV01\\"\\n ]\\n },\\n \\"LayoutId\\": \\"72d2ec7a-4cd7-4a01-974b-7cd53947****\\",\\n \\"MixList\\": {\\n \\"LocationId\\": [\\n \\"RV01\\"\\n ]\\n },\\n \\"VideoLayers\\": {\\n \\"VideoLayer\\": [\\n {\\n \\"FillMode\\": \\"fit\\",\\n \\"FixedDelayDuration\\": 20,\\n \\"HeightNormalized\\": 0.5,\\n \\"PositionNormalizeds\\": {\\n \\"Position\\": [\\n 0\\n ]\\n },\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 0.5\\n }\\n ]\\n }\\n }\\n ]\\n },\\n \\"RequestId\\": \\"3be7ade8-d907-483c-b24a-0dad45****\\",\\n \\"Total\\": 3\\n}","errorExample":""},{"type":"xml","example":"\\n3be7ade8-d907-483c-b24a-0dad4595beaf\\n\\n \\n 72d2ec7a-4cd7-4a01-974b-7cd53947****\\n \\n \\n all\\n 1\\n 20\\n \\n \\n \\n \\n fit\\n 0.5\\n topLeft\\n 20\\n 0.5\\n \\n [0,3]\\n \\n \\n \\n \\n \\"RV01\\", \\"RV02\\"\\n \\n \\n RV01\\n \\n \\n\\n3\\n","errorExample":"{\\n \\"RequestId\\": \\"3be7ade8-d907-483c-b24a-0dad4595beaf\\",\\n \\"Layouts\\": [\\n {\\n \\"MixList\\": [\\n \\"RV01\\"\\n ],\\n \\"AudioLayers\\": [\\n {\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 1\\n }\\n ],\\n \\"VideoLayers\\": [\\n {\\n \\"HeightNormalized\\": 0.5,\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 0.5,\\n \\"PositionNormalized\\": [\\n 0,\\n 0.3\\n ]\\n },\\n {\\n \\"HeightNormalized\\": 0.5,\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 0.5,\\n \\"PositionNormalized\\": [\\n 0.5,\\n 0.3\\n ]\\n }\\n ],\\n \\"LayoutId\\": \\"72d2ec7a-4cd7-4a01-974b-7cd53947f053\\",\\n \\"BlendList\\": [\\n \\"RV01\\",\\n \\"RV02\\"\\n ]\\n },\\n {\\n \\"MixList\\": [\\n \\"RV01\\"\\n ],\\n \\"AudioLayers\\": [\\n {\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 0.5\\n }\\n ],\\n \\"VideoLayers\\": [\\n {\\n \\"HeightNormalized\\": 1,\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 1,\\n \\"PositionNormalized\\": [\\n 0,\\n 0\\n ]\\n },\\n {\\n \\"HeightNormalized\\": 0.4,\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"WidthNormalized\\": 0.4,\\n \\"PositionNormalized\\": [\\n 0.1,\\n 0.1\\n ]\\n }\\n ],\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\",\\n \\"BlendList\\": [\\n \\"RV01\\",\\n \\"RV02\\"\\n ]\\n }\\n ]\\n}"}]', - 'title' => '查询导播台布局列表', - 'description' => '调用本接口查询导播台布局列表。若未指定具体的布局ID,则默认查询导播台下所有布局列表。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextStartTime\\": \\"2015-12-01T17:36:00Z\\",\\n \\"RequestId\\": \\"62136AE6-7793-45ED-B14A-60D19A9486D3\\",\\n \\"LiveStreamSnapshotInfoList\\": {\\n \\"LiveStreamSnapshotInfo\\": [\\n {\\n \\"OssObject\\": \\"{liveApp****}/{liveStream****}.jpg\\",\\n \\"OssBucket\\": \\"liveBucket****\\",\\n \\"CreateTime\\": \\"2015-12-01T17:36:00Z\\",\\n \\"OssEndpoint\\": \\"cn-oss-****.aliyuncs.com\\",\\n \\"IsOverlay\\": false,\\n \\"CreateTimestamp\\": 1653641526637\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2015-12-01T17:36:00Z\\n 62136AE6-7793-45ED-B14A-60D19A9486D3\\n \\n {liveApp****}/{liveStream****}.jpg\\n liveBucket****\\n 2015-12-01T17:36:00Z\\n cn-oss-****.aliyuncs.com\\n false\\n 1653641526637\\n \\n","errorExample":""}]', + 'title' => '查询一段时间内截图内容', + 'description' => '调用本接口仅支持查询一年内的截图数据。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AddCasterComponent' => [ - 'summary' => '添加导播台组件。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamSnapshotInfo'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamSnapshotInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveStreamState' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'CasterId', - 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'>直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], - ], - [ - 'name' => 'ComponentName', - 'in' => 'query', - 'schema' => [ - 'description' => '组件名称。默认为组件ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'text01', - ], - ], - [ - 'name' => 'LocationId', - 'in' => 'query', - 'schema' => [ - 'description' => '用于指定组件位置,每个位置至多设置一个组件,格式需符合“RC01~RC99”。'."\n" - ."\n" - .'> 组件类型为caption时,表示引用的视频源Location。', - 'type' => 'string', - 'required' => true, - 'example' => 'RC01', - ], - ], - [ - 'name' => 'ComponentType', - 'in' => 'query', - 'schema' => [ - 'description' => '组件类型。取值:'."\n" - ."\n" - .'- **text**:文字组件。如果选择text类型,必须同时设置请求参数TextLayerContent。'."\n" - ."\n" - .'- **image**:图片组件。如果选择image类型,必须同时设置请求参数ImageLayerContent。'."\n" - ."\n" - .'- **caption**:翻译字幕组件。如果选择caption类型,必须同时设置请求参数CaptionLayerContent。'."\n" - ."\n\n" - ."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'text', - ], - ], - [ - 'name' => 'Effect', - 'in' => 'query', - 'schema' => [ - 'description' => '组件显示的特效 。取值:'."\n" - .' '."\n" - .'- **none**(默认值):无。'."\n" - .'- **animateH**:水平滚动。'."\n" - .'- **animateV**:垂直滚动。', - 'type' => 'string', - 'required' => false, - 'example' => 'animateH', - ], - ], - [ - 'name' => 'ComponentLayer', - 'in' => 'query', - 'schema' => [ - 'description' => '该组件Layer的尺寸,布局等信息。设置元素说明如下:'."\n" - .'- **HeightNormalized**:高度归一化比例值。'."\n" - .'- **WidthNormalized**:宽度归一化比例值。'."\n" - .'- **PositionNormalized**:layer 元素的位置归一化值。'."\n" - .'- **PositionRefer**:元素的位置参考坐标值。'."\n" - ."\n" - .'JSON格式字符串,参数名采用首字母大写、驼峰格式。', - 'type' => 'string', - 'required' => true, - 'example' => '{"HeightNormalized":"1","PositionRefer":"topRight","WidthNormalized":"0","PositionNormalized":["0.1","0.2"]}', - ], - ], - [ - 'name' => 'LayerOrder', - 'in' => 'query', - 'schema' => [ - 'description' => '组件层叠次序。'."\n" - ."\n" - .'- cover:覆盖。'."\n" - .'- background:背景。', - 'type' => 'string', - 'required' => false, - 'example' => 'cover', - ], - ], - [ - 'name' => 'TextLayerContent', - 'in' => 'query', - 'schema' => [ - 'description' => 'Layer元素属性。元素属性说明如下:'."\n" - .'>当ComponentType为text时,本参数才可用且必传。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'- **SizeNormalized**:字体归一化大小,字体设置大小为“font_size/output_height”,取值范围`[0,1]`,如果系统根据归一化方式反计算出来的字体大小大于1024,取1024。'."\n" - .'- **BorderWidthNormalized**:文字边框宽度归一化值,该归一化值是基于文字的size来计算的,即“BorderWidth/FontSize”,取值范围`[0,1]`,如果根据归一化方式反计算出来的值超过16,取16,默认0。'."\n" - .'- **FontName**:字体名称,取值请参见**导播台字体说明**,默认楷体,“KaiTi”。'."\n" - .'- **BorderColor**:文字边框色彩,取值“0x000000-0xffffff”,默认“”,表示无效。'."\n" - .'- **Text**:文本内容,默认“”。'."\n" - .'- **Color**:文字色彩,默认“0xff0000”,红色。'."\n" - ."\n" - .'JSON格式字符串,参数名采用首字母大写,驼峰格式。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"BorderWidthNormalized":"1","SizeNormalized":"0.2","Color":"0x000000","FontName":"KaiTi","BorderColor":"0x000000","Text":"hello world!"}', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ImageLayerContent', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'Layer元素属性。元素属性说明如下:'."\n" - ."\n" - .'> ComponentType为image时,该参数必传。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'MaterialId:媒资库素材ID。上传素材时设置的名称就是媒资库素材ID。'."\n" - ."\n" - .'JSON格式字符串,参数名采用首字母大写,驼峰格式。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"MaterialId":"6cf724c6ebfd4a59b5b3cec6f10d****"}', - ], + 'schema' => ['description' => '直播推流域名或播流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'CaptionLayerContent', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => 'Layer元素属性。元素属性说明如下:'."\n" - .'>当ComponentType为caption时,该参数必传。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'- **SizeNormalized**:字体归一化大小,字体设置大小为“font_size/output_height”,取值范围`[0,1]`,精确到小数点后两位,如果系统根据归一化方式反计算出来的字体大小大于**1024**,取**1024**。'."\n" - .'- **BorderWidthNormalized**:文字边框宽度归一化值,该归一化值是基于文字的size来计算的,即“BorderWidth/FontSize”,取值范围`[0,1]`,精确到小数点后两位,如果根据归一化方式反计算出来的值超过**16**,取**16**,默认**0**。'."\n" - .'- **FontName**:字体名称,取值请参见**云导播字体说明**,默认楷体,“KaiTi”。'."\n" - .'- **BorderColor**:文字边框色彩,取值“0x000000-0xffffff”,默认“”,表示无效。'."\n" - .'- **LocationId**: 翻译源的channelId。'."\n" - .'- **SourceLan**: 视频源的原始音频语言。En-英文,cn-中文,es-西班牙文,ru-俄文,默认为cn-中文。'."\n" - .'- **TargetLan**:视频源的目标音频语言。不设置表示语音识别,设置表示翻译。取值:en-英文,cn-中文,es-西班牙文,ru-俄文,cn-中文。'."\n" - .'- **ShowSourceLan**:是否显示源语言。取值:true-显示,false-不显示,默认为false。'."\n" - .'- **Truncation**:字幕是否可以被截断。取值:true-可以被截断,false-不可以被截断,默认为false。'."\n" - .'- **SourceLanPerLineWordCount**:源语言每行字数,默认20。'."\n" - .'- **TargetLanPerLineWordCount**:目标语言每行字数,默认20。'."\n" - .'- **SourceLanReservePages**:源语言保留行数,Truncation为true的时候生效,默认2行。'."\n" - .'- **TargetLanReservePages**:目标语言保留行数,Truncation为true的时候生效,默认2行。'."\n" - ."\n" - .'JSON格式字符串,参数名采用首字母大写,驼峰格式。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"BorderWidthNormalized":0.01,"SizeNormalized":0.05,"Color":"0x000000","LocationId":"RV01","SourceLan":"cn","FontName":"KaiTi","BorderColor":"0xffffff"}', - ], + 'schema' => ['description' => '直播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'HtmlLayerContent', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => 'H5组件配置。', - 'type' => 'string', - 'required' => false, - 'example' => '{"htmlUrl":http://caster.example.com}', - ], + 'schema' => ['description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], ], 'responses' => [ @@ -36423,172 +28856,200 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ComponentId' => [ - 'description' => '组件ID。可作为查询导播台组件、修改导播台组件、删除导播台组件的请求参数。', - 'type' => 'string', - 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'Type' => ['description' => '推流接入的类型。取值:'."\n" + ."\n" + .'- push:直播推流。'."\n" + ."\n" + .'- pull:触发拉流。'."\n" + ."\n\n" + ."\n", 'type' => 'string', 'example' => 'push'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CE6CD79D-0A98-1F22-A15F-FADA74DF2729'], + 'StreamState' => ['description' => '流状态。取值:'."\n" + .'- online:推流中,表示正常推流中。'."\n" + .'- offline:不在线(推流失败或者推流结束,具体状态根据推流回调返回,此API不细分)。', 'type' => 'string', 'example' => 'online'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidPositionNormalized.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'DuplicateLocationID', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'CanvasNotExist', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ComponentId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ComponentId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\"\\n}"}]', - 'title' => '添加导播台组件', - 'description' => '请先创建导播台、了解导播台的布局列表后再调用本接口添加导播台组件。本接口目前支持添加图片、文字、字幕三类组件。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" - ."\n\n" - .'## QPS限制'."\n" + 'title' => '查询单路流状态', + 'summary' => '实时查询单路流状态。', + 'description' => '先获取直播域名,再调用本接口实时查询单路流状态。关于不在线状态(offline)的详细信息,请根据推流回调返回的数据获取,本接口不做细分。'."\n" ."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '## 云导播字体说明'."\n" - .'|字体|FontName取值|'."\n" - .'|-----|-----|'."\n" - .'|楷体|KaiTi|'."\n" - .'|阿里巴巴普惠体-常规|AlibabaPuHuiTi-Regular|'."\n" - .'|阿里巴巴普惠体-粗体|AlibabaPuHuiTi-Bold|'."\n" - .'|阿里巴巴普惠体-细体|AlibabaPuHuiTi-Light|'."\n" - .'|思源黑体-常规|NotoSansHans-Regular|'."\n" - .'|思源黑体-粗体|NotoSansHans-Bold|'."\n" - .'|思源黑体-细体|NotoSansHans-Light|', + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteCasterComponent' => [ - 'summary' => '调用DeleteCasterComponent删除导播台组件。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '2000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamState'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamState', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Type\\": \\"push\\",\\n \\"RequestId\\": \\"CE6CD79D-0A98-1F22-A15F-FADA74DF2729\\",\\n \\"StreamState\\": \\"online\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\nonline\\npush\\nCE6CD79D-0A98-1F22-A15F-FADA74DF2729\\n","errorExample":""}]', + ], + 'DescribeLiveStreamTranscodeInfo' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainTranscodeName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'ComponentId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '组件ID。如果您通过[AddCasterComponent接口](~~2848030~~)添加导播台组件,请查看AddCasterComponent接口调用返回的参数ComponentId值。', - 'type' => 'string', - 'required' => true, - 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => false, 'example' => 'myapp'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '转码配置信息。', 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。可作为查询导播台组件列表、添加导播台节目单、修改导播台组件的请求参数。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880****', - ], - 'ComponentId' => [ - 'description' => '组件ID。可作为查询导播台组件列表、修改导播台组件的请求参数。', - 'type' => 'string', - 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '62136AE6-7793-45ED-B14A-60D19A9486D3'], + 'DomainTranscodeList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DomainTranscodeInfo' => [ + 'description' => '转码配置信息。', + 'type' => 'array', + 'items' => [ + 'description' => '转码配置信息。', + 'type' => 'object', + 'properties' => [ + 'TranscodeApp' => ['description' => '应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'TranscodeTemplate' => ['description' => '转码模版。取值:'."\n" + ."\n" + .'- **标准质量模板**:'."\n" + ."\n" + .' - **lld**:流畅。'."\n" + .' '."\n" + .' - **lsd**:标清。'."\n" + .' '."\n" + .' - **lhd**:高清。'."\n" + .' '."\n" + .' - **lud** :超清。'."\n" + ."\n" + .'- **窄带高清™转码模板**: '."\n" + ."\n" + .' - **ld**:流畅。'."\n" + .' '."\n" + .' - **sd**:标清。'."\n" + .' '."\n" + .' - **hd**:高清。'."\n" + .' '."\n" + .' - **ud**:超清。', 'type' => 'string', 'example' => 'lld'], + 'IsLazy' => ['description' => '是否开启强制转码。取值:'."\n" + .'- **true**:延迟转码。'."\n" + .'- **false**:强制转码。', 'type' => 'boolean', 'example' => 'true'], + 'TranscodeName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'CustomTranscodeParameters' => [ + 'description' => '自定义转码配置。', + 'type' => 'object', + 'properties' => [ + 'BitrateWithSource' => ['description' => '码率随源配置。', 'type' => 'object', 'example' => '{\\"UpLimit\\":2500,\\"LowerLimit\\":800,\\"Factor\\":1}'], + 'VideoProfile' => ['description' => '视频的编码等级。取值:'."\n" + ."\n" + .'- **baseline**:适合移动设备。'."\n" + .'- **main**:适合标准分辨率设备。'."\n" + .'- **high**:适合高分辨率设备。', 'type' => 'string', 'example' => 'high'], + 'AudioBitrate' => ['description' => '转码音频比特率。单位:kbps,取值范围:**1~1000**。', 'type' => 'integer', 'format' => 'int32', 'example' => '64'], + 'Height' => ['description' => '转码视频高度。', 'type' => 'integer', 'format' => 'int32', 'example' => '1200'], + 'RtsFlag' => ['description' => '低延时的标签。固定取值**true**。'."\n" + ."\n" + .'> 当转码为低延时转码时,才返回此参数。', 'type' => 'string', 'example' => 'true'], + 'TemplateType' => ['description' => '自定义转码模版类型。取值:'."\n" + ."\n" + .'- **h264**:自定义H264标准模版。'."\n" + .'- **h264-nbhd**:自定义H264窄带高清™模版。'."\n" + .'- **h265**:自定义H265标准模版。'."\n" + .'- **h265-nbhd**:自定义H265窄带高清模版。'."\n" + .'- **audio**:纯音频模板。', 'type' => 'string', 'example' => 'h264'], + 'Bframes' => ['description' => '去B帧。固定取值:**0**。', 'type' => 'string', 'example' => '0'], + 'ExtWithSource' => ['description' => '其他随源配置。', 'type' => 'object', 'example' => '{\\"KeyFrameOpen\\":\\"yes\\",\\"Copyts\\":\\"yes\\",\\"SeiMode\\":1}'], + 'AudioRate' => ['description' => '音频采样率。取值:**22050~96000**。'."\n" + ."\n" + .'>如果AudioProfile取值为**aac_ld**,则采样率不能超过44100。', 'type' => 'integer', 'format' => 'int32', 'example' => '44100'], + 'FpsWithSource' => ['description' => '帧率随源配置。', 'type' => 'object', 'example' => '{\\"UpLimit\\":60,\\"LowerLimit\\":1}'], + 'AudioCodec' => ['description' => '音频编码格式。', 'type' => 'string', 'example' => 'ACC'], + 'FPS' => ['description' => '转码视频帧率。单位:FPS。', 'type' => 'integer', 'format' => 'int32', 'example' => '15'], + 'Gop' => ['description' => '视频GOP(Group of Picture)。单位:帧,取值范围:**1~3000**。', 'type' => 'string', 'example' => '10'], + 'Width' => ['description' => '转码视频宽度。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + 'VideoBitrate' => ['description' => '转码视频比特率。单位:kbps。', 'type' => 'integer', 'format' => 'int32', 'example' => '3000'], + 'AudioChannelNum' => ['description' => '音频声道数。取值:'."\n" + ."\n" + .'- **1**:单声道。'."\n" + .'- **2**:双声道。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'AudioProfile' => ['description' => '音频编码等级。取值:'."\n" + .'- **aac_low**'."\n" + .'- **aac_he**'."\n" + .'- **aac_he_v2**'."\n" + .'- **aac_ld**'."\n", 'type' => 'string', 'example' => 'aac_low'], + 'ResWithSource' => ['description' => '分辨率随源配置。', 'type' => 'object', 'example' => '{\\"Type\\":\\"short\\",\\"Value\\":\\"1080\\"}'], + 'DeInterlaced' => ['description' => '转码过程中是否自动检测并去除隔行处理(将隔行扫描内容转换为逐行扫描):'."\n" + ."\n" + .'- true:开启去隔行处理。'."\n" + ."\n" + .'- false:保持源格式,不做处理(默认)。', 'type' => 'boolean'], + ], + ], + 'EncryptParameters' => [ + 'description' => '加密配置。', + 'type' => 'object', + 'properties' => [ + 'EncryptType' => ['description' => '加密类型。固定取值**aliyun**。', 'type' => 'string', 'example' => 'aliyun'], + 'KmsKeyID' => ['description' => '用户KMS主密钥ID。', 'type' => 'string', 'example' => 'afce5722-81d2-43c3-9930-7601da11****'], + 'KmsKeyExpireInterval' => ['description' => '换Key周期。取值范围:**60~3600**,单位:秒。', 'type' => 'string', 'example' => '3600'], + ], + ], + ], + ], + ], + ], + 'description' => '', ], ], ], @@ -36596,228 +29057,159 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidComponent.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880****\\",\\n \\"ComponentId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880****\\n 21926b36-7dd2-4fde-ae25-51b5bc8e****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '删除导播台组件', - 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口删除导播台组件。'."\n" - ."\n" + 'title' => '查询转码配置信息', + 'summary' => '查询转码配置信息。', + 'description' => '先获取主播流域名,再调用本接口查询转码配置信息。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyCasterComponent' => [ - 'summary' => '调用ModifyCasterComponent修改导播台组件。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamTranscodeInfo'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamTranscodeInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"62136AE6-7793-45ED-B14A-60D19A9486D3\\",\\n \\"DomainTranscodeList\\": {\\n \\"DomainTranscodeInfo\\": [\\n {\\n \\"TranscodeApp\\": \\"liveApp****\\",\\n \\"TranscodeTemplate\\": \\"lld\\",\\n \\"IsLazy\\": true,\\n \\"TranscodeName\\": \\"example.com\\",\\n \\"CustomTranscodeParameters\\": {\\n \\"BitrateWithSource\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"VideoProfile\\": \\"high\\",\\n \\"AudioBitrate\\": 64,\\n \\"Height\\": 1200,\\n \\"RtsFlag\\": \\"true\\",\\n \\"TemplateType\\": \\"h264\\",\\n \\"Bframes\\": \\"0\\",\\n \\"ExtWithSource\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"AudioRate\\": 44100,\\n \\"FpsWithSource\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"AudioCodec\\": \\"ACC\\",\\n \\"FPS\\": 15,\\n \\"Gop\\": \\"10\\",\\n \\"Width\\": 1000,\\n \\"VideoBitrate\\": 3000,\\n \\"AudioChannelNum\\": 2,\\n \\"AudioProfile\\": \\"aac_low\\",\\n \\"ResWithSource\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"DeInterlaced\\": true\\n },\\n \\"EncryptParameters\\": {\\n \\"EncryptType\\": \\"aliyun\\",\\n \\"KmsKeyID\\": \\"afce5722-81d2-43c3-9930-7601da11****\\",\\n \\"KmsKeyExpireInterval\\": \\"3600\\"\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 62136AE6-7793-45ED-B14A-60D19A9486D3\\n \\n liveApp****\\n lld\\n true\\n example.com\\n \\n high\\n 64\\n 1200\\n true\\n h264\\n 0\\n 44100\\n ACC\\n 15\\n 10\\n 1000\\n 3000\\n 2\\n aac_low\\n \\n \\n aliyun\\n afce5722-81d2-43c3-9930-7601da11****\\n 3600\\n \\n \\n","errorExample":""}]', + ], + 'DescribeLiveStreamTranscodeMetricData' => [ + 'summary' => '查询指定域名app及流粒度转码数据。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '域名名称。仅支持单个域名查询。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'ComponentId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '组件ID。如果您通过[AddCasterComponent接口](~~2848030~~)添加导播台组件,请查看AddCasterComponent接口调用返回的参数ComponentId值。', - 'type' => 'string', - 'required' => true, - 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', - ], + 'schema' => ['description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2023-06-11T02:46:40Z'], ], [ - 'name' => 'ComponentName', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '组件名称,默认为组件ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'text01', - ], + 'schema' => ['description' => '结束时间。需晚于开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2023-06-11T03:46:40Z'], ], [ - 'name' => 'ComponentType', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '组件的类型。取值:'."\n" - .'- **text**:文字组件。如果ComponentType的取值为text,TextLayerContent参数才必传。'."\n" - .'- **image**:图片组件。如果ComponentType的取值为image,ImageLayerContent参数才必传。'."\n" - .'- **caption**:翻译字幕组件。如果ComponentType的取值为caption,CaptionLayerContent参数才必传。', - 'type' => 'string', - 'required' => false, - 'example' => 'text', - ], + 'schema' => ['description' => '应用名称。', 'type' => 'string', 'required' => false, 'example' => 'app'], ], [ - 'name' => 'Effect', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '组件显示的特效。取值:'."\n" - ."\n" - .' - **none**(默认值):无。'."\n" - .' - **animateH**:水平滚动。'."\n" - .' - **animateV**:垂直滚动。 ', - 'type' => 'string', - 'required' => false, - 'example' => 'animateV', - ], + 'schema' => ['description' => '流的名称。', 'type' => 'string', 'required' => false, 'example' => 'stream'], ], [ - 'name' => 'ComponentLayer', + 'name' => 'NextPageToken', 'in' => 'query', - 'schema' => [ - 'description' => 'Layer的尺寸,布局等信息。格式为JSON。设置元素说明如下:'."\n" - .'- **HeightNormalized**:高度归一化比例值。'."\n" - .'- **WidthNormalized**:宽度归一化比例值。'."\n" - .'- **PositionNormalized**:layer 元素的位置归一化值。'."\n" - .'- **PositionRefer**:元素的位置参考坐标值。', - 'type' => 'string', - 'required' => false, - 'example' => '{"HeightNormalized":"1","PositionRefer":"topRight","WidthNormalized":"0","PositionNormalized":["0.1","0.2"]}', - ], - ], - [ - 'name' => 'TextLayerContent', - 'in' => 'query', - 'schema' => [ - 'description' => 'Layer元素属性。格式为JSON。元素属性说明如下:'."\n" - .'>当ComponentType取值为text时,本参数必传。'."\n" - .'>'."\n" - .'- **SizeNormalized**:字体归一化大小,字体设置大小为“font_size/output_height”,取值范围`[0,1]`,如果系统根据归一化方式反计算出来的字体大小大于1024,取1024。'."\n" - .'- **BorderWidthNormalized**:文字边框宽度归一化值,该归一化值是基于文字的size来计算的,即“BorderWidth/FontSize”,取值范围`[0,1]`,如果根据归一化方式反计算出来的值超过16,取16,默认0。'."\n" - .'- **FontName**:字体名称,取值请参见**导播台字体说明**,默认楷体,“KaiTi”。'."\n" - .'- **BorderColor**:文字边框色彩,取值“0x000000-0xffffff”,默认“”,表示无效。'."\n" - .'- **Text**:文本内容,默认“”。'."\n" - .'- **Color**:文字色彩,默认“0xff0000”,红色。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"BorderWidthNormalized":"1","SizeNormalized":"0.2","Color":"0x000000","FontName":"KaiTi","BorderColor":"0x000000","Text":"hello world!"}', - ], - ], - [ - 'name' => 'ImageLayerContent', - 'in' => 'query', - 'schema' => [ - 'description' => 'Layer元素属性。格式为JSON。'."\n" - .'>当ComponentType为image时,本参数必传。'."\n" - .'>'."\n" - ."\n\n" - .'MaterialId为媒资库素材ID。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"MaterialId":"6cf724c6ebfd4a59b5b3cec6f10d5ecf"}', - ], - ], - [ - 'name' => 'CaptionLayerContent', - 'in' => 'query', - 'schema' => [ - 'description' => 'Layer元素属性。格式为JSON。元素属性说明如下:'."\n" - .'>当ComponentType为caption时,本参数必传。'."\n" - .'>'."\n" - .'- **SizeNormalized**:字体归一化大小,字体设置大小为“font_size/output_height”,取值范围`[0,1]`,如果系统根据归一化方式反计算出来的字体大小大于1024,取1024。'."\n" - .'- **BorderWidthNormalized**:文字边框宽度归一化值,该归一化值是基于文字的size来计算的,即“BorderWidth/FontSize”,取值范围`[0,1]`,如果根据归一化方式反计算出来的值超过16,取16,默认0。'."\n" - .'- **FontName**:字体名称,取值请参见**导播台字体说明**,默认楷体,“KaiTi”。'."\n" - .'- **BorderColor**:文字边框色彩,取值“0x000000-0xffffff”,默认“”,表示无效。'."\n" - .'- **LocationId**: 翻译源的channelId。'."\n" - .'- **SourceLan**: 视频源的原始音频语言。En-英文,cn-中文,es-西班牙文,ru-俄文,默认为cn-中文。'."\n" - .'- **TargetLan**:视频源的目标音频语言。不设置表示语音识别,设置表示翻译。取值:en-英文,cn-中文,es-西班牙文,ru-俄文,cn-中文。'."\n" - .'- **ShowSourceLan**:是否显示源语言。取值:true-显示,false-不显示,默认为false。'."\n" - .'- **Truncation**:字幕是否可以被截断。取值:true-可以被截断,false-不可以被截断,默认为false。'."\n" - .'- **SourceLanPerLineWordCount**:源语言每行字数,Truncation为true的时候生效, 默认20。'."\n" - .'- **TargetLanPerLineWordCount**:目标语言每行字数,Truncation为true的时候生效,默认20。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"BorderWidthNormalized":0.01,"SizeNormalized":0.05,"Color":"0x000000","LocationId":"RV01","SourceLan":"cn","FontName":"KaiTi","BorderColor":"0xffffff"}', - ], + 'schema' => ['description' => '分页查询token,每次查询最多返回5000行数据,当要查询的数据超过5000行时,响应数据会提供下次查询数据的起始索引。'."\n" + ."\n" + .'请求时传入该token,将从上一次查询结束的下一行继续查询未获取的数据。', 'type' => 'string', 'required' => false, 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0='], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'ComponentId' => [ - 'description' => '组件ID。可作为查询导播台组件列表的请求参数。', - 'type' => 'string', - 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'DomainName' => ['description' => '域名名称。', 'type' => 'string', 'example' => 'example.com'], + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2023-06-11T02:46:40Z'], + 'NextPageToken' => ['description' => '分页查询token,每次查询最多返回5000行数据,当要查询的数据超过5000行时,响应数据会提供下次查询数据的起始索引。'."\n" + ."\n" + .'请求时传入该token,将从上一次查询结束的下一行继续查询未获取的数据。', 'type' => 'string', 'example' => 'UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0='], + 'PageSize' => ['description' => '返回数据行数。', 'type' => 'integer', 'format' => 'int32', 'example' => '5000'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'StartTime' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2023-06-11T03:46:40Z'."\n"], + 'StreamDetailData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamData' => [ + 'description' => '返回数据组。', + 'type' => 'array', + 'items' => [ + 'description' => '流数据。', + 'type' => 'object', + 'properties' => [ + 'AppName' => ['description' => '应用名称。', 'type' => 'string', 'example' => 'app'], + 'Duration' => ['description' => '时长。单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '300'], + 'Fps' => [ + 'description' => '帧率。', + 'type' => 'string', + 'enumValueTitles' => ['normal' => 'normal', 'high' => 'high', 'def' => 'def'], + 'example' => 'high', + ], + 'Region' => ['description' => '地区。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'Resolution' => [ + 'description' => '分辨率。取值:'."\n" + ."\n" + .'- 2K:2K。'."\n" + .'- 4K:4K。'."\n" + .'- LD:流畅。'."\n" + .'- SD:标清。'."\n" + .'- HD:高清。'."\n" + .'- def:音频。', + 'type' => 'string', + 'enumValueTitles' => ['SD' => 'SD', 'def' => 'def', '4K' => '4K', 'LD' => 'LD', '2K' => '2K', 'HD' => 'HD'], + 'example' => '4K', + ], + 'StreamName' => ['description' => '流名称。', 'type' => 'string', 'example' => 'stream'], + 'TimeStamp' => ['description' => '时间片起始时刻。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2023-06-11T02:45:00Z'], + 'TranscodeType' => [ + 'description' => '转码类型。取值:'."\n" + ."\n" + .'- H264STD:H.264普通转码。'."\n" + .'- H264NBHD:H.264窄带高清转码。'."\n" + .'- H265STD:H.265普通转码。'."\n" + .'- AUDIO:音频转码。', + 'type' => 'string', + 'enumValueTitles' => ['H264NBHD' => 'H264NBHD', 'AUDIO' => 'AUDIO', 'H264STD' => 'H264STD', 'H265STD' => 'H265STD'], + 'example' => 'H264STD', + ], + ], + ], + ], + ], + 'description' => '', ], ], ], @@ -36825,83 +29217,51 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidPositionNormalized.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidComponent.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'CanvasNotExist', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidPageToken', 'errorMessage' => 'The token of page is invalid.', 'description' => '指定的分页token错误,请传入上次查询返回的正确索引,并确认没有修改您的请求参数。'], + ['errorCode' => 'InvalidAppName.Mismatch', 'errorMessage' => 'The AppName param must be passed.', 'description' => 'AppName参数不匹配,请确认传入了正确的AppName参数。'], + ['errorCode' => 'InvalidStreamProtocol.NotSupport', 'errorMessage' => 'The specified stream protocol is not support.', 'description' => '指定的流协议不支持,请参照文档查询所需的流协议。'], + ['errorCode' => 'InvalidStreamName.LengthTooLong', 'errorMessage' => 'The specified stream name is too long.', 'description' => 'StreamName的长度超过限制,请传入合法的StreamName。'], + ['errorCode' => 'InvalidAppName.LengthTooLong', 'errorMessage' => 'The specified app name is too long.', 'description' => 'AppName的长度超过限制,请传入合法的AppName。'], + ['errorCode' => 'InvalidTime.ValueNotSupported', 'errorMessage' => 'Specified Time is malformed.', 'description' => '指定的时间无效。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ComponentId\\": \\"05ab713c-676e-49c0-96ce-cc408da1****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 05ab713c-676e-49c0-96ce-cc408da1****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '修改导播台组件', - 'description' => '调用本接口修改导播台组件。本接口目前支持的组件类型为文字组件、图片组件和翻译字幕组件。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2023-06-11T02:46:40Z\\",\\n \\"NextPageToken\\": \\"UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\",\\n \\"PageSize\\": 5000,\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"StartTime\\": \\"2023-06-11T03:46:40Z\\\\n\\",\\n \\"StreamDetailData\\": {\\n \\"StreamData\\": [\\n {\\n \\"AppName\\": \\"app\\",\\n \\"Duration\\": 300,\\n \\"Fps\\": \\"high\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"Resolution\\": \\"4K\\",\\n \\"StreamName\\": \\"stream\\",\\n \\"TimeStamp\\": \\"2023-06-11T02:45:00Z\\",\\n \\"TranscodeType\\": \\"H264STD\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2023-06-11T02:46:40Z\\n 2023-06-11T03:46:40Z\\n\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n UjsM9x3aVcJi9a0-ArwJUTTC67C***37C0=\\n 5000\\n example.com\\n \\n app\\n stream\\n cn-shanghai\\n 300\\n high\\n 2023-06-11T02:45:00Z\\n H264STD\\n 4K\\n \\n","errorExample":""}]', + 'title' => '按流粒度查询视频流的转码用量', + 'description' => '- 最大查询跨度:24小时。'."\n" + .'- 最小查询粒度:5分钟。'."\n" + .'- 最大查询范围:最近31天的数据。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '## 导播台字体说明'."\n" - .'|字体|FontName取值|'."\n" - .'|-----|-----|'."\n" - .'|楷体|KaiTi|'."\n" - .'|阿里巴巴普惠体-常规|AlibabaPuHuiTi-Regular|'."\n" - .'|阿里巴巴普惠体-粗体|AlibabaPuHuiTi-Bold|'."\n" - .'|阿里巴巴普惠体-细体|AlibabaPuHuiTi-Light|'."\n" - .'|思源黑体-常规|NotoSansHans-Regular|'."\n" - .'|思源黑体-粗体|NotoSansHans-Bold|'."\n" - .'|思源黑体-细体|NotoSansHans-Light|', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeCasterComponents' => [ - 'summary' => '调用DescribeCasterComponents查询导播台组件列表。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamTranscodeMetricData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamTranscodeMetricData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveStreamTranscodeStreamNum' => [ + 'summary' => '调用DescribeLiveStreamTranscodeStreamNum实时查询转码流路数。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -36912,45 +29272,33 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '107109', + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'ComponentId', + 'name' => 'SplitType', 'in' => 'query', 'schema' => [ - 'description' => '组件ID。如果您通过[AddCasterComponent接口](~~2848030~~)添加导播台组件,请查看AddCasterComponent接口调用返回的参数ComponentId值。', + 'description' => '分组类型。'."\n" + .'* 域名(默认)'."\n" + .'* 模板', 'type' => 'string', 'required' => false, - 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', + 'enumValueTitles' => ['template' => '模板', 'domain' => '域名'], + 'example' => 'template', + 'default' => 'domain', + 'enum' => ['domain', 'template'], ], ], ], @@ -36959,414 +29307,94 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Components' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Component' => [ - 'description' => '组件列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CaptionLayerContent' => [ - 'description' => 'Caption元素属性。', - 'type' => 'object', - 'properties' => [ - 'BorderColor' => [ - 'description' => '文字边框色彩。'."\n" - ."\n" - .'取值范围为**0x000000~0xffffff**。默认:"",表示无效。', - 'type' => 'string', - 'example' => '0x000000', - ], - 'BorderWidthNormalized' => [ - 'description' => '文字边框宽度归一化值。该归一化值是基于文字的size来计算的,即BorderWidth/FontSize。'."\n" - ."\n" - .'如果系统归一化反计算出来的值超过**16**,取**16**。默认值为**0**。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'Color' => [ - 'description' => '文字色彩。取值范围为**0x000000~0xffffff**。', - 'type' => 'string', - 'example' => '0x000000', - ], - 'FontName' => [ - 'description' => '字体名字取系统预设值。取值:'."\n" - ."\n" - .'- **KaiTi**:楷体。'."\n" - .'- **AlibabaPuHuiTi-Regular**:阿里巴巴普惠体-常规。'."\n" - .'- **AlibabaPuHuiTi-Bold**:阿里巴巴普惠体-粗体。'."\n" - .'- **NAlibabaPuHuiTi-Light**:阿里巴巴普惠体-细体。'."\n" - .'- **NotoSansHans-Regular**:思源黑体-常规。 '."\n" - .'- **NotoSansHans-Bold**:思源黑体-粗体。 '."\n" - .'- **NotoSansHans-Light**:思源黑体-细体。 '."\n" - ."\n" - .'默认为**KaiTi**。', - 'type' => 'string', - 'example' => 'KaiTi', - ], - 'LineSpaceNormalized' => [ - 'description' => '行间距。表示每两行字之间的间隔。默认值为0。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'LocationId' => [ - 'description' => '组件类型为caption时,表示引用的视频源Location(通道IChannelId)。', - 'type' => 'string', - 'example' => 'RV01', - ], - 'PtsOffset' => [ - 'description' => '纠正当前字幕pts与语音pts偏差值。'."\n" - ."\n" - .'取值范围为 **-10000~+10000**。默认值为**0**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ShowSourceLan' => [ - 'description' => '是否显示源语言。取值:'."\n" - ."\n" - .'- **true**:显示。'."\n" - .'- **false**(默认值):不显示。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'SizeNormalized' => [ - 'description' => '字体归一化大小,字体设置大小为`[font_size,output_height]`。'."\n" - ."\n" - .'如果系统根据归一化方式反计算的出来的字体大小大于**1024**,取**1024**。默认值为 **-1**,表示无效。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.1', - ], - 'SourceLan' => [ - 'description' => '视频源的原始音频语言。取值:'."\n" - .'- **en**:英文。'."\n" - .'- **cn**(默认):中文。'."\n" - .'- **es**:西班牙文。'."\n" - .'- **ru**:俄文。', - 'type' => 'string', - 'example' => 'cn', - ], - 'TargetLan' => [ - 'description' => '视频源的目标音频语言。取值:'."\n" - .'- **en**:英文。'."\n" - .'- **cn**(默认):中文。'."\n" - .'- **es**:西班牙文。'."\n" - .'- **ru**:俄文。', - 'type' => 'string', - 'example' => 'cn', - ], - 'WordCountPerLine' => [ - 'description' => '每行最大展示字数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - 'WordSpaceNormalized' => [ - 'description' => '字间距,表示每两个字之间的间隔。默认值为**0**。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'WordsCount' => [ - 'description' => '显示字数,可配合字体大小调整。'."\n" - ."\n" - .'取值范围为**10~50**。默认值为**35**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '35', - ], - ], - ], - 'ComponentId' => [ - 'description' => '组件ID。', - 'type' => 'string', - 'example' => '72d2ec7a-4cd7-4a01-974b-7cd53947****', - ], - 'ComponentLayer' => [ - 'description' => '组件Layer的尺寸,布局等信息。', - 'type' => 'object', - 'properties' => [ - 'HeightNormalized' => [ - 'description' => 'Layer元素的高度归一化比例值,其中元素的宽度会按照该高度来进行等比缩放。 '."\n" - ."\n" - .'默认值为**0**,表示按照元素的原始尺寸进行显示。 ', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.5', - ], - 'PositionNormalizeds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Position' => [ - 'description' => 'Layer 元素的位置归一化值`[x,y]`, 默认为`[0,0]`。 '."\n" - ."\n" - .'>x,y需要进行归一化计算。'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '值。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.3', - ], - ], - ], - ], - 'PositionRefer' => [ - 'description' => '元素的位置参考坐标值。取值:'."\n" - ."\n" - .'- **topLeft**(默认值):左上。'."\n" - .'- **topRight**:右上。'."\n" - .'- **bottomLeft**:左下。'."\n" - .'- **bottomRight**:右下。', - 'type' => 'string', - 'example' => 'topLeft', - ], - 'Transparency' => [ - 'description' => '该Layer的透明度,取值范围为0~255。'."\n" - ."\n" - .'**0**代表完全透明。**255**(默认)代表完全不透明。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'WidthNormalized' => [ - 'description' => 'Layer元素的宽度归一化比例值,其中元素的高度会按照该宽度来进行等比缩放。默认值为**0**,表示按照元素的原始尺寸进行显示。'."\n" - ."\n" - .'> 该字段和heightNormalized有冲突。一旦同时设置,只有heightNormalized生效。如果只能设置一个,后面设置的值会影响前面的设置。'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.5', - ], - ], - ], - 'ComponentName' => [ - 'description' => '组件名称,默认为组件ID。', - 'type' => 'string', - 'example' => 'component_name', - ], - 'ComponentType' => [ - 'description' => '组件类型。取值:'."\n" - .'- **text**:文字组件。'."\n" - .'- **image**:图像组件。 '."\n" - .'- **caption**:翻译字幕组件。', - 'type' => 'string', - 'example' => 'text', - ], - 'Effect' => [ - 'description' => '组件显示的特效。取值: '."\n" - .' '."\n" - .'- **none**:无。'."\n" - .' '."\n" - .'- **animateH**:水平滚动。'."\n" - .' '."\n" - .'- **animateV**:垂直滚动。', - 'type' => 'string', - 'example' => 'animateV', - ], - 'ImageLayerContent' => [ - 'description' => 'Image元素属性。', - 'type' => 'object', - 'properties' => [ - 'MaterialId' => [ - 'description' => '媒资库素材ID。', - 'type' => 'string', - 'example' => '6cf724c6ebfd4a59b5b3cec6f10d****', - ], - ], - ], - 'LocationId' => [ - 'description' => '用于指定组件位置。'."\n" - ."\n" - .'每个位置至多设置一个组件,格式需符合“RC01…RC12”。', - 'type' => 'string', - 'example' => 'RC01', - ], - 'TextLayerContent' => [ - 'description' => 'Text元素属性。', - 'type' => 'object', - 'properties' => [ - 'BorderColor' => [ - 'description' => '文字边框色彩。取值范围为**0x000000~0xffffff**。默认为 **""**,表示无效。', - 'type' => 'string', - 'example' => '0x000000', - ], - 'BorderWidthNormalized' => [ - 'description' => '文字边框宽度归一化值是基于文字的size来计算的,即**BorderWidth/FontSize**。'."\n" - ."\n" - .'如果系统归一化反计算出来的值超过**16**,取**16**。默认值为**0**。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'Color' => [ - 'description' => '文字色彩。取值范围为**0x000000~0xffffff**。', - 'type' => 'string', - 'example' => '0xff0000', - ], - 'FontName' => [ - 'description' => '字体名字取系统预设值。取值:'."\n" - ."\n" - .'- **KaiTi**:楷体。'."\n" - .'- **AlibabaPuHuiTi-Regular**:阿里巴巴普惠体-常规。'."\n" - .'- **AlibabaPuHuiTi-Bold**:阿里巴巴普惠体-粗体。'."\n" - .'- **NAlibabaPuHuiTi-Light**:阿里巴巴普惠体-细体。'."\n" - .'- **NotoSansHans-Regular**:思源黑体-常规。 '."\n" - .'- **NotoSansHans-Bold**:思源黑体-粗体。 '."\n" - .'- **NotoSansHans-Light**:思源黑体-细体。 '."\n" - ."\n" - .'默认为**KaiTi**。', - 'type' => 'string', - 'example' => 'KaiTi', - ], - 'SizeNormalized' => [ - 'description' => '字体归一化大小。'."\n" - ."\n" - .'设置大小为**font_size/output_height**。如果系统根据归一化方式反计算的出来的字体大小大于**1024**, 取**1024**。默认值为 **-1**,表示无效。', - 'type' => 'number', - 'format' => 'float', - 'example' => '16', - ], - 'Text' => [ - 'description' => '文本内容。', - 'type' => 'string', - 'example' => 'hello world', - ], - ], - ], - ], - ], + 'UntranscodeNumber' => ['description' => '未转码流数。', 'type' => 'integer', 'format' => 'int64', 'example' => '27'], + 'LazyTranscodedNumber' => ['description' => '触发转码流数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'TranscodedNumber' => ['description' => '转码流数。', 'type' => 'integer', 'format' => 'int64', 'example' => '30'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '150191A4-DD88-5941-B48C-9DF59E0A8B1F'], + 'Total' => ['description' => '转码流数量总和。', 'type' => 'integer', 'format' => 'int64', 'example' => '57'], + 'TranscodeStreamCountDetails' => [ + 'description' => '转码模板数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Template' => ['description' => '转码模板名。', 'type' => 'string', 'example' => 'template_name'], + 'Count' => ['description' => '转码模板流数。', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], ], + 'description' => '', ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3be7ade8-d907-483c-b24a-0dad45******', - ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Components\\": {\\n \\"Component\\": [\\n {\\n \\"CaptionLayerContent\\": {\\n \\"BorderColor\\": \\"0x000000\\",\\n \\"BorderWidthNormalized\\": 0,\\n \\"Color\\": \\"0x000000\\",\\n \\"FontName\\": \\"KaiTi\\",\\n \\"LineSpaceNormalized\\": 0,\\n \\"LocationId\\": \\"RV01\\",\\n \\"PtsOffset\\": 0,\\n \\"ShowSourceLan\\": false,\\n \\"SizeNormalized\\": 0.1,\\n \\"SourceLan\\": \\"cn\\",\\n \\"TargetLan\\": \\"cn\\",\\n \\"WordCountPerLine\\": 15,\\n \\"WordSpaceNormalized\\": 0,\\n \\"WordsCount\\": 35\\n },\\n \\"ComponentId\\": \\"72d2ec7a-4cd7-4a01-974b-7cd53947****\\",\\n \\"ComponentLayer\\": {\\n \\"HeightNormalized\\": 0.5,\\n \\"PositionNormalizeds\\": {\\n \\"Position\\": [\\n 0.3\\n ]\\n },\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"Transparency\\": 200,\\n \\"WidthNormalized\\": 0.5\\n },\\n \\"ComponentName\\": \\"component_name\\",\\n \\"ComponentType\\": \\"text\\",\\n \\"Effect\\": \\"animateV\\",\\n \\"ImageLayerContent\\": {\\n \\"MaterialId\\": \\"6cf724c6ebfd4a59b5b3cec6f10d****\\"\\n },\\n \\"LocationId\\": \\"RC01\\",\\n \\"TextLayerContent\\": {\\n \\"BorderColor\\": \\"0x000000\\",\\n \\"BorderWidthNormalized\\": 0,\\n \\"Color\\": \\"0xff0000\\",\\n \\"FontName\\": \\"KaiTi\\",\\n \\"SizeNormalized\\": 16,\\n \\"Text\\": \\"hello world\\"\\n }\\n }\\n ]\\n },\\n \\"RequestId\\": \\"3be7ade8-d907-483c-b24a-0dad45******\\",\\n \\"Total\\": 3\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n 0x000000\\n 0\\n 0x000000\\n KaiTi\\n 0\\n RV01\\n 0\\n false\\n 0.1\\n cn\\n cn\\n 15\\n 0\\n 35\\n \\n 72d2ec7a-4cd7-4a01-974b-7cd53947****\\n \\n 0.5\\n 0.3\\n topLeft\\n 200\\n 0.5\\n \\n component_name\\n text\\n animateV\\n \\n 6cf724c6ebfd4a59b5b3cec6f10d****\\n \\n RC01\\n \\n 0x000000\\n 0\\n 0xff0000\\n KaiTi\\n 16\\n hello world\\n \\n \\n 3be7ade8-d907-483c-b24a-0dad4595beaf\\n 3\\n","errorExample":""}]', - 'title' => '查询导播台组件列表', - 'description' => '先通过[AddCasterComponent接口](~~2848030~~)添加导播台组件,再调用本接口查询导播台组件列表。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CopyCasterSceneConfig' => [ - 'summary' => '将原场景配置应用至目标场景并生效,仅限PVW场景配置拷贝至PGM场景。', - 'methods' => [ - 'post', - 'get', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"UntranscodeNumber\\": 27,\\n \\"LazyTranscodedNumber\\": 10,\\n \\"TranscodedNumber\\": 30,\\n \\"RequestId\\": \\"150191A4-DD88-5941-B48C-9DF59E0A8B1F\\",\\n \\"Total\\": 57,\\n \\"TranscodeStreamCountDetails\\": [\\n {\\n \\"Template\\": \\"template_name\\",\\n \\"Count\\": 30\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 27\\n 10\\n 30\\n 150191A4-DD88-5941-B48C-9DF59E0A8B1F\\n 57\\n","errorExample":""}]', + 'title' => '获取直播流转码流数量', + 'description' => '本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-04-11T03:12:48.000Z', 'description' => '错误码发生变更、请求参数发生变更、响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamTranscodeStreamNum', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveStreamWatermarkRules' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveCT0GRQ'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => false, 'example' => 'live.yourdomain.com'], ], [ - 'name' => 'FromSceneId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '原场景ID,仅限于PVM场景。', - 'type' => 'string', - 'required' => true, - 'example' => 'f1a361f4-bee3-436d-ae6e-d38e6943****', - ], + 'schema' => ['description' => '分⻚的⻚数,不传默认为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'ToSceneId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '目标场景ID,仅限于PGM场景。', - 'type' => 'string', - 'required' => true, - 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', - ], + 'schema' => ['description' => '分⻚每⻚个数,不传默认为100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], ], ], 'responses' => [ @@ -37374,174 +29402,181 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A5****', + 'Total' => ['description' => '符合条件的总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b9676b3'], + 'RuleInfoList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RuleInfo' => [ + 'description' => '⽔印规则列表。', + 'type' => 'array', + 'items' => [ + 'description' => '⽔印规则列表。', + 'type' => 'object', + 'properties' => [ + 'Domain' => ['description' => '播流域名。', 'type' => 'string', 'example' => 'example.aliyundoc.com'], + 'Description' => ['description' => '自定义规则描述信息。', 'type' => 'string', 'example' => 'my rule'], + 'App' => ['description' => '播流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'Stream' => ['description' => '流名称。规则如下:'."\n" + ."\n" + .'- 直接写流名称则仅匹配该流名称。示例:liveStreamA。'."\n" + ."\n" + .'- 可进行模糊匹配,`*`匹配所有流。'."\n" + ."\n" + .'- 可进行前匹配和后匹配。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'- 模糊匹配格式说明:模糊匹配下的`*`要求有且仅有一个,只能在最前或最后,且匹配项需要`()`包围,多个匹配项用竖线`|`分隔。'."\n" + .'- 示例:`*(t1|t2) `匹配所有后缀为`t1`或`t2`的流` (abc|123)*`匹配所有前缀为`abc`或者`123`的流。'."\n" + ."\n" + .' '."\n" + .'>', 'type' => 'string', 'example' => 'liveStreamA'], + 'Name' => ['description' => '自定义规则名称。', 'type' => 'string', 'example' => 'WatermarkRule****'], + 'TemplateId' => ['description' => '水印模板ID。'."\n" + ."\n" + .'>可查看[AddLiveStreamWatermark](~~2848096~~)接口返回参数值获取TemplateId。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9 ****'], + 'RuleId' => ['description' => '水印规则ID。'."\n" + .'>可查看[AddLiveStreamWatermarkRule](~~2848100~~)接口返回参数值获取RuleId。', 'type' => 'string', 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****'], + ], + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidSceneId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.Idle', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.ConfigError', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'ResourceInChannel.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidScene.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], ], - 412 => [ - [ - 'errorCode' => 'ResourceInChannel.PreConditionFailed', - 'errorMessage' => '%s, please try again later.', - ], - [ - 'errorCode' => 'ResourceInChannel.Invalid', - 'errorMessage' => '%s, please check and try again later.', - ], + ], + 'title' => '查询水印规则列表', + 'summary' => '调用DescribeLiveStreamWatermarkRules查询水印规则列表。', + 'description' => '本接口支持指定分⻚参数查询水印规则列表信息,调用时请保证参数设置符合要求。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamWatermarkRules'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamWatermarkRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A5****\\"\\n}","type":"json"}]', - 'title' => '复制导播台场景配置', - 'description' => '- 云导播服务根据导播输出规格、转码规格及对应时长计费。计费详情,请参见[云导播费用](~~64531~~)。'."\n" - ."\n" - .'- 调用本接口将原场景配置应用至目标场景并生效,仅限PVW场景配置拷贝至PGM场景。PVW场景是预览场景,PGM是正式输出的场景。'."\n" - .'- 将PVW场景配置复制到PGM场景仅限于同一导播台内。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 100,\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b9676b3\\",\\n \\"RuleInfoList\\": {\\n \\"RuleInfo\\": [\\n {\\n \\"Domain\\": \\"example.aliyundoc.com\\",\\n \\"Description\\": \\"my rule\\",\\n \\"App\\": \\"liveApp****\\",\\n \\"Stream\\": \\"liveStreamA\\",\\n \\"Name\\": \\"WatermarkRule****\\",\\n \\"TemplateId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9 ****\\",\\n \\"RuleId\\": \\"445409ec-7eaa-461d -8f29-4bec2eb9****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n liveApp****\\n my rule\\n 445409ec-7eaa-461d -8f29-4bec2eb9****\\n liveStreamA\\n example.aliyundoc.com\\n 445409ec-7eaa-461d-8f29-4bec2eb9 ****\\n WatermarkRule****\\n \\n\\n5c6a2a0df228-4a64- af62-20e91b9676b3\\n","errorExample":""}]', ], - 'DeleteCasterSceneConfig' => [ - 'summary' => '删除导播台场景配置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLiveStreamWatermarks' => [ + 'summary' => '调用DescribeLiveStreamWatermarks查询水印模板列表。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveCT0GRQ'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'b4810848-bcf9-4aef-bd4a-e6bba2d9****', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => false, 'example' => 'live.yourdomain.com'], ], [ - 'name' => 'SceneId', + 'name' => 'KeyWord', 'in' => 'query', - 'schema' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', - ], + 'schema' => ['description' => '搜索关键词。模板ID或名称,名称支持模糊搜索。', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], [ - 'name' => 'Type', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '场景配置类型。取值:'."\n" - ."\n" - .'- **Component**:组件配置。'."\n" - .'- **Layout**:布局配置。'."\n" - .'- **All**:组件和布局配置。', - 'type' => 'string', - 'required' => true, - 'example' => 'Component', - ], + 'schema' => ['description' => '分页的页数。不传默认为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每⻚模板数值,不传默认为100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '水印模板信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB9*********', + 'Total' => ['description' => '符合条件的总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b9676b3'], + 'WatermarkList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Watermark' => [ + 'description' => '水印模板列表。', + 'type' => 'array', + 'items' => [ + 'description' => '水印模板列表。', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '水印类型。'."\n" + ."\n" + .'- 0:图片(目前只支持图片)。'."\n" + ."\n" + .'- 1:文字。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'XOffset' => ['description' => '⽔印X轴偏移,单位:px。'."\n" + .'>相对于参考背景宽RefWidth, 如果选择的是TopLeft,那么XOffset是指⽔印图⽚的左上⻆和背景视频的左上⻆的相对位置X。其中坐标指向背景视频中⼼的⽅向为正⽅向,即X轴的正⽅向是向右。', 'type' => 'number', 'format' => 'float', 'example' => '50.0'], + 'RefWidth' => ['description' => '参考背景视频宽,单位:px。', 'type' => 'integer', 'format' => 'int32', 'example' => '1920'], + 'YOffset' => ['description' => '⽔印Y轴偏移,单位:px。'."\n" + .'>相对于参考背景⾼RefHeight,如果选择的是TopLeft,那么YOffset是指⽔印图⽚的左上⻆和背景视频的左上⻆的相对位置Y。其中坐标指向背景视频中⼼的⽅向为正⽅向,即Y轴的正⽅向是向下。', 'type' => 'number', 'format' => 'float', 'example' => '100.0'], + 'Height' => ['description' => '水印图片高度,单位:px。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'RefHeight' => ['description' => '参考背景视频高,单位:px。', 'type' => 'integer', 'format' => 'int32', 'example' => '1080'], + 'PictureUrl' => ['description' => '水印图片链接。', 'type' => 'string', 'example' => 'http://example.com'], + 'Transparency' => ['description' => '水印透明度,数值越小越透明。取值:0~255。', 'type' => 'integer', 'format' => 'int32', 'example' => '255'], + 'Description' => ['description' => '自定义水印描述信息。', 'type' => 'string', 'example' => 'my watermark'], + 'OffsetCorner' => ['description' => '水印位置。'."\n" + .'- TopLeft:左上。'."\n" + ."\n" + .'- TopRight:右上。'."\n" + ."\n" + .'- BottomLeft:左下。'."\n" + ."\n" + .'- BottomRight:右下。', 'type' => 'string', 'example' => 'TopRight'], + 'RuleCount' => ['description' => 'Domain下配置的水印规则数量', 'type' => 'integer', 'format' => 'int32', 'example' => '12'], + 'Name' => ['description' => '水印名称。', 'type' => 'string', 'example' => 'livewatermark****'], + 'TemplateId' => ['description' => '水印模板ID。'."\n", 'type' => 'string', 'example' => '445409ec-7eaa-4 61d-8f29-4bec2eb9 ****'], + ], + ], + ], + ], + 'description' => '', ], ], ], @@ -37549,173 +29584,69 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectSceneStatus.Inuse', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidSceneId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.ConfigError', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.Idle', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidScene.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidResource.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidVideo.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidLayout.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidComponent.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB9*********\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '清除导播台的指定场景的配置信息', - 'description' => '调用本接口删除导播台场景配置。本接口目前支持的场景配置类型为组件配置、布局配置和组件和布局配置。'."\n" - ."\n\n" + 'title' => '查询水印模板列表', + 'description' => '本接口支持指定分⻚参数查询水印模板列表信息,调用时请保证参数设置符合要求。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateCasterSceneConfig' => [ - 'summary' => '增量设置场景配置,不清空原配置,布局信息在原场景上增量修改,效率较全量设置高。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamWatermarks'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamWatermarks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 100,\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b9676b3\\",\\n \\"WatermarkList\\": {\\n \\"Watermark\\": [\\n {\\n \\"Type\\": 0,\\n \\"XOffset\\": 50,\\n \\"RefWidth\\": 1920,\\n \\"YOffset\\": 100,\\n \\"Height\\": 200,\\n \\"RefHeight\\": 1080,\\n \\"PictureUrl\\": \\"http://example.com\\",\\n \\"Transparency\\": 255,\\n \\"Description\\": \\"my watermark\\",\\n \\"OffsetCorner\\": \\"TopRight\\",\\n \\"RuleCount\\": 12,\\n \\"Name\\": \\"livewatermark****\\",\\n \\"TemplateId\\": \\"445409ec-7eaa-4 61d-8f29-4bec2eb9 ****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n 5c6a2a0df228-4a64- af62-20e91b9676b3\\n \\n \\n 0\\n 50\\n 1920\\n 100\\n 200\\n 1080\\n http://example.com\\n 255\\n my watermark\\n TopRight\\n 12\\n livewatermark****\\n 445409ec-7eaa-4 61d-8f29-4bec2eb9 ****\\n \\n \\n","errorExample":""}]', + ], + 'DescribeLiveStreamsBlockList' => [ + 'summary' => '调用DescribeLiveStreamsBlockList获取域名下直播流播放的黑名单。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'ComponentId', + 'name' => 'PageNum', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '组件ID列表,数组内按照由下至上的顺序排列组件。'."\n" - ."\n" - .'>N表示第几个的意思。例如:
ComponentId.1表示第1个组件ID,
ComponentId.2表示第2个组件ID。', - 'type' => 'array', - 'items' => [ - 'description' => '组件ID列表,数组内按照由下至上的顺序排列组件。'."\n" - ."\n" - .'>N表示第几个的意思。例如:
ComponentId.1表示第1个组件ID,
ComponentId.2表示第2个组件ID。', - 'type' => 'string', - 'required' => false, - 'example' => '["98778372-c30f-4442-85ba-2e3e4e3d****"]', - ], - 'required' => false, - 'example' => '["98778372-c30f-4442-85ba-2e3e4e3d****"]', - 'maxItems' => 10, - ], + 'schema' => ['description' => '当前页码。默认值为**1**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'default' => '1'], ], [ - 'name' => 'CasterId', - 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '80787064-1c94-4dc1-85ce-9409960a****', - ], - ], - [ - 'name' => 'SceneId', - 'in' => 'query', - 'schema' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'required' => true, - 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', - ], - ], - [ - 'name' => 'LayoutId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '布局ID。如果您通过[DescribeCasterLayouts接口](~~2848028~~)查询导播台布局列表,请查看DescribeCasterLayouts接口调用返回的参数LayoutId值。', - 'type' => 'string', - 'required' => true, - 'example' => 'eeab74fb-379d-4599-a93d-86d16a05****', - ], + 'schema' => ['description' => '每页大小。取值范围:**1~3000**,默认值为**2000**。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3000', 'minimum' => '1', 'example' => '10', 'default' => '2000'], ], ], 'responses' => [ @@ -37723,213 +29654,102 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + 'PageNum' => ['description' => '分页的当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9D855EC8-CF71-4615-B164-F7DFCB23B41D'], + 'TotalPage' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'PageSize' => ['description' => '每页显示的条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'TotalNum' => ['description' => '符合条件的总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '11'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'StreamUrls' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamUrl' => [ + 'description' => '完整流url地址。', + 'type' => 'array', + 'items' => ['description' => '完整流URL地址。', 'type' => 'string', 'example' => 'example.com/liveApp****/liveStream****'], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.ConfigError', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ComponentNumberExceed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'SceneNumberExceed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.Waiting', - 'errorMessage' => '%s, please try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.Idle', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCaptionResource', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidScene.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidLayout.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidComponent.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidVideo.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ResourceInChannel.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 412 => [ - [ - 'errorCode' => 'ResourceInChannel.PreConditionFailed', - 'errorMessage' => '%s, please try again later.', - ], - [ - 'errorCode' => 'ResourceInChannel.Invalid', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', - 'title' => '更新导播场景配置', - 'description' => '调用本接口增量设置场景配置,不清空原配置,布局信息在原场景上增量修改,效率较全量设置高。'."\n" + 'errorCodes' => [], + 'title' => '获取域名下直播流播放的黑名单', + 'description' => '调用本接口获取域名下直播流播放的黑名单。其中直播流指的是主播流。'."\n" ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SetCasterSceneConfig' => [ - 'summary' => '全量设置场景配置,清空场景配置,并将布局信息设置并生效至指定场景。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsBlockList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsBlockList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageNum\\": 2,\\n \\"RequestId\\": \\"9D855EC8-CF71-4615-B164-F7DFCB23B41D\\",\\n \\"TotalPage\\": 2,\\n \\"PageSize\\": 10,\\n \\"TotalNum\\": 11,\\n \\"DomainName\\": \\"example.com\\",\\n \\"StreamUrls\\": {\\n \\"StreamUrl\\": [\\n \\"example.com/liveApp****/liveStream****\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2\\n 9D855EC8-CF71-4615-B164-F7DFCB23B41D\\n 2\\n 10\\n 11\\n example.com\\n example.com/liveApp****/liveStream****\\n","errorExample":""}]', + ], + 'DescribeLiveStreamsControlHistory' => [ + 'summary' => '获取某个域名或应用下的直播流操作历史。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ComponentId', + 'name' => 'DomainName', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '组件ID列表,数组内按照由下至上的顺序排列组件。'."\n" - ."\n" - .'>N表示第几个的意思。例如:
ComponentId.1表示第一个组件ID,
ComponentId.2表示第二个组件ID。', - 'type' => 'array', - 'items' => [ - 'description' => '组件ID列表,数组内按照由下至上的顺序排列组件。'."\n" - ."\n" - .'>N表示第几个的意思。例如:
ComponentId.1表示第一个组件ID,
ComponentId.2表示第二个组件ID。', - 'type' => 'string', - 'required' => false, - 'example' => '[ "a2b8e671-2fe5-4642-a2ec-bf931826****", "a2b8e671-2fe5-4642-a2ec-28374657****"]', - ], - 'required' => false, - 'example' => '[ "a2b8e671-2fe5-4642-a2ec-bf931826****", "a2b8e671-2fe5-4642-a2ec-28374657****"]', - 'maxItems' => 10, - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'CasterId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '80787064-1c94-4dc1-85ce-9409960a****', - ], + 'schema' => ['description' => '应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ - 'name' => 'SceneId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'required' => true, - 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', - ], + 'schema' => ['description' => '查询开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z'], ], [ - 'name' => 'LayoutId', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '布局ID。如果您通过[DescribeCasterLayouts接口](~~2848028~~)查询导播台布局列表,请查看DescribeCasterLayouts接口调用返回的参数LayoutId值。', - 'type' => 'string', - 'required' => false, - 'example' => '0c6da077-f037-49e8-8440-3be13393****', - ], + 'schema' => ['description' => '查询结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> EndTime和StartTime之间的间隔不能超过7天。', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z'], ], ], 'responses' => [ @@ -37937,119 +29757,77 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9C31856F-386D-4DB3-BE79-A0AA493D702A'], + 'ControlInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamControlInfo' => [ + 'description' => '直播流的操作记录。', + 'type' => 'array', + 'items' => [ + 'description' => '直播流的操作记录。', + 'type' => 'object', + 'properties' => [ + 'ClientIP' => ['description' => '用户端的IP地址。', 'type' => 'string', 'example' => '10.207.XX.XX'], + 'TimeStamp' => ['description' => '操作执行的时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-12-01T16:36:18Z'], + 'Action' => ['description' => '执行的操作名称。', 'type' => 'string', 'example' => 'DescribeLiveStreamsControlHistory'], + 'StreamName' => ['description' => '播流名称。', 'type' => 'string', 'example' => 'liveStream****'], + ], + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidSceneId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCaptionResource', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ComponentNumberExceed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.Idle', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.ConfigError', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidScene.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidLayout.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidComponent.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ResourceInChannel.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 412 => [ - [ - 'errorCode' => 'ResourceInChannel.PreConditionFailed', - 'errorMessage' => '%s, please try again later.', - ], - [ - 'errorCode' => 'ResourceInChannel.Invalid', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified parameter StartTime is not valid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified parameter EndTime is not valid.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', - 'title' => '全量设置导播台场景配置', - 'description' => '调用本接口全量设置场景配置,清空场景配置,并将布局信息设置并生效至指定场景。'."\n" + 'title' => '查询直播流操作历史', + 'description' => '调用本接口获取某个域名或应用下的直播流操作历史。其中直播流操作指的是对这个直播流进行过的接口操作。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeCasterScenes' => [ - 'summary' => '查询导播台场景列表。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsControlHistory'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsControlHistory', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9C31856F-386D-4DB3-BE79-A0AA493D702A\\",\\n \\"ControlInfo\\": {\\n \\"LiveStreamControlInfo\\": [\\n {\\n \\"ClientIP\\": \\"10.207.XX.XX\\",\\n \\"TimeStamp\\": \\"2015-12-01T16:36:18Z\\",\\n \\"Action\\": \\"DescribeLiveStreamsControlHistory\\",\\n \\"StreamName\\": \\"liveStream****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n9C31856F-386D-4DB3-BE79-A0AA493D702A\\n\\n \\n DescribeLiveStreamsControlHistory\\n liveStream****\\n 10.207.XX.XX\\n 2015-12-01T16:36:18Z\\n \\n\\n","errorExample":""}]', + ], + 'DescribeLiveStreamsNotifyRecords' => [ + 'summary' => '查询流回调记录。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -38060,392 +29838,392 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATURElive066BXV'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '80787064-1c94-4dc1-85ce-9409960a****', - ], + 'schema' => ['description' => '推流域名。', 'type' => 'string', 'required' => true, 'example' => 'push.example1.com'], ], [ - 'name' => 'SceneId', + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '直播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => false, 'example' => 'app'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => false, 'example' => 'stream'], + ], + [ + 'name' => 'Status', 'in' => 'query', 'schema' => [ - 'description' => '场景ID。', + 'description' => '回调是否成功。'."\n" + .'- success:成功。'."\n" + .'- failed:失败。', 'type' => 'string', 'required' => false, - 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', + 'enumValueTitles' => ['success' => '成功', 'failed' => '失败'], + 'example' => 'success', + 'enum' => ['success', 'failed'], ], ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> 开始时间必须在近7天内。', 'type' => 'string', 'required' => true, 'example' => '2017-12-10T08:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。结束时间需晚于起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2017-12-10T09:00:00Z'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页大小,默认20,最大500。取值:1~500之前的任意整数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'default' => '20'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '分页的页数,默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], + ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '推流回调记录。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1*****', - ], - 'SceneList' => [ + 'NotifyRecordsInfo' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Scene' => [ - 'description' => '场景信息列表。', + 'LiveStreamNotifyRecordsInfo' => [ + 'description' => '推流回调记录。', 'type' => 'array', 'items' => [ - 'description' => '场景信息列表。', 'type' => 'object', 'properties' => [ - 'ComponentIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'componentId' => [ - 'description' => '组件id列表。', - 'type' => 'array', - 'items' => [ - 'description' => '组件ID列表。', - 'type' => 'string', - 'example' => '["1506396160-0-0-7de771a77102680861853af862d5****"]', - ], - ], - ], - ], - 'LayoutId' => [ - 'description' => '布局ID。', - 'type' => 'string', - 'example' => '37cb2f8b-f152-4338-b928-6704f71d****', - ], - 'OutputType' => [ - 'description' => '是否正式输出。 取值:'."\n" - .' '."\n" - .'- **0**:输出pvw预览场景。'."\n" - .'- **1**:输出pgm正式场景。', - 'type' => 'string', - 'example' => '0', - ], - 'SceneId' => [ - 'description' => '场景ID。可作为更新场景音频配置、查询导播台场景音频配置、启动导播台场景和停止导播台场景的请求参数。', - 'type' => 'string', - 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****', - ], - 'SceneName' => [ - 'description' => '场景名称。', - 'type' => 'string', - 'example' => 'scene1', - ], - 'Status' => [ - 'description' => '场景状态。 取值:'."\n" - .' '."\n" - .'- **0**:关闭。'."\n" - .'- **1**:开启。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'StreamInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'StreamInfo' => [ - 'description' => '播放地址列表。', - 'type' => 'array', - 'items' => [ - 'description' => '播放地址列表。', - 'type' => 'object', - 'properties' => [ - 'OutputStreamUrl' => [ - 'description' => '播放地址。', - 'type' => 'string', - 'example' => 'http://live/caster/example.net', - ], - 'TranscodeConfig' => [ - 'description' => '转码配置。取值:'."\n" - .' '."\n" - .'- **sd**:标清。'."\n" - .'- **lld**:流畅。'."\n" - .'- **lud**:超清。'."\n" - .'- **lhd**:高清。', - 'type' => 'string', - 'example' => 'lld', - ], - 'VideoFormat' => [ - 'description' => '格式。取值:'."\n" - .'- **flv**。'."\n" - .'- **mp4**。 '."\n" - .'- **m3u8**。', - 'type' => 'string', - 'example' => 'flv', - ], - ], - ], - ], - ], - ], - 'StreamUrl' => [ - 'description' => '输出流地址。', - 'type' => 'string', - 'example' => 'rtmp://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****', - ], + 'NotifyType' => ['description' => '回调类型。'."\n" + .'- publish:表示推流事件。'."\n" + .'- publish_done:表示断流事件。', 'type' => 'string', 'example' => 'publish_done'], + 'Description' => ['description' => '结果描述,为success时成功,失败则返回错误信息。', 'type' => 'string', 'example' => 'success'], + 'StreamName' => ['description' => '直播流名称。', 'type' => 'string', 'example' => 'stream'], + 'NotifyTime' => ['description' => '回调发生时间(UTC时间)。', 'type' => 'string', 'example' => '2022-10-19T19:09:28Z'], + 'DomainName' => ['description' => '推流域名。', 'type' => 'string', 'example' => 'push.example1.com'], + 'NotifyContent' => ['description' => '回调的具体内容。', 'type' => 'string', 'example' => '{\\"action\\":\\"publish_done\\",\\"app\\":\\"push.example1.com\\"}'], + 'NotifyUrl' => ['description' => '回调URL。', 'type' => 'string', 'example' => 'http://xx.xx.xx.xx/callbacks'], + 'NotifyResult' => ['description' => '回调结果。'."\n" + .'- success:成功。'."\n" + .'- failed:失败。', 'type' => 'string', 'example' => 'success'], + 'AppName' => ['description' => '直播流所属应用名称。', 'type' => 'string', 'example' => 'app'], + 'NotifyResponse' => ['description' => '用户端接受回调后返回的响应结果。', 'type' => 'string', 'example' => '{"Code":0,"Msg":"Success"}'], + 'NotifyHeader' => ['description' => '回调请求的请求头。', 'type' => 'string', 'example' => 'Host: 123456.cn-shanghai.example1.com'."\n" + .'User-Agent: Go-http-client/1.1'."\n" + .'Accept-Encoding: gzip'], ], + 'description' => '', ], ], ], + 'description' => '', ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], + 'PageNum' => ['description' => '分页页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F675E4B4-125D-1533-901B-11A724644285'], + 'TotalNum' => ['description' => '符合条件的总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'TotalPage' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidSceneId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified parameter StartTime is not valid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified parameter EndTime is not valid.', 'description' => ''], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified EndTime does not match the specified StartTime.', 'description' => ''], + ['errorCode' => 'Duration.Exceed', 'errorMessage' => 'StartTime needs to be within the last 7 days.', 'description' => ''], ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NotifyRecordsInfo\\": {\\n \\"LiveStreamNotifyRecordsInfo\\": [\\n {\\n \\"NotifyType\\": \\"publish_done\\",\\n \\"Description\\": \\"success\\",\\n \\"StreamName\\": \\"stream\\",\\n \\"NotifyTime\\": \\"2022-10-19T19:09:28Z\\",\\n \\"DomainName\\": \\"push.example1.com\\",\\n \\"NotifyContent\\": \\"{\\\\\\\\\\\\\\"action\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"publish_done\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"app\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"push.example1.com\\\\\\\\\\\\\\"}\\",\\n \\"NotifyUrl\\": \\"http://xx.xx.xx.xx/callbacks\\",\\n \\"NotifyResult\\": \\"success\\",\\n \\"AppName\\": \\"app\\",\\n \\"NotifyResponse\\": \\"{\\\\\\"Code\\\\\\":0,\\\\\\"Msg\\\\\\":\\\\\\"Success\\\\\\"}\\",\\n \\"NotifyHeader\\": \\"Host: 123456.cn-shanghai.example1.com\\\\nUser-Agent: Go-http-client/1.1\\\\nAccept-Encoding: gzip\\"\\n }\\n ]\\n },\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"F675E4B4-125D-1533-901B-11A724644285\\",\\n \\"TotalNum\\": 20,\\n \\"TotalPage\\": 20\\n}","errorExample":""},{"type":"xml","example":"\\n \\n app\\n success\\n push.example1.com\\n {\\\\\\"action\\\\\\":\\\\\\"publish_done\\\\\\",\\\\\\"app\\\\\\":\\\\\\"push.example1.com\\\\\\"}\\n success\\n 2022-10-19T19:09:28Z\\n publish_done\\n http://xx.xx.xx.xx/callbacks\\n stream\\n \\n 1\\n 20\\n F675E4B4-125D-1533-901B-11A724644285\\n 20\\n 20\\n","errorExample":""}]', + 'title' => '查询流回调记录', + 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsNotifyRecords'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsNotifyRecords', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1*****\\",\\n \\"SceneList\\": {\\n \\"Scene\\": [\\n {\\n \\"ComponentIds\\": {\\n \\"componentId\\": [\\n \\"[\\\\\\"1506396160-0-0-7de771a77102680861853af862d5****\\\\\\"]\\"\\n ]\\n },\\n \\"LayoutId\\": \\"37cb2f8b-f152-4338-b928-6704f71d****\\",\\n \\"OutputType\\": \\"0\\",\\n \\"SceneId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e86****\\",\\n \\"SceneName\\": \\"scene1\\",\\n \\"Status\\": 0,\\n \\"StreamInfos\\": {\\n \\"StreamInfo\\": [\\n {\\n \\"OutputStreamUrl\\": \\"http://live/caster/example.net\\",\\n \\"TranscodeConfig\\": \\"lld\\",\\n \\"VideoFormat\\": \\"flv\\"\\n }\\n ]\\n },\\n \\"StreamUrl\\": \\"rtmp://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****\\"\\n }\\n ]\\n },\\n \\"Total\\": 2\\n}","errorExample":""},{"type":"xml","example":"\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n \\n [\\"1506396160-0-0-7de771a77102680861853af862d5****\\"]\\n 37cb2f8b-f152-4338-b928-6704f71d****\\n 0\\n b5f8c837-ceeb-424f-b30b-68e94e86****\\n scene1\\n 0\\n \\n http://live/caster/example.net\\n lld\\n flv\\n \\n rtmp://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****\\n \\n 2\\n","errorExample":""}]', - 'title' => '查询场景信息列表', - 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口查询导播台场景列表。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'UpdateCasterSceneAudio' => [ - 'summary' => '增加场景音频配置,将原场景音频添加到新场景。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLiveStreamsNotifyUrlConfig' => [ + 'summary' => '查询推流回调配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '107102', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'AudioLayer', + 'name' => 'DomainName', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['description' => '您的推流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '音频配置。', - 'type' => 'array', - 'items' => [ - 'description' => '音频配置。', - 'type' => 'object', - 'properties' => [ - 'Filter' => [ - 'description' => '3A美音算法开关。该参数由以下字段组成:'."\n" - ."\n" - .'- **enableAgc**:(可选)3A算法的智能增益算法开关。**0**:不开启(默认值); **1**:开启。'."\n" - ."\n" - .'- **enableAns**:(可选)3A算法的智能降噪算法开关。**0**:不开启(默认值);**1**:开启。'."\n" - ."\n" - .'- **ansMode**:(可选)智能降噪算法的模式,该字段只有在**enableAns**取值为**1**时有效。**0**:语音降噪(默认值);**1**:音乐降噪。'."\n" - .'> 为保证更好的降噪效果,建议将ansMode取值为1:音乐降噪。'."\n" - ."\n" - .'- **enableBeautify**:(可选)美声处理开关。 **0**:不开启(默认值);**1**:开启。'."\n" - ."\n" - .'- **voiceBeautifyMode**:(可选)美声模式,该字段只有在**enableBeautify**取值为**1**时有效。**0**:磁性男声(默认值);**1**:清新女声。', - 'type' => 'string', - 'required' => false, - 'example' => '{ "enableAgc":0, "enableAns":1 }', - ], - 'FixedDelayDuration' => [ - 'description' => '该字段对视频进行固定延迟设置,可用于字幕同步。 '."\n" - .' '."\n" - .'单位:毫秒。取值范围为**0~5000**。默认值为**0**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], - 'ValidChannel' => [ - 'description' => '确定哪些声道可以作为音量输入。取值:'."\n" + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566'], + 'LiveStreamsNotifyConfig' => [ + 'description' => '回调配置。', + 'type' => 'object', + 'properties' => [ + 'DomainName' => ['description' => '您的推流域名。', 'type' => 'string', 'example' => 'demo.aliyundoc.com'], + 'NotifyUrl' => ['description' => '回调地址。', 'type' => 'string', 'example' => 'http://guide.aliyundoc.com/notify'], + 'ExceptionNotifyUrl' => ['description' => '异常事件回调URL。', 'type' => 'string', 'example' => 'https://4a7e5f08.r37.cpolar.top/live/Record/call-back/streamException'], + 'NotifyReqAuth' => ['description' => '是否开启鉴权。取值:'."\n" ."\n" - .'- **leftChannel**:左声道。'."\n" - .'- **rightChannel**:右声道。'."\n" - .'- **all**(默认值):双声道。', - 'type' => 'string', - 'required' => false, - 'example' => 'all', - ], - 'VolumeRate' => [ - 'description' => '调节音频流的音量大小倍数。取值范围为**0~10.0**,默认值为**1.0** 。'."\n" - .' '."\n" - .'- **1.0**:保持原有音量。'."\n" - .'- 小于**1**:降低音量的倍数。'."\n" - .'- 大于**1**:放大音量的倍数。'."\n" - .' '."\n" - ."\n\n", - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '1', + .'- **yes**。'."\n" + .'- **no**。', 'type' => 'string', 'example' => 'yes'], + 'NotifyAuthKey' => ['description' => '鉴权Key。', 'type' => 'string', 'example' => '123456'], ], ], - 'required' => false, ], - 'required' => false, - 'maxItems' => 12, + 'description' => '', ], ], + ], + 'errorCodes' => [ + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], + ], + ], + 'title' => '查询直播推流回调配置', + 'description' => '调用本接口可以查询回调地址和回调鉴权信息。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '## 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" + .'|------------|--------|---------|------|'."\n" + .'| InternalError | The request processing has failed due to some unknown error. | 500 | 后台发生未知错误。 |'."\n" + .'| InvalidDomain.NotFound | The domain provided does not exist in our records. | 404 | 当前账户下未查到域名。 |'."\n" + .'| IllegalOperation | Illegal domain operate is not permitted. | 403 | 不支持当前操作,如:非直播类域名。 |'."\n" + .'| InvalidConfig.NotFound| Config does not exist.| 404| 当前域名下未找到回调配置。|', + 'changeSet' => [ + ['createdAt' => '2025-04-01T06:32:41.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2025-02-20T08:25:18.000Z', 'description' => '错误码发生变更、请求参数发生变更、响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsNotifyUrlConfig'], + ], + ], + 'ramActions' => [ [ - 'name' => 'MixList', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '位置关联列表,与audiolayers顺序保持一致。', - 'type' => 'array', - 'items' => [ - 'description' => '资源位置LocationId关联列表。'."\n" - ."\n" - .'与AudioLayers顺序保持一致,若启用Channel时,引用Channel的LocationId,否则引用视频源的LocationId。', - 'type' => 'string', - 'required' => false, - 'example' => 'RV01', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsNotifyUrlConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], - 'required' => false, - 'example' => 'RV01', - 'maxItems' => 12, ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\",\\n \\"LiveStreamsNotifyConfig\\": {\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"NotifyUrl\\": \\"http://guide.aliyundoc.com/notify\\",\\n \\"ExceptionNotifyUrl\\": \\"https://4a7e5f08.r37.cpolar.top/live/Record/call-back/streamException\\",\\n \\"NotifyReqAuth\\": \\"yes\\",\\n \\"NotifyAuthKey\\": \\"123456\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 40A4F36D-A7CC-473A-88E7-154F92242566\\n \\n yes\\n http://guide.aliyundoc.com/notify\\n 123456\\n demo.aliyundoc.com\\n \\n","errorExample":""}]', + ], + 'DescribeLiveStreamsOnlineList' => [ + 'summary' => '查询指定域名或者指定域名下某个应用的所有在线流信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '107103', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ [ - 'name' => 'CasterId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster](~~2848009~~)接口创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'SceneId', + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。'."\n" + .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '播流名称,仅支持输入单个StreamName。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], + ], + [ + 'name' => 'OnlyStream', + 'in' => 'query', + 'schema' => ['description' => '是否只返回指定字段。取值: '."\n" + ."\n" + .'- **yes**:结果只返回DomainName,AppName,StreamName,PublishTime 字段。 '."\n" + ."\n" + .'- **no**(默认值):结果返回全部字段。', 'type' => 'string', 'required' => false, 'example' => 'no'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页大小。取值范围:1~3000,默认值为2000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1500', 'default' => '2000'], + ], + [ + 'name' => 'PageNum', + 'in' => 'query', + 'schema' => ['description' => '当前页码。默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'StreamType', 'in' => 'query', 'schema' => [ - 'description' => '场景ID。如果您通过[DescribeCasterScenes](~~2848039~~)接口查询导播台场景列表,请查看DescribeCasterScenes接口调用返回的参数ComponentId值。', + 'description' => '流类型。取值: '."\n" + ."\n" + .'- **all**(默认值):查询所有流。'."\n" + .' '."\n" + .'- **raw**:查询原始流。'."\n" + .' '."\n" + .'- **trans**:查询转码流。', 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e1****', + 'required' => false, + 'enumValueTitles' => ['all' => '查询所有流', 'raw' => '查询原始流', 'trans' => '查询转码流'], + 'example' => 'all', + 'enum' => ['all', 'raw', 'trans'], ], ], [ - 'name' => 'FollowEnable', + 'name' => 'QueryType', 'in' => 'query', 'schema' => [ - 'description' => '是否启用音频跟随。 默认启用音频跟随,为空则保持最近一次配置不变。取值: '."\n" + 'description' => '指定是否模糊匹配流名称。取值:'."\n" ."\n" - .'- **0**:混音模式。'."\n" - .'- **1**:音频跟随视频模式。', - 'type' => 'integer', - 'format' => 'int32', + .'- **fuzzy**(默认值):模糊匹配。'."\n" + ."\n" + .'- **strict**:精准匹配。', + 'type' => 'string', 'required' => false, - 'example' => '1', + 'enumValueTitles' => ['strict' => '精准匹配', 'fuzzy' => '模糊匹配'], + 'example' => 'fuzzy', + 'enum' => ['fuzzy', 'strict'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '在线流信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64- af62-20e91b9676b3'], + 'TotalPage' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'PageNum' => ['description' => '分页的页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页显示的条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'TotalNum' => ['description' => '符合条件的总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '11'], + 'OnlineInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LiveStreamOnlineInfo' => [ + 'description' => '正在推送流的信息。', + 'type' => 'array', + 'items' => [ + 'description' => '正在推送流的信息。', + 'type' => 'object', + 'properties' => [ + 'AudioDataRate' => ['description' => '直播流的音频码率。单位:Kbps。'."\n" + .'> 此参数需提交工单添加白名单配置后开启,关于如何提交工单,请参见联系我们。', 'type' => 'integer', 'format' => 'int32', 'example' => '600'], + 'FrameRate' => ['description' => '帧率。单位:FPS。', 'type' => 'integer', 'format' => 'int32', 'example' => '15'], + 'PublishUrl' => ['description' => '推流完整URL地址。', 'type' => 'string', 'example' => 'rtmp://demo.aliyundoc.com/live/test****'], + 'StreamName' => ['description' => '播流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'AudioCodecId' => ['description' => '音频Codec ID。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Height' => ['description' => '视频分辨率高度。单位:pixel。', 'type' => 'integer', 'format' => 'int32', 'example' => '720'], + 'VideoDataRate' => ['description' => '直播流的视频码率。单位:Kbps。'."\n" + .'> 此参数需提交工单添加白名单配置后开启,关于如何提交工单,请参见联系我们。', 'type' => 'integer', 'format' => 'int32', 'example' => '600'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'PublishDomain' => ['description' => '推流域名,使用中心推流的可直接填写播流域名。', 'type' => 'string', 'example' => 'demo.aliyundoc.com'], + 'PublishTime' => ['description' => '开始推流时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2021-08-09T02:37:59Z'], + 'AppName' => ['description' => '播流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'PublishType' => ['description' => '推流类型,取值:'."\n" + ."\n" + .'- **edge**:边缘推流。'."\n" + ."\n" + .'- **center**:中心推流。', 'type' => 'string', 'example' => 'edge'], + 'VideoCodecId' => ['description' => '视频Codec ID。', 'type' => 'integer', 'format' => 'int32', 'example' => '7'], + 'Transcoded' => ['description' => '是否是转码流。取值:'."\n" + ."\n" + .'- **yes**:是。'."\n" + ."\n" + .'- **no**:否。', 'type' => 'string', 'example' => 'no'], + 'Width' => ['description' => '视频分辨率宽度。单位:pixel。', 'type' => 'integer', 'format' => 'int32', 'example' => '1280'], + 'ClientIp' => ['description' => '推流客户端IP。', 'type' => 'string', 'example' => '106.11.XX.XX'], + 'ServerIp' => ['description' => '推流节点IP。', 'type' => 'string', 'example' => '120.221.XX.XX'], + ], + ], + ], + ], + 'description' => '', ], ], ], @@ -38453,145 +30231,155 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidAudioLayersAndMixListSize.Mismatch', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.ConfigError', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidMixList.ExceedNorm', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidScene.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ResourceInChannel.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 412 => [ - [ - 'errorCode' => 'ResourceInChannel.PreConditionFailed', - 'errorMessage' => '%s, please try again later.', - ], - [ - 'errorCode' => 'ResourceInChannel.Invalid', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'QpsOverLimit', 'errorMessage' => 'Qps is over limit for this domainName.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not match the specified start time.', 'description' => ''], + ['errorCode' => 'Duration.Exceed', 'errorMessage' => 'Duration between StartTime and EndTime is too long.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n}"}]', - 'title' => '更新场景音频配置', - 'description' => '先通过[CreateCaster](~~2848009~~)接口创建导播台,再调用本接口更新场景音频配置。本接口目前支持的音频模式为混音模式和音频跟随视频模式。'."\n" - ."\n\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b9676b3\\",\\n \\"TotalPage\\": 2,\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalNum\\": 11,\\n \\"OnlineInfo\\": {\\n \\"LiveStreamOnlineInfo\\": [\\n {\\n \\"AudioDataRate\\": 600,\\n \\"FrameRate\\": 15,\\n \\"PublishUrl\\": \\"rtmp://demo.aliyundoc.com/live/test****\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"AudioCodecId\\": 10,\\n \\"Height\\": 720,\\n \\"VideoDataRate\\": 600,\\n \\"DomainName\\": \\"example.com\\",\\n \\"PublishDomain\\": \\"demo.aliyundoc.com\\",\\n \\"PublishTime\\": \\"2021-08-09T02:37:59Z\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"PublishType\\": \\"edge\\",\\n \\"VideoCodecId\\": 7,\\n \\"Transcoded\\": \\"no\\",\\n \\"Width\\": 1280,\\n \\"ClientIp\\": \\"106.11.XX.XX\\",\\n \\"ServerIp\\": \\"120.221.XX.XX\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 2\\n 1\\n 10\\n 5c6a2a0df228-4a64- af62-20e91b9676b3\\n 11\\n \\n 600\\n 15\\n rtmp://demo.aliyundoc.com/live/test****\\n liveStream****\\n 10\\n 720\\n 600\\n example.com\\n demo.aliyundoc.com\\n 2021-08-09T02:37:59Z\\n liveApp****\\n edge\\n 7\\n no\\n 1280\\n 106.11.XX.XX\\n 120.221.XX.XX\\n \\n","errorExample":""}]', + 'title' => '查询域名在线流列表', + 'description' => '本接口目前支持以下几种流类型: '."\n" + ."\n" + .'- all:查询所有流。'."\n" + ."\n" + .'- raw:查询原始流。'."\n" + ."\n" + .'- trans:查询转码流。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '请求参数中的N表示第几个的意思。例如:'."\n" - .'- AudioLayer.N.VolumeRate表示传入第几个元素的音量倍数。'."\n" - .'- AudioLayer.1.VolumeRate表示传入第1个元素的音量倍数。'."\n" - .'- AudioLayer.2.VolumeRate表示传入第2个元素的音量倍数。', + .'本接口的单用户QPS限制为10000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeCasterSceneAudio' => [ - 'summary' => '查询场景音频配置。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-08-01T06:16:55.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], + ['createdAt' => '2024-07-11T03:43:38.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], + ['createdAt' => '2024-01-26T05:58:43.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsOnlineList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveStreamsPublishList' => [ + 'summary' => '获取某一时间段内某个域名(或域名下某应用或某个流)的历史推流记录。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', 'systemTags' => [ 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '107105', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '推流域名或主播流域名。'."\n" + .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '推流时间。'."\n" + ."\n" + .'格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。EndTime和StartTime之间的间隔不能超过30天。'."\n" + ."\n" + .'格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页大小。取值范围:**1~3000**,默认值为**2000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1500', 'default' => '2000'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '当前页码。默认值为**1**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'StreamType', + 'in' => 'query', 'schema' => [ - 'description' => '地域ID。', + 'description' => '流类型。取值:'."\n" + ."\n" + .'- **不传**:查询原始流。'."\n" + .'- **all**:查询所有流。'."\n" + .'- **trans**:查询转码流。', 'type' => 'string', 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'enumValueTitles' => ['all' => '查询所有流', 'raw' => '查询原始流', 'trans' => '查询转码流'], + 'example' => 'all', + 'enum' => ['all', 'raw', 'trans'], ], ], [ - 'name' => 'CasterId', + 'name' => 'QueryType', 'in' => 'query', 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', + 'description' => '指定是否模糊匹配流名称。取值:'."\n" + .'- **fuzzy**(默认值):模糊匹配。'."\n" + .'- **strict**:精准匹配。', 'type' => 'string', - 'required' => true, - 'example' => '97df6b7f-3490-47d2-ac50-88338765****', + 'required' => false, + 'enumValueTitles' => ['strict' => '精准匹配', 'fuzzy' => '模糊匹配'], + 'example' => 'fuzzy', + 'enum' => ['fuzzy', 'strict'], ], ], [ - 'name' => 'SceneId', + 'name' => 'OrderBy', 'in' => 'query', 'schema' => [ - 'description' => '场景ID。', + 'description' => '排序方式。取值:'."\n" + ."\n" + .'- **stream_name_desc**:按直播流名称倒序。'."\n" + .'- **stream_name_asc**:按直播流名称升序。'."\n" + .'- **publish_time_desc**:按推流时间倒序。'."\n" + .'- **publish_time_asc**(默认值):按推流时间升序。', 'type' => 'string', - 'required' => true, - 'example' => '97df6b7f-3490-47d2-ac50-88339087****', + 'required' => false, + 'enumValueTitles' => ['publish_time_asc' => '按推流时间升序', 'publish_time_desc' => '按推流时间倒序', 'stream_name_asc' => '按直播流名称升序', 'stream_name_desc' => '按直播流名称倒序'], + 'example' => 'publish_time_desc', + 'enum' => ['stream_name_desc', 'stream_name_asc', 'publish_time_desc', 'publish_time_asc'], ], ], ], @@ -38600,200 +30388,172 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'AudioLayers' => [ + 'TotalPage' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'PageNum' => ['description' => '分页的页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'PageSize' => ['description' => '每页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566'], + 'TotalNum' => ['description' => '符合条件的总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '11'], + 'PublishInfo' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'AudioLayer' => [ - 'description' => 'Audiolayer配置列表。', + 'LiveStreamPublishInfo' => [ + 'description' => '推流记录信息。', 'type' => 'array', 'items' => [ - 'description' => 'Audiolayer配置列表。', 'type' => 'object', 'properties' => [ - 'FixedDelayDuration' => [ - 'description' => '固定延时时间,单位毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2000', - ], - 'ValidChannel' => [ - 'description' => '声道类型。取值:'."\n" - .' '."\n" - .'- **left**:左声道。'."\n" - .'- **right**:右声道。'."\n" - .'- **all**(默认值):双声道。', - 'type' => 'string', - 'example' => 'all', - ], - 'VolumeRate' => [ - 'description' => '音频音量。', - 'type' => 'number', - 'format' => 'float', - 'example' => '1', - ], + 'EdgeNodeAddr' => ['description' => 'CDN上行节点IP。', 'type' => 'string', 'example' => '10.175.XX.XX'], + 'PublishUrl' => ['description' => '推流完整URL地址。', 'type' => 'string', 'example' => 'rtmp://demo.aliyundoc.com/liveApp****/liveStream****'], + 'StreamName' => ['description' => '播流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'DomainName' => ['description' => '推流域名或主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'StopTime' => ['description' => '停止推流时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-12-02T03:11:19Z'], + 'TranscodeId' => ['description' => '转码模板ID。'."\n" + .'> 当Transcoded参数为no时,不返回此参数。', 'type' => 'string', 'example' => 'ld'], + 'PublishDomain' => ['description' => '推流域名。', 'type' => 'string', 'example' => 'demo.aliyundoc.com'], + 'AppName' => ['description' => '播流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'PublishTime' => ['description' => '开始推流时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2015-12-02T03:05:53Z'], + 'PublishType' => ['description' => '推流类型。取值:'."\n" + ."\n" + .'- **edge**:边缘推流。'."\n" + .'- **center**:中心推流。'."\n", 'type' => 'string', 'example' => 'edge'], + 'Transcoded' => ['description' => '是否是转码流。', 'type' => 'string', 'example' => 'yes'], + 'ClientAddr' => ['description' => '主播IP。', 'type' => 'string', 'example' => '10.175.XX.XX'], + 'StreamUrl' => ['description' => '播流的URL。', 'type' => 'string', 'example' => 'http://example.com/liveApp****/liveStream****.flv'], + 'AliInnerErrorFlags' => ['description' => '断流原因错误码。格式为:3个数字或1个数字。', 'type' => 'string', 'example' => '002'], ], + 'description' => '', ], ], ], - ], - 'CasterId' => [ - 'description' => '导播台ID。可作为启动导播台场景的请求参数。', - 'type' => 'string', - 'example' => '97df6b7f-3490-47d2-ac50-88338765****', - ], - 'FollowEnable' => [ - 'description' => '是否启用音频跟随。 默认启用音频跟随。 '."\n" - .' '."\n" - .'- **0**:混音模式。'."\n" - .'- **1**:音频跟随视频模式。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'MixList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LocationId' => [ - 'description' => '位置关联列表。 与AudioLayers顺序保持一致。', - 'type' => 'array', - 'items' => [ - 'description' => '位置ID。', - 'type' => 'string', - 'example' => 'RV01', - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '98745637-3490-47d2-ac50-883387567098', + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidScene.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'QpsOverLimit', 'errorMessage' => 'Qps is over limit for this domainName.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified parameter StartTime is not valid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified parameter EndTime is not valid.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not match the specified start time.', 'description' => ''], + ['errorCode' => 'Duration.Exceed', 'errorMessage' => 'Duration between StartTime and EndTime is too long.', 'description' => ''], + ['errorCode' => 'LiveServiceNotFound', 'errorMessage' => 'Your account does not open Live service yet', 'description' => '您的账户尚未开通直播服务'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"AudioLayers\\": {\\n \\"AudioLayer\\": [\\n {\\n \\"FixedDelayDuration\\": 2000,\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 1\\n }\\n ]\\n },\\n \\"CasterId\\": \\"97df6b7f-3490-47d2-ac50-88338765****\\",\\n \\"FollowEnable\\": 1,\\n \\"MixList\\": {\\n \\"LocationId\\": [\\n \\"RV01\\"\\n ]\\n },\\n \\"RequestId\\": \\"98745637-3490-47d2-ac50-883387567098\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t97df6b7f-3490-47d2-ac50-8833e1b64597\\n\\tRV01\\n 1\\n 97df6b7f-3490-47d2-ac50-88338765****\\n\\t\\n\\t\\tall\\n 1\\n 2000\\n\\t\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"97df6b7f-3490-47d2-ac50-8833e1b64597\\",\\n \\"Content\\": {\\n \\"MixList\\": [\\n \\"1\\"\\n ],\\n \\"AudioLayers\\": [\\n {\\n \\"ValidChannel\\": \\"all\\",\\n \\"VolumeRate\\": 1\\n }\\n ],\\n \\"FollowEnable\\": 1\\n }\\n}"}]', - 'title' => '查询场景音频配置信息', - 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口查询场景音频配置。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalPage\\": 2,\\n \\"PageNum\\": 2,\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\",\\n \\"TotalNum\\": 11,\\n \\"PublishInfo\\": {\\n \\"LiveStreamPublishInfo\\": [\\n {\\n \\"EdgeNodeAddr\\": \\"10.175.XX.XX\\",\\n \\"PublishUrl\\": \\"rtmp://demo.aliyundoc.com/liveApp****/liveStream****\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"StopTime\\": \\"2015-12-02T03:11:19Z\\",\\n \\"TranscodeId\\": \\"ld\\",\\n \\"PublishDomain\\": \\"demo.aliyundoc.com\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"PublishTime\\": \\"2015-12-02T03:05:53Z\\",\\n \\"PublishType\\": \\"edge\\",\\n \\"Transcoded\\": \\"yes\\",\\n \\"ClientAddr\\": \\"10.175.XX.XX\\",\\n \\"StreamUrl\\": \\"http://example.com/liveApp****/liveStream****.flv\\",\\n \\"AliInnerErrorFlags\\": \\"002\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n11\\n2\\n10\\n2\\n 40A4F36D-A7CC-473A-88E7-154F92242566\\n\\n \\n rtmp://demo.aliyundoc.com/liveApp****/liveStream****\\n 10.175.XX.XX\\n liveStream****\\n ld\\n example.com\\n 10.175.XX.XX\\n demo.aliyundoc.com\\n yes\\n 2015-12-02T03:05:53Z\\n edge\\n http://example.com/liveApp****/liveStream****.flv\\n 2015-12-02T03:11:19Z\\n liveApp****\\n \\n\\n","errorExample":"{\\n \\"PageNum\\":2,\\n \\"PageSize\\":10,\\n \\"PublishInfo\\":{\\n \\"LiveStreamPublishInfo\\":[{\\n \\"AppName\\":\\"xchen\\",\\n \\"ClientAddr\\":\\"10.175.60.33\\",\\n \\"DomainName\\":\\"test101.cdnpe.com\\",\\n \\"EdgeNodeAddr\\":\\"10.175.30.21\\",\\n \\"PublishDomain\\":\\"test101.cdnpe.com\\",\\n \\"PublishTime\\":\\"2015-12-02T03:05:53Z\\",\\n \\"PublishUrl\\":\\"rtmp://test101.cdnpe.com/xchen\\",\\n \\"StopTime\\":\\"2015-12-02T03:11:19Z\\",\\n \\"StreamName\\":\\"testxchen\\",\\n \\"StreamUrl\\":\\"rtmp://xxx/xxxx\\"\\n }]\\n },\\n \\"RequestId\\":\\"1C0E0C22-77B7-42AC-8212-AF99B2E0077F\\",\\n \\"TotalNum\\":11,\\n \\"TotalPage\\":2\\n}"}]', + 'title' => '查询域名历史流列表', + 'description' => '调用本接口最多可查询近30天的历史流。返回的数据为查询时间段内的在线流信息。本接口目前支持以下排序方式:'."\n" + ."\n" + .'- stream_name_desc:按直播流名称倒序。'."\n" + ."\n" + .'- stream_name_asc:按直播流名称升序。'."\n" + ."\n" + .'- publish_time_desc:按推流时间倒序。'."\n" + ."\n" + .'- publish_time_asc:按推流时间升序。'."\n" + ."\n\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为3次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'StartCasterScene' => [ - 'summary' => '启动指定场景,限制仅用于PVW的打开。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-12-30T02:08:48.000Z', 'description' => '错误码发生变更、响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsPublishList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsPublishList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeLiveStreamsTotalCount' => [ + 'summary' => '调用DescribeLiveStreamsTotalCount接口获取天粒度累计直播流路数。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '80787064-1c94-4dc1-85ce-9409960a****', - ], + 'schema' => ['description' => '推流域名或播放域名,查域名级别数据时必传。最多支持10个域名批量查询,多个域名用半角逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'SceneId', + 'name' => 'Typ', 'in' => 'query', - 'schema' => [ - 'description' => '场景ID。'."\n" - ."\n" - .'只有是PVW场景时才可用。', - 'type' => 'string', - 'required' => true, - 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', - ], + 'schema' => ['description' => '不传,默认查域名级别的数据。传aliuid查UID维度的数据。', 'type' => 'string', 'required' => false, 'example' => 'aliuid'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'> 支持最大的查询范围是最近1.5年。', 'type' => 'string', 'required' => true, 'example' => '2023-07-24T16:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。需晚于开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'> StartTime和EndTime时间间隔在15天内,且EndTime不超过当前时间。当天数据第二天才查询。', 'type' => 'string', 'required' => true, 'example' => '2023-07-25T16:00:00Z'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', - ], - 'StreamUrl' => [ - 'description' => '当前场景的输出流地址。用于导播台播放,非旁路输出', - 'type' => 'string', - 'example' => 'http://live/caster/example.org', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'String FCFFE4A4-F34F-4EEF-B401-36A01689AFBC'], + 'StreamCountList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamCountInfos' => [ + 'description' => '流信息统计内容。', + 'type' => 'array', + 'items' => [ + 'description' => '统计内容详情。', + 'type' => 'object', + 'properties' => [ + 'Count' => ['description' => '累计直播流数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '934'], + 'Timestamp' => ['description' => '时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC 时间)。', 'type' => 'string', 'example' => '2023-07-24T16:00:00Z'], + ], + ], + ], + ], + 'description' => '', ], ], ], @@ -38801,139 +30561,116 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectSceneStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.Inuse', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidSceneId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectCasterStatus.Idle', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'UserQuotaExceed', - 'errorMessage' => 'Quota exceeded: %s.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'Duration.Exceed', 'errorMessage' => 'Duration between StartTime and EndTime is too long.', 'description' => ''], ], - [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidScene.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidLayout.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidConfiguration.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterTemplate.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 404 => [ + ['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain provided does not belong to you.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"StreamUrl\\": \\"http://live/caster/example.org\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n http://live/caster/example.org\\n","errorExample":""}]', - 'title' => '启动导播台场景', - 'description' => '调用本接口启动指定场景,限制仅用于PVW场景(预览场景)的启动。'."\n" - ."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"String\\\\tFCFFE4A4-F34F-4EEF-B401-36A01689AFBC\\",\\n \\"StreamCountList\\": {\\n \\"StreamCountInfos\\": [\\n {\\n \\"Count\\": 934,\\n \\"Timestamp\\": \\"2023-07-24T16:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n String\\tFCFFE4A4-F34F-4EEF-B401-36A01689AFBC\\n \\n 934\\n 2023-07-24T16:00:00Z\\n \\n","errorExample":""}]', + 'title' => '获取天粒度累计直播流路数', + 'description' => '- 最大查询时间跨度:15天。'."\n" + .'- 最大查询时间范围:最长可查近1.5年的数据。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'StopCasterScene' => [ - 'summary' => '停止指定场景,限制仅用于停止PVW场景(预览场景)。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为100次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'extraInfo' => '| 错误代码 | 描述 | HTTP状态码 | 语义|'."\n" + .'| :-----| :-----| :---- |:----|'."\n" + .'| InvalidStartTime.Malformed | Specified StartTime is malformed. |400|开始时间错误 |'."\n" + .'| InvalidEndTime.Malformed |Specified EndTime is malformed. |400 | 结束时间错误|'."\n" + .'| MissingDomainName | DomainName is mandatory for this action. | 400 | 缺少DomainName值 |'."\n" + .'|InvalidParam |Parameter invalid. | 400 |参数错误 |'."\n" + .'| Duration.Exceed |Duration between StartTime and EndTime is too long. | 400 | 查询的时间段过长 |'."\n" + .'|InvalidDomain.NotFound | The domain provided does not belong to you. |404 |域名不存在或不属于当前用户 |'."\n" + .'| InternalError | The request processing has failed due to backend service exception. | 500 | 内部错误|'."\n" + ."\n", + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsTotalCount', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeLiveTagResources' => [ + 'summary' => '用于查询Live资源对应的标签。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'description' => '资源ID。直播域名。N的取值范围为**1~50**。', + 'type' => 'array', + 'items' => ['description' => '资源ID。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], + 'required' => true, + 'example' => 'example.com', + 'maxItems' => 50, ], ], [ - 'name' => 'CasterId', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '80787064-1c94-4dc1-85ce-9409960a****', + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签信息。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。N的取值范围为**1~20**。', 'type' => 'string', 'required' => false, 'example' => 'env'], + 'Value' => ['description' => '标签值。N的取值范围为**1~20**。', 'type' => 'string', 'required' => false, 'example' => 'product'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, ], ], [ - 'name' => 'SceneId', + 'name' => 'ResourceType', 'in' => 'query', 'schema' => [ - 'description' => '场景ID。'."\n" - ."\n" - .'当场景是PVW场景时,本API接口才可用。场景类型请参见[查询导播台场景](~~2848102~~)。', + 'description' => '资源类型。', 'type' => 'string', 'required' => true, - 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', + 'enumValueTitles' => ['DOMAIN' => 'DOMAIN'], + 'example' => 'DOMAIN', ], ], ], @@ -38942,178 +30679,100 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '****41F1-04A5-496F-8C8D-634BDBE6****'], + 'TagResources' => [ + 'description' => '标签资源列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签资源。', + 'type' => 'object', + 'properties' => [ + 'ResourceId' => ['description' => '资源ID。', 'type' => 'string', 'example' => 'example.com'], + 'Tag' => [ + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签信息。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。', 'type' => 'string', 'example' => 'env'], + 'Value' => ['description' => '标签值。', 'type' => 'string', 'example' => 'product'], + ], + ], + ], + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidSceneId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.Idle', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidScene.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', - 'title' => '停止导播台场景', - 'description' => '调用本接口停止指定场景,限制仅用于停止PVW场景(预览场景)。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'errorCodes' => [], + 'title' => '查询Live资源对应的标签', + 'description' => '单用户调用频率:10次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SetCasterChannel' => [ - 'summary' => '设置导播台通道。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2022-08-31T08:13:45.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"****41F1-04A5-496F-8C8D-634BDBE6****\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"example.com\\",\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\n \\n example.com\\n \\n product\\n env\\n \\n \\n","errorExample":""}]', + ], + 'DescribeLiveTopDomainsByFlow' => [ + 'summary' => '调用DescribeLiveTopDomainsByFlow获取用户按流量排名的域名。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'CasterId', - 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - ], - [ - 'name' => 'ChannelId', - 'in' => 'query', - 'schema' => [ - 'description' => '通道ID。'."\n" - ."\n" - .'布局画面的引用编号,每个通道位置至多设置一个资源,数量受限于导播台创建时的通道路数。格式符合“RV01~RV12”。', - 'type' => 'string', - 'required' => true, - 'example' => 'RV01', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'schema' => [ - 'description' => '视频源ID。', - 'type' => 'string', - 'required' => false, - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'SeekOffset', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '仅对文件视频有效,直播源无效,必须大于或等于0,表示从相对于首帧的偏差时间作为开始读取的位置。 单位:毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1000', - ], + 'schema' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。'."\n" + .'格式为:YYYY-MM-DDThh:mm:ssZ(UTC时间)。最小数据粒度为5分钟,不写默认读取当月数据。', 'type' => 'string', 'required' => false, 'example' => '2018-03-17T16:00:00Z'], ], [ - 'name' => 'PlayStatus', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '播放状态。仅对文件视频有效,直播源无效。 取值: '."\n" - .' '."\n" - .'- **1**(默认值):播放。'."\n" - .'- **0**:暂停。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '结束时间需大于起始时间。日期格式按照ISO8601表示法,并使用UTC时间。'."\n" + .'格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2018-03-20T16:00:00Z'], ], [ - 'name' => 'FaceBeauty', + 'name' => 'Limit', 'in' => 'query', - 'schema' => [ - 'description' => '人脸美颜。具体包括:0(whole)、1(磨皮)、2(美白)、3(去除黑眼圈)、4(法令纹)。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => '获取域名数量限制。默认为20,取值支持1~100。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '20', 'default' => '20'], ], ], 'responses' => [ @@ -39121,100 +30780,80 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'DomainOnlineCount' => ['description' => '账户下正在运行域名总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'EndTime' => ['description' => '结束时间。日期格式按照 ISO8601 表示法,并使用 UTC 时间。 格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2018-03-20T16:00:00Z'], + 'StartTime' => ['description' => '开始时间。日期格式按照 ISO8601 表示法,并使用 UTC 时间。 格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2018-03-17T16:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '33834C3E-388E-5FFE-A8AE-63575035C064'], + 'DomainCount' => ['description' => '账户下域名总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'TopDomains' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TopDomain' => [ + 'description' => '域名排名列表。', + 'type' => 'array', + 'items' => [ + 'description' => '域名排名列表。', + 'type' => 'object', + 'properties' => [ + 'MaxBps' => ['description' => '带宽峰值。', 'type' => 'integer', 'format' => 'int64', 'example' => '22139626'], + 'Rank' => ['description' => '排名。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'TotalAccess' => ['description' => '访问次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '107784230'], + 'TrafficPercent' => ['description' => '流量占比。', 'type' => 'string', 'example' => '30.64191989360235'], + 'DomainName' => ['description' => '域名。', 'type' => 'string', 'example' => 'example.com'], + 'TotalTraffic' => ['description' => '总流量。', 'type' => 'string', 'example' => '2043859876683.9001'], + 'MaxBpsTime' => ['description' => '带宽峰值时刻。', 'type' => 'string', 'example' => '1457111400'], + ], + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'DuplicateLocationID', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.PlayStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidChannelId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.SeekOffset', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectChannel.Disable', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'ResourceOfChannelExist', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified value of parameter StartTime is not supported.', 'description' => '传入的StartTime参数不支持。'], ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainOnlineCount\\": 1,\\n \\"EndTime\\": \\"2018-03-20T16:00:00Z\\",\\n \\"StartTime\\": \\"2018-03-17T16:00:00Z\\",\\n \\"RequestId\\": \\"33834C3E-388E-5FFE-A8AE-63575035C064\\",\\n \\"DomainCount\\": 1,\\n \\"TopDomains\\": {\\n \\"TopDomain\\": [\\n {\\n \\"MaxBps\\": 22139626,\\n \\"Rank\\": 1,\\n \\"TotalAccess\\": 107784230,\\n \\"TrafficPercent\\": \\"30.64191989360235\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"TotalTraffic\\": \\"2043859876683.9001\\",\\n \\"MaxBpsTime\\": \\"1457111400\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1\\n 2018-03-20T16:00:00Z\\n 2018-03-17T16:00:00Z\\n 33834C3E-388E-5FFE-A8AE-63575035C064\\n 1\\n \\n 22139626\\n 1\\n 107784230\\n 30.64191989360235\\n example.com\\n 2043859876683.9001\\n 1457111400\\n \\n","errorExample":""}]', + 'title' => '获取流最多域名', + 'description' => '- 不指定StartTime和EndTime时,默认读取当月的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" + .'- 最多可获取90天的数据。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveTopDomainsByFlow'], ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidResource.NotFound', - 'errorMessage' => '%s, please check and try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveTopDomainsByFlow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n}"}]', - 'title' => '设置导播台通道', - 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口设置导播台通道。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeCasterChannels' => [ - 'summary' => '查询导播台通道。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + ], + ], + 'DescribeLiveUpVideoAudioInfo' => [ + 'summary' => '查询一段时间内的流的上行推流的音视频参数。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], ], ], 'operationType' => 'read', @@ -39222,203 +30861,368 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '107116', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'Stream', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '查询的流名,需要完整填写,格式为:`rtmp://推流域名/app名/流名`', 'type' => 'string', 'required' => true, 'example' => 'rtmp://example.com/AppName/StreamName'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T15:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T15:10:00Z '], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '视频音频信息。', 'type' => 'object', 'properties' => [ - 'Channels' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7'], + 'UpItems' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Channel' => [ - 'description' => '通道列表。', + 'PublishItem' => [ + 'description' => '返回信息中聚合推流数总计。', 'type' => 'array', 'items' => [ - 'description' => '通道列表。', + 'description' => '信息。', 'type' => 'object', 'properties' => [ - 'ChannelId' => [ - 'description' => '通道位置ID。'."\n" - ."\n" - .'布局应用通道ID,每个位置至多设置一个视频源,格式需符合“RV01~RV12”。', - 'type' => 'string', - 'example' => 'RV01', + 'AacHeaders' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AacHeaders' => [ + 'description' => '秒级音频AAC头,单位:次数。', + 'type' => 'array', + 'items' => [ + 'description' => '秒级音频AAC头。', + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '查询时间,用UNIX毫秒时间戳表示。', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408'], + 'Value' => ['description' => '对应质量数据在查询时间的秒级指标值。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + ], + ], + ], + ], + 'description' => '', ], - 'FaceBeauty' => [ - 'description' => '人脸美颜。具体包括:0(whole)、1(磨皮)、2(美白)、3(去除黑眼圈)、4(法令纹)。', - 'type' => 'string', - 'example' => '0', + 'AppName' => ['description' => '推流App名称。', 'type' => 'string', 'example' => 'AppName'], + 'AudioBitRate' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AudioBitRate' => [ + 'description' => '秒级音频码率,单位:bit/s。', + 'type' => 'array', + 'items' => [ + 'description' => '秒级音频码率。', + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '查询时间,用UNIX毫秒时间戳表示。', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408'], + 'Value' => ['description' => '对应质量数据在查询时间的秒级指标值。', 'type' => 'integer', 'format' => 'int32', 'example' => '24552'], + ], + ], + ], + ], + 'description' => '', ], - 'ResourceId' => [ - 'description' => '视频源Id。', - 'type' => 'string', - 'example' => '87642866-281E-4AEA-9582-B124879****', + 'AudioFrames' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AudioFrames' => [ + 'description' => '秒级音频帧率,单位:帧。', + 'type' => 'array', + 'items' => [ + 'description' => '秒级音频帧率。', + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '查询时间,用UNIX毫秒时间戳表示。', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408'], + 'Value' => ['description' => '对应质量数据在查询时间的秒级指标值。', 'type' => 'integer', 'format' => 'int32', 'example' => '23'], + ], + ], + ], + ], + 'description' => '', ], - 'RtmpUrl' => [ - 'description' => 'rtmp地址。', - 'type' => 'string', - 'example' => 'rtmp://demo.aliyundoc.com/caster/rtmperf?auth_key=****', + 'AudioInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AudioInterval' => [ + 'description' => '秒级最大音频帧间隔,单位:毫秒。', + 'type' => 'array', + 'items' => [ + 'description' => '秒级最大音频帧间隔。', + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '查询时间,用UNIX毫秒时间戳表示。', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408'], + 'Value' => ['description' => '对应质量数据在查询时间的秒级指标值。', 'type' => 'integer', 'format' => 'int32', 'example' => '254'], + ], + ], + ], + ], + 'description' => '', ], - 'StreamUrl' => [ - 'description' => '通道输出地址。', - 'type' => 'string', - 'example' => 'http://demo.aliyundoc.com/caster/streamwsx.flv?auth_key=YYYYY', + 'AudioStamps' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AudioStamps' => [ + 'description' => '秒级音频时间戳,单位:毫秒。', + 'type' => 'array', + 'items' => [ + 'description' => '秒级音频时间戳。', + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '查询时间,用UNIX毫秒时间戳表示。', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408'], + 'Value' => ['description' => '对应质量数据在查询时间的秒级指标值。', 'type' => 'integer', 'format' => 'int32', 'example' => '725053422'], + ], + ], + ], + ], + 'description' => '', + ], + 'AvcHeaders' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'AvcHeaders' => [ + 'description' => '秒级音频AVC头,单位:次数。', + 'type' => 'array', + 'items' => [ + 'description' => '秒级音频AVC头。', + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '查询时间,用UNIX毫秒时间戳表示。', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408'], + 'Value' => ['description' => '对应质量数据在查询时间的秒级指标值。', 'type' => 'integer', 'format' => 'int32', 'example' => '11'], + ], + ], + ], + ], + 'description' => '', + ], + 'CodecInfo' => ['description' => '音视频编码信息。', 'type' => 'string', 'example' => 'H264/AAC'], + 'DomainName' => ['description' => '推流域名。', 'type' => 'string', 'example' => 'example.com'], + 'ErrorFlags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ErrorFlags' => [ + 'description' => '推流断开错误码。', + 'type' => 'array', + 'items' => [ + 'description' => '推流断开错误码。', + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '查询时间,用UNIX毫秒时间戳表示。', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408'], + 'Value' => ['description' => '对应质量数据在查询时间的秒级指标值。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + ], + ], + ], + ], + 'description' => '', + ], + 'PublishInterval' => ['description' => '推流时长,单位为秒;"-"表示正在推流,暂无推流时长。', 'type' => 'string', 'example' => '-'], + 'PublishIp' => ['description' => '推流端IP。', 'type' => 'string', 'example' => 'cn397'], + 'PublishStatus' => ['description' => '推流状态,分为 “1”: “正在推流” 或 “0”: “过去推流” 两种', 'type' => 'string', 'example' => '1'], + 'PublishTime' => ['description' => '推流开始时间,UTC格式。', 'type' => 'string', 'example' => '2015-12-10T15:00:00Z'], + 'StopTime' => ['description' => '推流结束时间,UTC格式。', 'type' => 'string', 'example' => '2015-12-10T15:10:00Z'], + 'StreamName' => ['description' => '流的名称。', 'type' => 'string', 'example' => 'StreamName'], + 'UniqueId' => ['description' => '每次推流的唯一ID。', 'type' => 'string', 'example' => '2.-395_37261_9848098_1538080899396'], + 'VideoAndAudioStamp' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'V_AStamp' => [ + 'description' => '秒级音视频时间戳差值,单位:毫秒。', + 'type' => 'array', + 'items' => [ + 'description' => '秒级音视频时间戳差值。', + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '查询时间,用UNIX毫秒时间戳表示。', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408'], + 'Value' => ['description' => '对应质量数据在查询时间的秒级指标值。', 'type' => 'integer', 'format' => 'int32', 'example' => '359'], + ], + ], + ], + ], + 'description' => '', + ], + 'VideoBitRate' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VideoBitRate' => [ + 'description' => '秒级视频码率,单位:bit/s。', + 'type' => 'array', + 'items' => [ + 'description' => '秒级视频码率。', + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '查询时间,用UNIX毫秒时间戳表示。', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408'], + 'Value' => ['description' => '对应质量数据在查询时间的秒级指标值。', 'type' => 'integer', 'format' => 'int32', 'example' => '3970160'], + ], + ], + ], + ], + 'description' => '', + ], + 'VideoFrames' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VideoFrames' => [ + 'description' => '秒级视频帧率,单位:帧。', + 'type' => 'array', + 'items' => [ + 'description' => '秒级视频帧率。', + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '查询时间,用UNIX毫秒时间戳表示。', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408'], + 'Value' => ['description' => '对应质量数据在查询时间的秒级指标值。', 'type' => 'integer', 'format' => 'int32', 'example' => '29'], + ], + ], + ], + ], + 'description' => '', + ], + 'VideoInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VideoInterval' => [ + 'description' => '秒级最大视频帧间隔,单位:毫秒。', + 'type' => 'array', + 'items' => [ + 'description' => '秒级最大视频帧间隔。', + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '查询时间,用UNIX毫秒时间戳表示。', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408'], + 'Value' => ['description' => '对应质量数据在查询时间的秒级指标值。', 'type' => 'integer', 'format' => 'int32', 'example' => '278'], + ], + ], + ], + ], + 'description' => '', + ], + 'VideoStamps' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'VideoStamps' => [ + 'description' => '秒级视频时间戳,单位:毫秒。', + 'type' => 'array', + 'items' => [ + 'description' => '秒级视频时间戳。', + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '查询时间,用UNIX毫秒时间戳表示。', 'type' => 'integer', 'format' => 'int64', 'example' => '1538134750408'], + 'Value' => ['description' => '对应质量数据在查询时间的秒级指标值。', 'type' => 'integer', 'format' => 'int32', 'example' => '725053781'], + ], + ], + ], + ], + 'description' => '', ], ], ], ], ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '83C52866-281E-4AEA-9582-B124********', - ], - 'Total' => [ - 'description' => '总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', + 'description' => '', ], ], ], ], ], 'errorCodes' => [ + 200 => [ + ['errorCode' => 'InvalidDuration.ExceedOneDay', 'errorMessage' => 'StartTime and EndTime Duration Exceeds One Day', 'description' => ''], + ['errorCode' => 'InvalidDuration.StratTimeBiggerEndTime', 'errorMessage' => 'StartTime Bigger Than EndTime', 'description' => ''], + ], 400 => [ - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter Stream invalid.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], ], [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Channels\\": {\\n \\"Channel\\": [\\n {\\n \\"ChannelId\\": \\"RV01\\",\\n \\"FaceBeauty\\": \\"0\\",\\n \\"ResourceId\\": \\"87642866-281E-4AEA-9582-B124879****\\",\\n \\"RtmpUrl\\": \\"rtmp://demo.aliyundoc.com/caster/rtmperf?auth_key=****\\",\\n \\"StreamUrl\\": \\"http://demo.aliyundoc.com/caster/streamwsx.flv?auth_key=YYYYY\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"83C52866-281E-4AEA-9582-B124********\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n \\n RV01\\n 0\\n 87642866-281E-4AEA-9582-B124879****\\n rtmp://demo.aliyundoc.com/caster/rtmperf?auth_key=****\\n http://demo.aliyundoc.com/caster/streamwsx.flv?auth_key=YYYYY\\n \\n 83C52866-281E-4AEA-9582-B1245406349D\\n 1\\n","errorExample":""}]', - 'title' => '查询导播台通道信息列表', - 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口查询导播台通道。'."\n" - ."\n\n" + 'title' => '获取直播视频音频信息', + 'description' => '- 数据最大查询跨度为24小时。'."\n" + .'- 数据最小查询跨度为1分钟。'."\n" + .'- 数据最大查询范围为31天。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'EffectCasterUrgent' => [ - 'summary' => '切换导播台备播。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseParamsDescription' => '部分参数不存在时,返回空字符串。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveUpVideoAudioInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"UpItems\\": {\\n \\"PublishItem\\": [\\n {\\n \\"AacHeaders\\": {\\n \\"AacHeaders\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 20\\n }\\n ]\\n },\\n \\"AppName\\": \\"AppName\\",\\n \\"AudioBitRate\\": {\\n \\"AudioBitRate\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 24552\\n }\\n ]\\n },\\n \\"AudioFrames\\": {\\n \\"AudioFrames\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 23\\n }\\n ]\\n },\\n \\"AudioInterval\\": {\\n \\"AudioInterval\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 254\\n }\\n ]\\n },\\n \\"AudioStamps\\": {\\n \\"AudioStamps\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 725053422\\n }\\n ]\\n },\\n \\"AvcHeaders\\": {\\n \\"AvcHeaders\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 11\\n }\\n ]\\n },\\n \\"CodecInfo\\": \\"H264/AAC\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"ErrorFlags\\": {\\n \\"ErrorFlags\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 0\\n }\\n ]\\n },\\n \\"PublishInterval\\": \\"-\\",\\n \\"PublishIp\\": \\"cn397\\",\\n \\"PublishStatus\\": \\"1\\",\\n \\"PublishTime\\": \\"2015-12-10T15:00:00Z\\",\\n \\"StopTime\\": \\"2015-12-10T15:10:00Z\\",\\n \\"StreamName\\": \\"StreamName\\",\\n \\"UniqueId\\": \\"2.-395_37261_9848098_1538080899396\\",\\n \\"VideoAndAudioStamp\\": {\\n \\"V_AStamp\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 359\\n }\\n ]\\n },\\n \\"VideoBitRate\\": {\\n \\"VideoBitRate\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 3970160\\n }\\n ]\\n },\\n \\"VideoFrames\\": {\\n \\"VideoFrames\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 29\\n }\\n ]\\n },\\n \\"VideoInterval\\": {\\n \\"VideoInterval\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 278\\n }\\n ]\\n },\\n \\"VideoStamps\\": {\\n \\"VideoStamps\\": [\\n {\\n \\"Time\\": 1538134750408,\\n \\"Value\\": 725053781\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n BC858082-736F-4A25-867B-E5B67C85ACF7\\n \\n 2015-12-10T15:00:00Z\\n AppName\\n H264/AAC\\n cn397\\n StreamName\\n 1\\n 2.-395_37261_9848098_1538080899396\\n -\\n 2015-12-10T15:10:00Z\\n example.com\\n \\n 29\\n \\n \\n \\n 23\\n \\n \\n \\n 725053781\\n \\n \\n \\n 725053422\\n \\n \\n \\n 359\\n \\n \\n \\n 11\\n \\n \\n \\n 20\\n \\n \\n \\n 3970160\\n \\n \\n \\n 24552\\n \\n \\n \\n 278\\n \\n \\n \\n 254\\n \\n \\n \\n 0\\n \\n \\n \\n","errorExample":""}]', + ], + 'DescribeLiveUserBillPrediction' => [ + 'summary' => '获取直播用户预期账单', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '80787064-1c94-4dc1-85ce-9409960a****', - ], + 'schema' => ['description' => '开始时间。格式为:yyyy-mm-ddthh:mm:ssz(utc时间)。', 'type' => 'string', 'required' => false, 'example' => '2015-12-01T05:40:00Z'], ], [ - 'name' => 'SceneId', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '场景ID,PGM场景时有效。'."\n" - ."\n" - .'您可以通过[DescribeCasterScenes](~~2848039~~)接口查询导播台场景ID。', - 'type' => 'string', - 'required' => true, - 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****', - ], + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2015-12-01T05:45:00Z'], ], ], 'responses' => [ @@ -39426,474 +31230,479 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', + 'EndTime' => ['description' => '默认为当前时间, 日期格式按照ISO8601表示法,并使用UTC时间。'."\n" + .'格式为:YYYY-MM-DDThh:mm:ssZ', 'type' => 'string', 'example' => '2018-10-25T10:00:00Z'], + 'StartTime' => ['description' => '默认为月初第一天的 0 点整, 日期格式按照ISO8601表示法,并使用UTC时间。'."\n" + .'格式为:YYYY-MM-DDThh:mm:ssZ', 'type' => 'string', 'example' => '2018-09-30T16:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****'], + 'BillType' => [ + 'description' => '用户计费类型。计费模式取值如下所示:'."\n" + ."\n" + .'- hour_flow:按小时流量计费。'."\n" + .'- day_bandwidth:按日带宽计费。'."\n" + .'- month_95:按月95峰值带宽计费。'."\n" + .'- month_avg_day_bandwidth:按月均日峰值带宽计费。'."\n" + .'- month_4th_day_bandwidth:按月第四日峰值带宽计费。'."\n" + .'- month_avg_day_95:按月均日95峰值带宽计费。'."\n" + .'- month_95_night_half: 按夜间半价95峰值带宽计费。'."\n" + .'- hour_vas:按小时增值服务计费。'."\n" + .'- day_count:按日请求次数计费。', 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + 'enumValueTitles' => [], + 'example' => 'day_bandwidth', + ], + 'BillPredictionData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'BillPredictionDataItem' => [ + 'description' => '账单预测数据。', + 'type' => 'array', + 'items' => [ + 'description' => '账单预测数据。', + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => '预测值。', 'type' => 'number', 'format' => 'float', 'example' => '10000'], + 'TimeStp' => ['description' => '预测值对应的时刻,仅95、夜间半价95和月第四日峰值有这个字段。', 'type' => 'string', 'example' => '2018-10-15T16:00:00Z'], + 'Area' => ['description' => '区域代号。支持:'."\n" + .'- CN:中国内地。'."\n" + .'- OverSeas:海外大区。'."\n" + .'- AP1:亚太1区,包含中国香港地区、中国澳门地区、中国台湾地区、日本以及东南亚除越南和印尼之外的国家。'."\n" + .'- AP2:亚太2区,包含印尼、韩国、越南。'."\n" + .'- AP3:亚太3区,包含澳大利亚、新西兰。'."\n" + .'- NA:北美,包含美国、加拿大。'."\n" + .'- SA:南美,特指巴西。'."\n" + .'- EU:欧洲,包含乌克兰、英国、法国、荷兰、西班牙、意大利、瑞典、德国。'."\n" + .'- MEAA:中东非洲,包含南非、阿曼、阿联酋、科威特。'."\n" + ."\n" + .'不传值时默认为所有区域数据聚合输出。', 'type' => 'string', 'example' => 'CN'], + ], + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidSceneId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.Idle', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectChannel.Disable', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'InvalidParameter.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.', 'description' => ''], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified Time is malformed.', 'description' => '制定时间错误,请您确认该制定时间是否正确。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'BillTypeNotFound', 'errorMessage' => 'User bill type not found or is not monthly bill type.', 'description' => '账单类型不存在或不是月账单类型用户'], ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUrgentMaterial.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidScene.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidResource.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ], + 'title' => '获取直播用户预期账单', + 'description' => '用于预测用户当月的用量数据,按用户月初第一天的计费模式计算,只支持月度计费模式的预测,只支持用户粒度。 起始时间为月初1号0点,结束时间为当前时间前两个小时。'."\n" + ."\n" + .'- 月95:开始时间至结束时间内,去掉最高5%点后的最高点,为预测值。'."\n" + .' '."\n" + .'- 月均日峰值:每日峰值带宽求和/时间天数,不计算当天的数据。'."\n" + ."\n" + .' - 月第四峰:请求时间内,第四高的峰值为预测值,如果请求时间小于4天,返回预测值为0。'."\n" + ."\n" + .' - 日95月平均:每日日95峰值求和/时间天数,不计算当天的数据。'."\n" + ."\n" + .' - 夜间95:开始时间至结束时间内,去掉最高5%点后的最高点,为预测值。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为1次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveUserBillPrediction'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveUserBillPrediction', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n","errorExample":""}]', - 'title' => '切换导播台备播', - 'description' => '调用本接口将指定场景画面紧急切换至备播视频,限制仅用于PGM场景的备播切换。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2018-10-25T10:00:00Z\\",\\n \\"StartTime\\": \\"2018-09-30T16:00:00Z\\",\\n \\"RequestId\\": \\"B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\",\\n \\"BillType\\": \\"day_bandwidth\\",\\n \\"BillPredictionData\\": {\\n \\"BillPredictionDataItem\\": [\\n {\\n \\"Value\\": 10000,\\n \\"TimeStp\\": \\"2018-10-15T16:00:00Z\\",\\n \\"Area\\": \\"CN\\"\\n }\\n ]\\n }\\n}","type":"json"}]', ], - 'EffectCasterVideoResource' => [ - 'summary' => '更新导播台备播片。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLiveUserDomains' => [ + 'summary' => '查询用户名下所有的直播域名。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'operationType' => 'get', + 'abilityTreeCode' => '107118', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'LiveDomainType', 'in' => 'query', - 'schema' => [ - 'description' => '地域id。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '直播域名业务类型。取值:'."\n" + .'- **liveVideo**:播流域名。'."\n" + .'- **liveEdge**:边缘推流域名。'."\n" + ."\n" + .'>如果不设置此参数,则请求参数DomainName默认查询用户所有直播推流和播流域名。', 'type' => 'string', 'required' => false, 'example' => 'liveVideo'], ], [ - 'name' => 'CasterId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '80787064-1c94-4dc1-85ce-9409960a****', - ], + 'schema' => ['description' => '分页大小。默认值为**20**,最大值为**50**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'example' => '20', 'default' => '20'], ], [ - 'name' => 'SceneId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '场景ID。', - 'type' => 'string', - 'required' => true, - 'example' => '05ab713c-676e-49c0-96ce-cc408da1****', - ], + 'schema' => ['description' => '当前页码。取值范围:**1~100000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'ResourceId', + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '域名模糊匹配过滤。'."\n" + ."\n" + .'>- 如果LiveDomainType(直播域名业务类型)取值为liveVideo,此参数不传值时,默认查询用户播流域名的相关信息。- 如果LiveDomainType(直播域名业务类型)取值为liveEdge,此参数不传值时,默认查询用户推流域名的相关信息。', 'type' => 'string', 'required' => false, 'example' => '*.aliyundoc.com'], + ], + [ + 'name' => 'RegionName', 'in' => 'query', + 'schema' => ['description' => '域名所属地域。', 'type' => 'string', 'required' => false, 'example' => 'cn-beijing'], + ], + [ + 'name' => 'DomainSearchType', + 'in' => 'query', + 'schema' => ['description' => '域名查询类型。取值:'."\n" + ."\n" + .'- **fuzzy_match**(默认值):模糊匹配。'."\n" + .'- **pre_match**:前匹配。'."\n" + .'- **suf_match**:后匹配。'."\n" + .'- **full_match**:完全匹配。', 'type' => 'string', 'required' => false, 'example' => 'fuzzy_match'], + ], + [ + 'name' => 'DomainStatus', + 'in' => 'query', + 'schema' => ['description' => '域名状态。取值:'."\n" + ."\n" + .'- **online**:运行中(表示域名服务状态正常)。'."\n" + .'- **offline**:已停止。'."\n" + .'- **configuring**:配置中。', 'type' => 'string', 'required' => false, 'example' => 'online'], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '资源ID。如果您通过[DescribeCasterChannels接口](~~2848046~~)查询导播台通道,请查看DescribeCasterChannels接口调用返回的参数ResourceId值。', - 'type' => 'string', - 'required' => true, - 'example' => 'f096e8d6-0319-4c96-82bc-ecbc79cf****', + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签列表。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签健。', 'type' => 'string', 'required' => false, 'example' => 'TestKey'], + 'Value' => ['description' => '标签值。', 'type' => 'string', 'required' => false, 'example' => 'TestValue'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 20, ], ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-**kzvyjetyjjm**'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', + 'Domains' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PageData' => [ + 'description' => '域名列表。', + 'type' => 'array', + 'items' => [ + 'description' => '返回直播域名的状态信息。', + 'type' => 'object', + 'properties' => [ + 'Cname' => ['description' => '直播域名对应的CNAME域名。', 'type' => 'string', 'example' => 'learn.developer.aliyundoc.com'], + 'Description' => ['description' => '描述信息', 'type' => 'string', 'example' => 'test'], + 'DomainName' => ['description' => '域名名称。', 'type' => 'string', 'example' => 'demo.aliyundoc.com'], + 'GmtCreated' => ['description' => '直播域名创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'example' => '2017-08-29T12:15:36Z'], + 'GmtModified' => ['description' => '直播域名修改时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n", 'type' => 'string', 'example' => '2017-12-29T12:15:36Z'], + 'LiveDomainStatus' => ['description' => '域名状态。取值:'."\n" + ."\n" + .'- **online**:运行中(表示域名服务状态正常)。'."\n" + .'- **offline**:已停止。'."\n" + .'- **configuring**:配置中。', 'type' => 'string', 'example' => 'online'], + 'LiveDomainType' => ['description' => '直播域名业务类型。取值:'."\n" + ."\n" + .'- **liveVideo**:播流域名。'."\n" + .'- **liveEdge**:边缘推流域名。', 'type' => 'string', 'example' => 'liveVideo'], + 'RegionName' => ['description' => '域名所属地域。', 'type' => 'string', 'example' => 'cn-beijing'], + 'ResourceGroupId' => ['description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-**kzvyjetyjjm**'], + ], + ], + ], + ], + 'description' => '', ], + 'PageNumber' => ['description' => '返回数据的当前页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '分页大小。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'E4EBD2BF-5EB0-4476-8829-9D94E1B15267'], + 'TotalCount' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectSceneStatus.Idle', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.ConfigError', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidResourceId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidSceneId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidResource.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidScene.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidLayout.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InvalidPageNumber.ValueNotSupported', 'errorMessage' => 'The specified value of parameter PageNumber is not supported.', 'description' => '指定的PageNumber参数的值不支持。'], + ['errorCode' => 'InvalidPageSize.ValueNotSupported', 'errorMessage' => 'The specified value of parameter PageSize is not supported.', 'description' => ''], + ['errorCode' => 'InvalidDomainStatus.ValueNotSupported', 'errorMessage' => 'The specified value of parameter DomainStatus is not supported.', 'description' => ''], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specific value of parameter DomainName is malformed.', 'description' => ''], + ['errorCode' => 'InvalidDomainSearchType.ValueNotSupported', 'errorMessage' => 'The specified value of parameter DomainSearchType is not supported.', 'description' => ''], + ['errorCode' => 'InvalidDomainSearchType.Malformed', 'errorMessage' => 'he specified value of parameter DomainSearchType is invalid.', 'description' => ''], + ['errorCode' => 'InvalidLiveDomainType.ValueNotSupported', 'errorMessage' => 'The specified value of parameter LiveDomainType is not supported.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n","errorExample":""}]', - 'title' => '更新导播台备播片', - 'description' => '调用本接口将视频资源生效至指定场景,场景引用该视频资源时有效。'."\n" - ."\n" + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '查询用户名下所有的直播域名', + 'description' => '本接口目前支持的直播域名业务类型为播流域名和边缘推流域名。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AddShowIntoShowList' => [ - 'summary' => '添加节目到节目单中。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [ + ['createdAt' => '2024-09-25T02:39:23.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveUserDomains'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveUserDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Domains\\": {\\n \\"PageData\\": [\\n {\\n \\"Cname\\": \\"learn.developer.aliyundoc.com\\",\\n \\"Description\\": \\"test\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\",\\n \\"GmtCreated\\": \\"2017-08-29T12:15:36Z\\",\\n \\"GmtModified\\": \\"2017-12-29T12:15:36Z\\",\\n \\"LiveDomainStatus\\": \\"online\\",\\n \\"LiveDomainType\\": \\"liveVideo\\",\\n \\"RegionName\\": \\"cn-beijing\\",\\n \\"ResourceGroupId\\": \\"rg-**kzvyjetyjjm**\\"\\n }\\n ]\\n },\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 100,\\n \\"RequestId\\": \\"E4EBD2BF-5EB0-4476-8829-9D94E1B15267\\",\\n \\"TotalCount\\": 1\\n}","type":"json"}]', + ], + 'DescribeLiveUserStreamMetricData' => [ + 'summary' => '用于查询指定加速域名下的流粒度批量数据,支持多种协议。', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '214643', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '需要查询的加速域名。'."\n" + ."\n\n" + .'> 仅支持单个域名查询,传多个域名将报错。域名为空时,查询用户下的所有加速域名的聚合数据。不指定 `AppName` 和 `StreamName` 时,按域名返回所有流粒度的数据。', 'type' => 'string', 'required' => false, 'example' => 'test.com'], ], [ - 'name' => 'showList', + 'name' => 'StartTime', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '需要添加的多个节目资源列表,每个资源都有独立的showName,resourceUrl等参数。', - 'type' => 'array', - 'items' => [ - 'description' => '导播台列表信息。', - 'type' => 'object', - 'properties' => [ - 'duration' => [ - 'description' => '单个节目播放时间长度,单位:秒。'."\n" - ."\n" - .'>**RepeatTimes**和**Duration**两者只允许设置其中一个。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '20', - ], - 'liveInputType' => [ - 'description' => '自定义的类型标记。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'repeatTimes' => [ - 'description' => '单个节目播放循环次数,默认为0。'."\n" - ."\n" - .'>- **RepeatTimes**和**Duration**两者只允许设置其中一个。'."\n" - .'- RepeatTimes为重复次数,示例:0表示重复0次(实际播放1次),1表示重复1次(实际播放2次),以此类推。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], - 'resourceId' => [ - 'description' => '点播文件ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'resourceType' => [ - 'description' => '素材类型。取值:'."\n" - ."\n" - .'- live:直播素材。'."\n" - ."\n" - .'- vod:点播素材。'."\n" - ."\n" - .'- pic:图片素材。'."\n" - ."\n" - .'>- 使用视频点播(VOD)资源,可优先选择托管Bucket资源,自有Bucket资源存在过期风险,如果您选用自有Bucket资源,需注意资源的有效期时间。'."\n" - .'- 直播文件可支持直播素材和第三方URL。'."\n" - .'- 点播文件可支持点播素材、图片素材和第三方URL。', - 'type' => 'string', - 'required' => false, - 'example' => 'vod', - ], - 'resourceUrl' => [ - 'description' => '播放文件URL。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://****/atestObject****.m3u8', - ], - 'showName' => [ - 'description' => '节目名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveShow****', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => '获取数据起始时间点,日期格式按照 ISO8601 表示法,并使用 UTC 时间。格式为:`YYYY-MM-DDThh:mm:ssZ`。'."\n", 'type' => 'string', 'required' => true, 'example' => '2015-12-10T20:00:00Z'], ], [ - 'name' => 'CasterId', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '结束时间需大于起始时间,不能相差超过 1 天;日期格式按照 ISO8601 表示法,并使用 UTC 时间。格式为:`YYYY-MM-DDThh:mm:ssZ`。'."\n", 'type' => 'string', 'required' => true, 'example' => '2015-12-10T21:00:00Z'], ], [ - 'name' => 'ShowName', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '节目名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveShow****', - ], + 'schema' => ['description' => '应用名称。指定应用名称,查询对应应用流粒度的数据;指定 `StreamName` 时,必须指定 `AppName`。'."\n", 'type' => 'string', 'required' => false, 'example' => 'app'], ], [ - 'name' => 'ResourceType', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '素材类型。取值:'."\n" - .'- live:直播素材。'."\n" - .'- vod:点播素材。'."\n" - .'- pic:图片素材。'."\n" - ."\n" - .'>- 使用视频点播(VOD)资源,可优先选择托管Bucket资源,自有Bucket资源存在过期风险,如果您选用自有Bucket资源,需注意资源的有效期时间。- 直播文件可支持直播素材和第三方URL。- 点播文件可支持点播素材、图片素材和第三方URL。', - 'type' => 'string', - 'required' => false, - 'example' => 'vod', - ], + 'schema' => ['description' => '流名称。指定 `StreamName` 时,按指定 `AppName` 的指定 `StreamName`,返回流粒度的数据(指定 `StreamName` 时,必须指定 `AppName`)。'."\n", 'type' => 'string', 'required' => false, 'example' => 'test.flv'], ], [ - 'name' => 'ResourceUrl', + 'name' => 'Protocol', 'in' => 'query', - 'schema' => [ - 'description' => '播放文件URL。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://****/atestObject****.m3u8', - ], + 'schema' => ['description' => '流协议名。指定流协议名查询流对应协议的数据,目前支持:`flv`, `hls`, `rtmp`, `rts`, `p2p`。支持查询多个协议的数据,协议间用 `,` 分隔,多个协议的数据不会聚合,按照流的粒度输出。'."\n" + .'> **rts**选项可查询artc协议的超低延时直播流。'."\n" + .'> - 使用rts可能需要额外统计xxx_AliRTS-opu转码流。原因:Web端播超低延时直播时,会生成流名后加上_AliRTS-opus后缀的转码流进行自动转码,产生转码流数据。详细请参见[rts亚秒延时自动转码](~~2948703~~)。', 'type' => 'string', 'required' => false, 'example' => 'flv'], ], [ - 'name' => 'ResourceId', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '点播文件ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1'], ], [ - 'name' => 'Duration', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '单个节目播放时间长度,单位:秒。'."\n" - .'>**RepeatTimes**和**Duration**两者只允许设置其中一个。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => '单页数据条数,单页最大5000'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '10'], ], - [ - 'name' => 'RepeatTimes', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '单个节目播放循环次数,默认为0。'."\n" - .'> - **RepeatTimes**和**Duration**两者只允许设置其中一个。- RepeatTimes为重复次数,示例:-1表示可无限重复;0表示重复0次(实际播放1次);1表示重复1次(实际播放2次);以此类推。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'test.com'], + 'EndTime' => ['description' => 'YYYY-MM-DDThh:mm:ssZ'."\n", 'type' => 'string', 'example' => '2015-12-10T21:00:00Z'], + 'PageSize' => ['description' => '每页显示的条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], + 'StartTime' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。格式为:`YYYY-MM-DDThh:mm:ssZ`'."\n", 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + 'StreamDetailData' => [ + 'description' => '每个时间间隔的流量数据。', + 'type' => 'array', + 'items' => [ + 'description' => '返回数据组。', + 'type' => 'object', + 'properties' => [ + 'AppName' => ['description' => '应用名称,无论是否指定均返回该值。', 'type' => 'string', 'example' => 'app'], + 'Bps' => ['description' => '流每分钟总带宽,单位`bps`。', 'type' => 'number', 'format' => 'float', 'example' => '423304182.66'], + 'Count' => ['description' => '流每分钟总在并发连接数。'."\n" + ."\n" + .'> **并发连接数**指单位时间内同一个流下对客户端进程连接数的统计。', 'type' => 'integer', 'format' => 'int64', 'example' => '423304182'], + 'FlvBps' => ['description' => 'flv协议带宽,单位bps (指定协议不满足时,不返回)。', 'type' => 'number', 'format' => 'float', 'example' => '454'], + 'FlvCount' => ['description' => 'flv协议的并发连接数(指定协议不满足时,不返回)。', 'type' => 'integer', 'format' => 'int64', 'example' => '32'], + 'FlvTraffic' => ['description' => 'flv协议流量,单位byte (指定协议不满足时,不返回)。', 'type' => 'number', 'format' => 'double', 'example' => '1254'], + 'HlsBps' => ['description' => 'hls协议带宽,单位bps (指定协议不满足时,不返回)。', 'type' => 'number', 'format' => 'float', 'example' => '4456'], + 'HlsCount' => ['description' => 'hls协议的并发连接数 (指定协议不满足时,不返回)。', 'type' => 'integer', 'format' => 'int64', 'example' => '56'], + 'HlsTraffic' => ['description' => 'hls协议流量,单位byte (指定协议不满足时,不返回)。', 'type' => 'number', 'format' => 'double', 'example' => '568'], + 'NewConns' => ['description' => '流每分钟新建连接数。', 'type' => 'integer', 'format' => 'int64', 'example' => '450'], + 'P2pBps' => ['description' => 'p2p协议带宽,单位bps (指定协议不满足时,不返回)。', 'type' => 'number', 'format' => 'float', 'example' => '6845'], + 'P2pCount' => ['description' => 'p2p协议的并发连接数(指定协议不满足时,不返回)。', 'type' => 'integer', 'format' => 'int64', 'example' => '78'], + 'P2pTraffic' => ['description' => 'p2p协议流量,单位byte (指定协议不满足时,不返回)。', 'type' => 'number', 'format' => 'double', 'example' => '4102'], + 'RtmpBps' => ['description' => 'rtmp协议带宽,单位bps (指定协议不满足时,不返回)。', 'type' => 'number', 'format' => 'float', 'example' => '3323'], + 'RtmpCount' => ['description' => 'rtmp协议的并发连接数(指定协议不满足时,不返回)。', 'type' => 'integer', 'format' => 'int64', 'example' => '63'], + 'RtmpTraffic' => ['description' => 'rtmp协议流量,单位byte (指定协议不满足时,不返回)。', 'type' => 'number', 'format' => 'double', 'example' => '5568'], + 'RtsBps' => ['description' => 'rts协议带宽,单位bps (指定协议不满足时,不返回)。', 'type' => 'number', 'format' => 'double', 'example' => '2361'], + 'RtsCount' => ['description' => 'rts协议的并发连接数 (指定协议不满足时,不返回)。', 'type' => 'integer', 'format' => 'int64', 'example' => '89'], + 'RtsTraffic' => ['description' => 'rts协议流量,单位byte (指定协议不满足时,不返回)。', 'type' => 'number', 'format' => 'double', 'example' => '2322'], + 'StreamName' => ['description' => '流名称,无论是否指定均返回该值。', 'type' => 'string', 'example' => 'test.flv'], + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + 'Traffic' => ['description' => '流每分钟总流量,单位byte。', 'type' => 'number', 'format' => 'double', 'example' => '423304182'], + ], + ], + ], + 'TotalCount' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '50'], + 'PageNumber' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Meter.ParamError', 'errorMessage' => 'Param Error:%s,Please Check Again.', 'description' => '报错信息'], + ], + 403 => [ + ['errorCode' => 'Meter.AuthError', 'errorMessage' => 'Authentication Failed,Please Try Again.', 'description' => '鉴权失败'], + ], + 500 => [ + ['errorCode' => 'Meter.ServerInternalError', 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'description' => '服务内部异常'], + ['errorCode' => 'Meter.DataSourceQueryError', 'errorMessage' => 'Data Source Error:%s,Please Try Again.', 'description' => '数据查询错误'], + ], + 502 => [ + ['errorCode' => 'Meter.ReadyTsError', 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', 'description' => '查询的数据还未就绪'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询指定域名流粒度批量数据', + 'description' => '> 暂不支持HLS协议新建连接数查询,HLS的并发连接数按照默认格式的请求进行统计,特殊格式的请求需[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)进行配置。默认格式如下:'."\n" + .'> - m3u8请求示例:http(s)://example.aliyundoc.com/Appname/ StreamName.m3u8'."\n" + .'> - ts请求示例:http(s)://example.aliyundoc.com/Appname/ StreamName/153xxxxxxxx_137xxxxx.ts'."\n" + .'## 请求说明'."\n" + .'- **单次查询限制**:单次查询最多返回5000行数据。'."\n" + .'- **域名查询限制**:仅支持单个域名查询,多个域名会报错。'."\n" + .'- **时间跨度限制**:数据最大查询跨度为24小时。'."\n" + .'- **时间粒度限制**:数据最小查询粒度为1分钟。'."\n" + .'- **查询范围限制**:数据最大查询范围为31天。'."\n" + .'- **调用频率限制**:单用户调用频率为10次/秒。'."\n" + .'- **特殊参数组合**:当`DomainName`不为空且`AppName`和`StreamName`都设置为`all`时,将返回加速域名下的聚合数据。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'Spot', - 'in' => 'query', - 'schema' => [ - 'description' => '插入到播放列表的位置。位置从0 开始,默认添加到当前节目单的末尾。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveUserStreamMetricData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DomainName\\": \\"test.com\\",\\n \\"EndTime\\": \\"2015-12-10T21:00:00Z\\",\\n \\"PageSize\\": 10,\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"StartTime\\": \\"2015-12-10T20:00:00Z\\",\\n \\"StreamDetailData\\": [\\n {\\n \\"AppName\\": \\"app\\",\\n \\"Bps\\": 423304182.66,\\n \\"Count\\": 423304182,\\n \\"FlvBps\\": 454,\\n \\"FlvCount\\": 32,\\n \\"FlvTraffic\\": 1254,\\n \\"HlsBps\\": 4456,\\n \\"HlsCount\\": 56,\\n \\"HlsTraffic\\": 568,\\n \\"NewConns\\": 450,\\n \\"P2pBps\\": 6845,\\n \\"P2pCount\\": 78,\\n \\"P2pTraffic\\": 4102,\\n \\"RtmpBps\\": 3323,\\n \\"RtmpCount\\": 63,\\n \\"RtmpTraffic\\": 5568,\\n \\"RtsBps\\": 2361,\\n \\"RtsCount\\": 89,\\n \\"RtsTraffic\\": 2322,\\n \\"StreamName\\": \\"test.flv\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\",\\n \\"Traffic\\": 423304182\\n }\\n ],\\n \\"TotalCount\\": 50,\\n \\"PageNumber\\": 1\\n}","type":"json"}]', + ], + 'DescribeLiveUserTags' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'LiveInputType', - 'in' => 'query', - 'schema' => [ - 'description' => '自定义的类型标记。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ [ - 'name' => 'isBatchMode', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '是否批量添加节目到节目单。取值:'."\n" - ."\n" - .'- true:批量添加。'."\n" - ."\n" - .'- false:单个添加。'."\n" - ."\n" - .'>该参数不填,取值为空时,也表示单个添加。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], ], 'responses' => [ @@ -39901,474 +31710,303 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '987DA143-A39C-5B5D-AF5B-3B07944A0036', - ], - 'ShowId' => [ - 'description' => '节目ID。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'failedList' => [ - 'description' => '添加失败的资源列表以及失败原因信息。', - 'type' => 'string', - 'example' => 'failedList[Show1, Show2...]', - ], - 'successfulShowIds' => [ - 'description' => '添加成功添加的节目ID列表。', - 'type' => 'string', - 'example' => 'f1933f16-5467-4308-b3a9-e8d451a90999,547436b8-c839-4469-a2c0-704c1ce5ce00', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '6B0256B6-2442-5BEF-B8D6-A0C28A801DFC'], + 'Tags' => [ + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签key。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签key。', 'type' => 'string', 'example' => 'key1'], + 'Value' => [ + 'description' => '标签Value。', + 'type' => 'array', + 'items' => ['description' => '标签Value。', 'type' => 'string', 'example' => 'value1'], + ], + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidVodUrl.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], + 'errorCodes' => [], + 'title' => '获取直播用户标签', + 'summary' => '调用DescribeLiveUserTags查询用户标签。', + 'description' => '### QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveUserTags'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidShowList.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveUserTags', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"987DA143-A39C-5B5D-AF5B-3B07944A0036\\",\\n \\"ShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"failedList\\": \\"failedList[Show1, Show2...]\\",\\n \\"successfulShowIds\\": \\"f1933f16-5467-4308-b3a9-e8d451a90999,547436b8-c839-4469-a2c0-704c1ce5ce00\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 987DA143-A39C-5B5D-AF5B-3B07944A0036\\n \\n \\n test\\n vod\\n \\n ResourceUrl is invalid, probe failed\\n \\n \\n \\n http://error.test.case\\n vod\\n \\n ResourceUrl is invalid, probe failed\\n \\n f1933f16-5467-4308-b3a9-e8d451a90999, 547436b8-c839-4469-a2c0-704c1ce5ce00\\n","errorExample":""}]', - 'title' => '添加一个节目到节目单', - 'description' => '请先创建新播单型导播台,添加新播单型导播台视频资源后再调用本接口添加导播台节目到节目单中。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" - ."\n" - .'每个节目单最多可添加1000个节目。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'- 使用视频点播(VOD)资源,可优先选择托管Bucket资源,自有Bucket资源存在过期风险,如果您选用自有Bucket资源,需注意资源的有效期时间。'."\n" - ."\n" - .'- 导播台素材资源输入请优先选择视频直播和视频点播的资源,若从第三方URL输入资源存在播放失败可能性,需确定资源的质量和有效性。'."\n" - ."\n\n" - .'>'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 代码示例'."\n" - ."\n" - .'```'."\n" - .'public static DefaultAcsClient initClient(String accessKeyId, String accessKeySecret) throws ClientException {'."\n" - .' String regionId = "cn-shanghai"; '."\n" - .' DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);'."\n" - .' DefaultAcsClient client = new DefaultAcsClient(profile);'."\n" - .' return client;'."\n" - .' }'."\n" - ."\n" - .'private static CommonResponse addShowIntoShowList(DefaultAcsClient client, String showName, String resourceId, String resourceUrl,'."\n" - .' String resourceType, Integer spot, Integer repeatTimes,'."\n" - .' String casterId, Long duration) throws ClientException {'."\n" - .' CommonRequest addShowIntoShowListRequest = new CommonRequest();'."\n" - .' addShowIntoShowListRequest.setSysDomain("live.aliyuncs.com");'."\n" - .' addShowIntoShowListRequest.setSysVersion("2016-11-01");'."\n" - .' addShowIntoShowListRequest.setSysAction("AddShowIntoShowList");'."\n" - ."\n\n" - .' '."\n" - .' if (casterId == null || resourceType == null) {'."\n" - .' return null;'."\n" - .' }'."\n" - .' if (resourceId == null && resourceUrl == null) {'."\n" - .' return null;'."\n" - .' }'."\n" - .' addShowIntoShowListRequest.putQueryParameter("CasterId", casterId);'."\n" - .' addShowIntoShowListRequest.putQueryParameter("ResourceType", resourceType);'."\n" - .' if (showName != null) {'."\n" - .' addShowIntoShowListRequest.putQueryParameter("ShowName", showName);'."\n" - .' }'."\n" - .' if (resourceUrl != null) {'."\n" - .' addShowIntoShowListRequest.putQueryParameter("ResourceUrl", resourceUrl);'."\n" - .' }'."\n" - .' if (resourceId != null) {'."\n" - .' addShowIntoShowListRequest.putQueryParameter("ResourceId", resourceId);'."\n" - .' }'."\n" - .' if (spot != null) {'."\n" - .' addShowIntoShowListRequest.putQueryParameter("Spot", spot.toString());'."\n" - .' }'."\n" - .' if (repeatTimes != null) {'."\n" - .' addShowIntoShowListRequest.putQueryParameter("RepeatTimes", repeatTimes.toString());'."\n" - .' }'."\n" - .' if (duration != null) {'."\n" - .' addShowIntoShowListRequest.putQueryParameter("Duration", duration.toString());'."\n" - .' }'."\n" - .' CommonResponse addShowIntoShowListResponse = client.getCommonResponse(addShowIntoShowListRequest);'."\n" - .' return addShowIntoShowListResponse;'."\n" - .' }'."\n" - ."\n\n" - .' public void addshows() throws ClientException {'."\n" - .' DefaultAcsClient client = initClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET);'."\n" - .' String[] resourceIds = new String[]{"698d2b23581f476ea71107703e647d1e", "9c97e83e211a435b9f797e4e20eeea27", "76c6addaa41c438985666a8a964fa5e5"};'."\n" - .' for (int i = 0; i < resourceIds.length; i++) {'."\n" - .' String showName = "ShowName#" + i;'."\n" - .' Integer repeatTimes = i;'."\n" - .' addShowIntoShowList(client, showName, resourceIds[i], null, "vod", null, repeatTimes, testCasterId, null);'."\n" - .' }'."\n" - .' }'."\n" - .'```', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6B0256B6-2442-5BEF-B8D6-A0C28A801DFC\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": [\\n \\"value1\\"\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 6B0256B6-2442-5BEF-B8D6-A0C28A801DFC\\n \\n key1\\n value1\\n \\n","errorExample":""}]', ], - 'RemoveShowFromShowList' => [ - 'summary' => '删除节目单中的节目。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeLiveVerifyContent' => [ + 'summary' => '用于获取指定域名的归属校验内容。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'showIdList', + 'name' => 'DomainName', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['description' => '只支持单个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '需要删除的节目ID组。', - 'type' => 'array', - 'items' => [ - 'description' => '需要删除的节目ID列表。', - 'type' => 'string', - 'required' => false, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + 'type' => 'object', + 'properties' => [ + 'Content' => ['description' => '校验内容。', 'type' => 'string', 'example' => 'verify_dffeb6610035dcb77b413******'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], ], - 'required' => false, - 'maxItems' => 80, + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'title' => '查询校验归属权内容', + 'description' => '- 该API支持单个域名的验证内容查询。'."\n" + .'- 单用户调用频率限制为30次/秒。'."\n" + .'- 调用此API需要提供待验证的域名作为参数。'."\n" + .'- 成功调用后返回校验内容及请求ID,可用于后续操作或记录。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveVerifyContent'], + ], + ], + 'ramActions' => [ [ - 'name' => 'CasterId', - 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveVerifyContent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": \\"verify_dffeb6610035dcb77b413******\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","type":"json"}]', + ], + 'DescribeMeterLiveBypassDuration' => [ + 'summary' => 'DescribeMeterLiveBypassDuration', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'none'], + 'parameters' => [ [ - 'name' => 'ShowId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '节目ID。'."\n" - .'>通过查看[AddShowIntoShowList](~~2848051~~)接口的返回参数获取ShowId值。', - 'type' => 'string', - 'required' => false, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2022-10-10T20:00:00Z'], ], [ - 'name' => 'isBatchMode', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '是否批量删除节目。取值:'."\n" - ."\n" - .'- true:批量删除。'."\n" - ."\n" - .'- false:单个删除。'."\n" - ."\n" - .'>该参数不填,取值为空时,也表示单个删除。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '结束时间需大于起始时间,查询粒度≥5分钟且≤31天;日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2022-10-10T21:00:00Z'], + ], + [ + 'name' => 'AppId', + 'in' => 'query', + 'schema' => ['description' => '应用ID。您可在实时音视频[应用管理](~~2355593~~)页面查看。', 'type' => 'string', 'required' => true, 'example' => '4346289a-a790-4869-9e23-22766d5e****'], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '查询数据的时间粒度。单位:秒。取值:'."\n" + ."\n" + .'- 300'."\n" + .'- 3600'."\n" + .'- 86400'."\n" + ."\n" + .'不传或传值不支持时,使用默认值3600秒。', 'type' => 'string', 'required' => false, 'example' => '86400'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'ShowId' => [ - 'description' => '节目ID。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'failedList' => [ - 'description' => '删除失败的节目ID列表以及失败信息。', - 'type' => 'string', - 'example' => 'failedList[Show1, Show2...]', - ], - 'successfulShowIds' => [ - 'description' => '成功删除的节目ID。', - 'type' => 'string', - 'example' => 'f1933f16-5467-4308-b3a9-e8d451a90999', + 'AudioSummaryDuration' => ['description' => '纯音频汇总时长,基础规格,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'Data' => [ + 'description' => '用量统计信息。', + 'type' => 'array', + 'items' => [ + 'description' => '用量统计信息。', + 'type' => 'object', + 'properties' => [ + 'AudioDuration' => ['description' => '纯音频时长,基础规格,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'Single_Audio' => ['description' => '单流转推-语音时长,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'Single_Video' => ['description' => '单流转推-视频时长,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '30'], + 'Timestamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2022-10-10T20:00:00Z'], + 'TotalDuration' => ['description' => '全部时长,单位:分钟 。', 'type' => 'integer', 'format' => 'int64', 'example' => '150'], + 'V480Duration' => ['description' => '标清时长,视频分辨率为640×480及以下,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '30'], + 'V720Duration' => ['description' => '高清时长,视频分辨率为1280×720及以下,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '40'], + 'V1080Duration' => ['description' => '全高清时长,视频分辨率为1920×1080及以下,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + ], + ], ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '该条任务请求ID。', 'type' => 'string', 'example' => '4B460F8B-993C-4F48-B98A-910811DEBFEB'], + 'SingleAudioSummaryDuration' => ['description' => '单流转推-语音汇总时长,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'SingleVideoSummaryDuration' => ['description' => '单流转推-视频汇总时长,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '30'], + 'TotalSummaryDuration' => ['description' => '汇总时长,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '150'], + 'V480SummaryDuration' => ['description' => '标清汇总时长,视频分辨率为640×480及以下,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '30'], + 'V720SummaryDuration' => ['description' => '高清汇总时长,视频分辨率为1280×720及以下,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '40'], + 'V1080SummaryDuration' => ['description' => '全高清汇总时长,视频分辨率为1920×1080及以下,单位:分钟。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'Meter.ParamError', 'errorMessage' => 'Param Error:%s,Please Check Again.', 'description' => '报错信息'], ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidShowList.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidShow.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 403 => [ + ['errorCode' => 'Meter.AuthError', 'errorMessage' => 'Authentication Failed,Please Try Again.', 'description' => '鉴权失败'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'Meter.ServerInternalError', 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'description' => '服务内部异常'], + ['errorCode' => 'Meter.DataSourceQueryError', 'errorMessage' => 'Data Source Error:%s,Please Try Again.', 'description' => '数据查询错误'], + ], + 502 => [ + ['errorCode' => 'Meter.ReadyTsError', 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', 'description' => '查询的数据还未就绪'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"failedList\\": \\"failedList[Show1, Show2...]\\",\\n \\"successfulShowIds\\": \\"f1933f16-5467-4308-b3a9-e8d451a90999\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 001A01C4-3023-57C1-9A82-1BF3DC690C0A\\n \\n 347436b8-c839-4469-a2c0-704c1ce5ce00\\n the showId does not exist in our showOrderList\\n \\n f1933f16-5467-4308-b3a9-e8d451a90999\\n 547436b8-c839-4469-a2c0-704c1ce5ce00\\n","errorExample":""}]', - 'title' => '删除节目单中的节目', - 'description' => '先通过[AddShowIntoShowList](~~2848051~~)接口添加节目,再调用本接口删除节目单中的节目。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 代码示例'."\n" - .'```'."\n" - .' public static DefaultAcsClient initClient(String accessKeyId, String accessKeySecret) throws ClientException {'."\n" - .' String regionId = "cn-shanghai"; '."\n" - .' DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);'."\n" - .' DefaultAcsClient client = new DefaultAcsClient(profile);'."\n" - .' return client;'."\n" - .' }'."\n" - ."\n" - .'private static void removeShowFromShowList(DefaultAcsClient client, String casterId, String showId) throws ClientException {'."\n" - ."\n" - .' CommonRequest removeShowFromShowListFromShowList = new CommonRequest();'."\n" - .' removeShowFromShowListFromShowList.setSysDomain("live.aliyuncs.com");'."\n" - .' removeShowFromShowListFromShowList.setSysVersion("2016-11-01");'."\n" - .' removeShowFromShowListFromShowList.setSysAction("RemoveShowFromShowList");'."\n" - ."\n" - .' removeShowFromShowListFromShowList.putQueryParameter("ShowId", showId);'."\n" - .' removeShowFromShowListFromShowList.putQueryParameter("CasterId", casterId);'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"AudioSummaryDuration\\": 20,\\n \\"Data\\": [\\n {\\n \\"AudioDuration\\": 20,\\n \\"Single_Audio\\": 20,\\n \\"Single_Video\\": 30,\\n \\"Timestamp\\": \\"2022-10-10T20:00:00Z\\",\\n \\"TotalDuration\\": 150,\\n \\"V480Duration\\": 30,\\n \\"V720Duration\\": 40,\\n \\"V1080Duration\\": 10\\n }\\n ],\\n \\"RequestId\\": \\"4B460F8B-993C-4F48-B98A-910811DEBFEB\\",\\n \\"SingleAudioSummaryDuration\\": 20,\\n \\"SingleVideoSummaryDuration\\": 30,\\n \\"TotalSummaryDuration\\": 150,\\n \\"V480SummaryDuration\\": 30,\\n \\"V720SummaryDuration\\": 40,\\n \\"V1080SummaryDuration\\": 10\\n}","errorExample":""},{"type":"xml","example":"\\n 93FAB4C8-42AD-5BB9-BE9B-0AA8C6C0CC2F\\n 30\\n 10\\n 40\\n 150\\n 20\\n \\n 20\\n 40\\n 10\\n 30\\n 2022-10-10T20:00:00Z\\n 150\\n 30\\n 20\\n \\n 20\\n 30\\n","errorExample":""}]', + 'title' => '查询混流转码用量数据', + 'description' => '## 使用说明'."\n" + .'- 最大查询跨度:31天。'."\n" + .'- 最小查询粒度:5分钟。'."\n" + .'- 最大查询范围:最近90天的数据。'."\n" ."\n" - .' CommonResponse removeShowFromShowListFromShowListResponse = client.getCommonResponse(removeShowFromShowListFromShowList);'."\n" - .' System.out.println("删除导播台节目,removeShowFromShowListFromShowListResponse:" + JSON.toJSONString(removeShowFromShowListFromShowListResponse));'."\n" - .' }'."\n" - ."\n\n" - .' public void removeShow() throws ClientException {'."\n" - .' String showId = "xxx";'."\n" - .' DefaultAcsClient client = initClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET);'."\n" - .' removeShowFromShowList(client, testCasterId, showId);'."\n" - .' }'."\n" - .'```', - ], - 'ModifyShowList' => [ - 'summary' => '修改播单属性。', - 'methods' => [ - 'post', - 'get', + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMeterLiveBypassDuration'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeMeterLiveBypassDuration', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeMixStreamList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveI16NIW'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'ShowId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '需要被修改顺序的节目ID。'."\n" - .'>通过查看[AddShowIntoShowList](~~2848051~~)或[DescribeShowList](~~2848054~~)接口的返回参数获取ShowId值。', - 'type' => 'string', - 'required' => false, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => 'App名称。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ - 'name' => 'RepeatTimes', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '节目单整体播放的循环次数。'."\n" - ."\n" - .'> - RepeatTimes为重复次数,示例:**0**表示重复**0**次(实际播放**1**次),**1**表示重复**1**次(实际播放**2**次),以此类推。'."\n" - .'> - 另外,取值为**-1**时,表示可无限重复。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', - ], + 'schema' => ['description' => '合流任务的流名。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], ], [ - 'name' => 'Spot', + 'name' => 'MixStreamId', 'in' => 'query', - 'schema' => [ - 'description' => '播放列表的位置。将需要被修改顺序的节目ID放到**Spot**的位置。'."\n" - .'>取值需大于等于0且小于等于当前节目单总数值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '合流任务ID。如果您通过[CreateMixStream接口](~~2848087~~)创建合流任务,请查看CreateMixStream接口调用返回的参数MixStreamId值。', 'type' => 'string', 'required' => false, 'example' => '5b2a046e-74d7-385e-d2d7-8a5b87e4****'], ], [ - 'name' => 'HighPriorityShowId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '最高优先级节目。'."\n" - ."\n" - .'> 此配置只能在节目单未开始启动前设置。', - 'type' => 'string', - 'required' => false, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2020-09-11T12:00:00Z'], ], [ - 'name' => 'HighPriorityShowStartTime', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '最高优先级节目播放时间,格式为:yyyy-MM-dd\'T\'HH:mm:ss。'."\n" - .'> 此配置只能在节目单未开始启动前设置。
配置完成,节目单会在最高优先级播放时间进行切播,开始播放最高优先级节目(从当前正在播放的节目切播到最高级优先节目)。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-11-23T12:30:00', - ], + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2020-09-20T13:00:00Z'], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['description' => '页码。大于**0**且不超过Integer数据类型的最大值,默认值为**1**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页可展示的记录数。默认值为**1000**。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1000'], ], ], 'responses' => [ @@ -40376,1022 +32014,614 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'MixStreamList' => [ + 'description' => '合流任务列表。', + 'type' => 'array', + 'items' => [ + 'description' => '合流任务列表。', + 'type' => 'object', + 'properties' => [ + 'AppName' => ['description' => 'App名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'GmtCreate' => ['description' => '合流任务创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2020-09-17T08:39:14Z'], + 'GmtModified' => ['description' => '合流任务修改时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'example' => '2020-09-17T08:39:15Z'], + 'InputStreamNumber' => ['description' => '输入源个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'LayoutId' => ['description' => '布局ID。', 'type' => 'string', 'example' => 'USERDEFINED'], + 'MixStreamTemplate' => ['description' => '合流输出模板。', 'type' => 'string', 'example' => 'lp_ld'], + 'MixstreamId' => ['description' => '合流任务ID。可作为删除合流任务的请求参数。', 'type' => 'string', 'example' => 'aaf9a50f-c460-3a9b-f180-38dd8f05****'], + 'StreamName' => ['description' => '合流任务的流名。', 'type' => 'string', 'example' => 'liveStream****'], + ], + ], ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BC1E78D3-FA8B-4457-DEE2-6093E1232254'], + 'Total' => ['description' => '任务总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidVodUrl.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'IncorrectCasterStatus', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidShowList.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":" \\r\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n ","errorExample":""}]', - 'title' => '修改播单属性', - 'description' => '此接口支持修改单个节目在播单中的位置、播单的整体播放次数以及最高优先级节目的播放固定时间点。'."\n" + 'title' => '查询合流任务列表', + 'summary' => '查询合流任务列表。', + 'description' => '先通过[CreateMixStream接口](~~2848087~~)创建合流任务,再调用本接口查询合流任务列表。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 代码示例'."\n" - ."\n" - .'```'."\n" - .' public static DefaultAcsClient initClient(String accessKeyId, String accessKeySecret) throws ClientException {'."\n" - .' String regionId = "cn-shanghai"; '."\n" - .' DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);'."\n" - .' DefaultAcsClient client = new DefaultAcsClient(profile);'."\n" - .' return client;'."\n" - .' }'."\n" - ."\n\n" - .'private static CommonResponse ModfiyShowList(DefaultAcsClient client, String casterId, String showId, Integer repeatTimes, Integer spot,'."\n" - .' String highPriorityShowId, String highPriorityShowStartTime) throws ClientException {'."\n" - ."\n" - .' CommonRequest modfiyShowListRequest = new CommonRequest();'."\n" - .' modfiyShowListRequest.setSysDomain("live.aliyuncs.com");'."\n" - .' modfiyShowListRequest.setSysVersion("2016-11-01");'."\n" - .' modfiyShowListRequest.setSysAction("ModifyShowList");'."\n" - .' if (casterId != null) {'."\n" - .' modfiyShowListRequest.putQueryParameter("CasterId", casterId);'."\n" - .' }'."\n" - .' if (showId != null) {'."\n" - .' modfiyShowListRequest.putQueryParameter("ShowId", showId);'."\n" - .' }'."\n" - .' if (repeatTimes != null) {'."\n" - .' modfiyShowListRequest.putQueryParameter("RepeatTimes", repeatTimes.toString());'."\n" - .' }'."\n" - .' if (spot != null) {'."\n" - .' modfiyShowListRequest.putQueryParameter("Spot", spot.toString());'."\n" - .' }'."\n" - .' if (highPriorityShowId != null) {'."\n" - .' modfiyShowListRequest.putQueryParameter("HighPriorityShowId", highPriorityShowId.toString());'."\n" - .' }'."\n" - .' if (highPriorityShowStartTime != null) {'."\n" - .' modfiyShowListRequest.putQueryParameter("HighPriorityShowStartTime", highPriorityShowStartTime.toString());'."\n" - .' }'."\n" - .' CommonResponse modfiyShowListResponse = client.getCommonResponse(modfiyShowListRequest);'."\n" - .' System.out.println("修改showList成功,返回值:" + JSON.toJSONString(modfiyShowListResponse));'."\n" - .' return modfiyShowListResponse;'."\n" - ."\n" - .' }'."\n" - ."\n" - .'public void modifyShowList() throws ClientException {'."\n" - .' DefaultAcsClient client = initClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET);'."\n" - .' String showId= "";'."\n" - .' Integer repeatTimes=10;'."\n" - .' String highPriorityShowId="";'."\n" - .' String highPriorityShowStartTime = "2021-11-23T12:30:00";'."\n" - .' modfiyShowList(client,testCasterId, showId,repeatTimes,0,highPriorityShowId, highPriorityShowStartTime);'."\n" - .' }'."\n" - .'```', - ], - 'DescribeShowList' => [ - 'summary' => '查询节目单。', - 'methods' => [ - 'post', - 'get', + 'responseParamsDescription' => '### MixStreamInfo'."\n" + .'| 名称 | 类型 | 描述 |'."\n" + .'| ------------- |------------ | ----- |'."\n" + .'|MixStreamId |String |合流任务ID。|'."\n" + .'|DomainName |String |主播流域名。|'."\n" + .'|AppName |String |App名称。|'."\n" + .'|StreamName |String |合流任务的流名。|'."\n" + .'|LayoutId |String |布局ID。|'."\n" + .'|InputStreamNumber |Integer |输入源个数。|'."\n" + .'|MixStreamTemplate |String |合流任务模板。|'."\n" + .'|GmtCreate |String |创建时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。|'."\n" + .'|GmtModified |String |修改时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。|', + 'extraInfo' => '### SDK示例'."\n" + .'详细示例,请参见[合流代码示例](https://help.aliyun.com/document_detail/199362.html)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMixStreamList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeMixStreamList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MixStreamList\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"GmtCreate\\": \\"2020-09-17T08:39:14Z\\",\\n \\"GmtModified\\": \\"2020-09-17T08:39:15Z\\",\\n \\"InputStreamNumber\\": 2,\\n \\"LayoutId\\": \\"USERDEFINED\\",\\n \\"MixStreamTemplate\\": \\"lp_ld\\",\\n \\"MixstreamId\\": \\"aaf9a50f-c460-3a9b-f180-38dd8f05****\\",\\n \\"StreamName\\": \\"liveStream****\\"\\n }\\n ],\\n \\"RequestId\\": \\"BC1E78D3-FA8B-4457-DEE2-6093E1232254\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n \\n liveApp****\\n example.com\\n 2020-09-17T08:39:14Z\\n 2020-09-17T08:39:15Z\\n 2\\n USERDEFINED\\n lp_ld\\n aaf9a50f-c460-3a9b-f180-38dd8f05****\\n liveStream****\\n \\n BC1E78D3-FA8B-4457-DEE2-6093E1232254\\n 1\\n","errorExample":""}]', + ], + 'DescribeRTSNativeSDKFirstFrameCost' => [ + 'summary' => '获取某一段时间内,首帧延时组成。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '115259', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '开始时间,必填参数。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T20:00:00Z'], ], [ - 'name' => 'CasterId', + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间,必填参数。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T21:00:00Z'], + ], + [ + 'name' => 'DataInterval', + 'in' => 'query', + 'schema' => ['description' => '时间粒度,支持300, 3600, 14400, 28800和86400秒。不传和传的值不支持时,使用默认值300秒。', 'type' => 'string', 'required' => false, 'example' => '300'], + ], + [ + 'name' => 'DomainNameList', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', + 'description' => '默认查询全部(2.1.0版本以上),也可指定具体的域名,多个域名用半角逗号(,)分隔,一次最多支持500个域名查询。', + 'type' => 'array', + 'items' => ['description' => '域名。', 'type' => 'string', 'required' => false, 'example' => 'a.example.com'], + 'required' => false, ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '查询节目单。', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'ShowList' => [ - 'description' => '**ShowList**为播放列表的详细信息。'."\n" - .'Show为节目单中的节目详细信息,具体内容,请参见下表**Show**。', - 'type' => 'string', - 'example' => 'ShowList[Show1, Show2, Show3...]', - ], - 'ShowListInfo' => [ - 'description' => '查询节目单。', - 'type' => 'object', - 'properties' => [ - 'CurrentShowId' => [ - 'description' => '当前正在播放的节目ID。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'Background' => [ - 'description' => '播单背景。', - 'type' => 'string', - 'example' => '{\\"MaterialId\\":\\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\"resourceType\\":\\"VOD\\"}', - ], - 'HighPriorityShowId' => [ - 'description' => '最高优先级节目。'."\n" - ."\n" - .'> 此配置只能在节目单未开始启动前设置。'."\n", - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'HighPriorityShowStartTime' => [ - 'description' => '最高优先级节目播放时间,格式为:yyyy-MM-dd\'T\'HH:mm:ss。'."\n" - ."\n" - .'> 此配置只能在节目单未开始启动前设置。配置完成,节目单会在最高优先级播放时间进行切播,开始播放最高优先级节目(从当前正在播放的节目切播到最高级优先节目)。'."\n" - ."\n\n", - 'type' => 'string', - 'example' => '2021-11-23T12:30:00', - ], - 'ShowList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Show' => [ - 'description' => '播放列表的详细信息。', - 'type' => 'array', - 'items' => [ - 'description' => '播放列表的详细信息。', - 'type' => 'object', - 'properties' => [ - 'Duration' => [ - 'description' => '单个节目播放时间长度。单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'RepeatTimes' => [ - 'description' => '单个节目播放的循环次数。'."\n" - ."\n" - .'RepeatTimes为重复次数,示例:0表示重复0次(实际播放1次),1表示重复1次(实际播放2次),以此类推。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'ResourceInfo' => [ - 'description' => '资源信息。', - 'type' => 'object', - 'properties' => [ - 'LiveInputType' => [ - 'description' => '自定义的类型标记。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ResourceId' => [ - 'description' => '点播文件ID。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'ResourceType' => [ - 'description' => '资源素材类型。', - 'type' => 'string', - 'example' => 'vod', - ], - 'ResourceUrl' => [ - 'description' => '资源URL。', - 'type' => 'string', - 'example' => 'http://**/atestObject**.m3u8', - ], - ], - ], - 'ShowId' => [ - 'description' => '节目ID。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'ShowName' => [ - 'description' => '播放节目名称。', - 'type' => 'string', - 'example' => 'liveShow****', - ], - ], - ], - ], - ], - ], - 'ShowListRepeatTimes' => [ - 'description' => '播单默认循环次数。始终为0。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'TotalShowListRepeatTimes' => [ - 'description' => '整个节目单播放的循环次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', + 'DataInterval' => ['description' => '时间粒度', 'type' => 'string', 'example' => '300'], + 'EndTime' => ['description' => '结束时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T21:00:00Z'], + 'FirstFrameCostData' => [ + 'description' => '每个时间间隔的首帧组成平均延时,单位:毫秒', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Connected' => ['description' => '初始化成功至建联成功耗时', 'type' => 'string', 'example' => '100'], + 'FinishGetStreamInfo' => ['description' => '建联成功至订阅成功耗时', 'type' => 'string', 'example' => '89'], + 'FirstFrameComplete' => ['description' => '首包成功至首帧成功耗时', 'type' => 'string', 'example' => '32'], + 'FirstPacket' => ['description' => '订阅成功至首包成功耗时', 'type' => 'string', 'example' => '132'], + 'Initialized' => ['description' => '初始化耗时', 'type' => 'string', 'example' => '1100'], + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z'], ], + 'description' => '', ], ], + 'RequestId' => ['title' => 'Id', 'description' => 'Id', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7'], + 'StartTime' => ['description' => '起始时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'Meter.ParamError', 'errorMessage' => 'Param Error:%s,Please Check Again.', 'description' => '报错信息'], ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidShowList.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidShow.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 403 => [ + ['errorCode' => 'Meter.AuthError', 'errorMessage' => 'Authentication Failed,Please Try Again.', 'description' => '鉴权失败'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'Meter.ServerInternalError', 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'description' => '服务内部异常'], + ['errorCode' => 'Meter.DataSourceQueryError', 'errorMessage' => 'Data Source Error:%s,Please Try Again.', 'description' => '数据查询错误'], + ], + 502 => [ + ['errorCode' => 'Meter.ReadyTsError', 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', 'description' => '查询的数据还未就绪'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ShowList\\": \\"ShowList[Show1, Show2, Show3...]\\",\\n \\"ShowListInfo\\": {\\n \\"CurrentShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"Background\\": \\"{\\\\\\\\\\\\\\"MaterialId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"resourceType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"VOD\\\\\\\\\\\\\\"}\\",\\n \\"HighPriorityShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"HighPriorityShowStartTime\\": \\"2021-11-23T12:30:00\\",\\n \\"ShowList\\": {\\n \\"Show\\": [\\n {\\n \\"Duration\\": 20,\\n \\"RepeatTimes\\": 5,\\n \\"ResourceInfo\\": {\\n \\"LiveInputType\\": 1,\\n \\"ResourceId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"ResourceType\\": \\"vod\\",\\n \\"ResourceUrl\\": \\"http://**/atestObject**.m3u8\\"\\n },\\n \\"ShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"ShowName\\": \\"liveShow****\\"\\n }\\n ]\\n },\\n \\"ShowListRepeatTimes\\": 0,\\n \\"TotalShowListRepeatTimes\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n ShowList[Show1, Show2, Show3...]\\n \\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n {\\\\\\"MaterialId\\\\\\":\\\\\\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\\\\\",\\\\\\"resourceType\\\\\\":\\\\\\"VOD\\\\\\"}\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n 2021-11-23T12:30:00\\n \\n 20\\n 5\\n \\n 1\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n vod\\n http://**/atestObject**.m3u8\\n \\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n liveShow****\\n \\n 0\\n 1\\n \\n","errorExample":""}]', - 'title' => '节目单查询', - 'description' => '请先添加节目后再调用本接口查询节目单。使用API添加节目,请参见[添加一个节目到节目单](~~2848051~~)。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - ], - 'PlayChoosenShow' => [ - 'summary' => '手动切换节目。', - 'methods' => [ - 'post', - 'get', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"EndTime\\": \\"2021-12-10T21:00:00Z\\",\\n \\"FirstFrameCostData\\": [\\n {\\n \\"Connected\\": \\"100\\",\\n \\"FinishGetStreamInfo\\": \\"89\\",\\n \\"FirstFrameComplete\\": \\"32\\",\\n \\"FirstPacket\\": \\"132\\",\\n \\"Initialized\\": \\"1100\\",\\n \\"TimeStamp\\": \\"2021-12-10T20:00:00Z\\"\\n }\\n ],\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"StartTime\\": \\"2021-12-10T20:00:00Z\\"\\n}","type":"json"}]', + 'title' => '查询首帧延时组成', + 'description' => '本接口用于查询时间范围内首帧延时组成. QPS限制 本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRTSNativeSDKFirstFrameCost'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeRTSNativeSDKFirstFrameCost', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeRTSNativeSDKFirstFrameDelay' => [ + 'summary' => '获取某一段时间内,首帧延时(平均值)', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '开始时间,必填参数。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T20:00:00Z'], ], [ - 'name' => 'CasterId', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '结束时间,必填参数。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T21:00:00Z'], ], [ - 'name' => 'ShowId', + 'name' => 'DataInterval', + 'in' => 'query', + 'schema' => ['description' => '时间粒度,支持300, 3600, 14400, 28800和86400秒。不传和传的值不支持时,使用默认值300秒。', 'type' => 'string', 'required' => false, 'example' => '300'], + ], + [ + 'name' => 'DomainNameList', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '需要播放切换的节目ID。'."\n" - .'>通过查看[AddShowIntoShowList](~~2848051~~)或[DescribeShowList](~~2848054~~)接口的返回参数获取ShowId值。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + 'description' => '默认查询全部(2.1.0版本以上),也可指定具体的域名,多个域名用半角逗号(,)分隔,一次最多支持500个域名查询。', + 'type' => 'array', + 'items' => ['description' => '域名。', 'type' => 'string', 'required' => false, 'example' => 'a.example.com'], + 'required' => false, ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'ShowId' => [ - 'description' => '节目ID。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', + 'DataInterval' => ['description' => '时间粒度', 'type' => 'string', 'example' => '300'], + 'EndTime' => ['description' => '结束时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T21:00:00Z'], + 'FrameDelayData' => [ + 'description' => '每个时间间隔的首帧平均延时,单位:毫秒', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'FrameDelay' => ['description' => '该时间段的平均首帧延时', 'type' => 'string', 'example' => '400'], + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z'], + ], + 'description' => '', + ], ], + 'RequestId' => ['title' => 'Id', 'description' => 'Id', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'StartTime' => ['description' => '起始时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectCasterStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'Meter.ParamError', 'errorMessage' => 'Param Error:%s,Please Check Again.', 'description' => '报错信息'], ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidShowList.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidShow.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 403 => [ + ['errorCode' => 'Meter.AuthError', 'errorMessage' => 'Authentication Failed,Please Try Again.', 'description' => '鉴权失败'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'Meter.ServerInternalError', 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'description' => '服务内部异常'], + ['errorCode' => 'Meter.DataSourceQueryError', 'errorMessage' => 'Data Source Error:%s,Please Try Again.', 'description' => '数据查询错误'], + ], + 502 => [ + ['errorCode' => 'Meter.ReadyTsError', 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', 'description' => '查询的数据还未就绪'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\"\\n}","errorExample":""},{"type":"xml","example":" \\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\na2b8e671-2fe5-4642-a2ec-bf93880e****\\n ","errorExample":""}]', - 'title' => '手动切换节目', - 'description' => '添加节目完成开启直播后,可调用本接口切换节目。使用API添加节目,请参见[添加一个节目到节目单](~~2848051~~)。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - ], - 'InitializeAutoShowListTask' => [ - 'summary' => '创建一个定时任务。', - 'methods' => [ - 'post', - 'get', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"EndTime\\": \\"2021-12-10T21:00:00Z\\",\\n \\"FrameDelayData\\": [\\n {\\n \\"FrameDelay\\": \\"400\\",\\n \\"TimeStamp\\": \\"2021-12-10T20:00:00Z\\"\\n }\\n ],\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"StartTime\\": \\"2021-12-10T20:00:00Z\\"\\n}","type":"json"}]', + 'title' => '查询首帧延时', + 'description' => '本接口用于查询时间范围内获首帧延时.'."\n" + .'QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '90', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRTSNativeSDKFirstFrameDelay'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeRTSNativeSDKFirstFrameDelay', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeRTSNativeSDKPlayFailStatus' => [ + 'summary' => '获取某一段时间内,查询播放失败的原因(状态码形式)。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'ResourceIds', - 'in' => 'query', - 'schema' => [ - 'description' => '播单中的点播媒资文件ID列表(目前仅支持点播平台的mp4格式视频文件)。'."\n" - .'最多支持三个节目,每个节目会按照列表顺序进行播放直到EndTime会自动结束。'."\n" - .'>- 您可以通过控制台或API接口返回参数获取视频文件ID。详情请参见[媒资管理](~~86057~~)或[获取音视频上传地址和凭证](~~55407~~)。- 在EndTime前节目如已经播完,默认会持续播放最后一个节目的最后一帧,直到播放结束。', - 'type' => 'string', - 'required' => false, - 'example' => '["89e02xxxxfb349axxxxa0c350d**** ","6ae0xxxxxb349axxxxa0c350a****"]', - ], - ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '开始时间戳,单位:毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1645688994000', - ], + 'schema' => ['description' => '开始时间,必填参数。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间戳,单位:毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1645688994000', - ], - ], - [ - 'name' => 'CasterConfig', - 'in' => 'query', - 'schema' => [ - 'description' => '导播台配置。包含:'."\n" - ."\n" - .'- (必填)CasterTemplate:导播台输出分辨率。'."\n" - ."\n" - .'- (非必填)LiveTemplate:输出转码任务列表。'."\n" - ."\n" - .'>JSON格式字符串,结构体内部字段请按首字母大写,驼峰格式输入。', - 'type' => 'string', - 'required' => true, - 'example' => '{"CasterTemplate": "lp_ld","LiveTemplates":["lhd", "lsd","lud"]}', - ], + 'schema' => ['description' => '结束时间,必填参数。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T21:00:00Z'], ], [ - 'name' => 'DomainName', + 'name' => 'DataInterval', 'in' => 'query', - 'schema' => [ - 'description' => '输出的播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.aliyundoc.com', - ], + 'schema' => ['description' => '时间粒度,支持300, 3600, 14400, 28800和86400秒。不传和传的值不支持时,使用默认值300秒。', 'type' => 'string', 'required' => false, 'example' => '300'], ], [ - 'name' => 'CallBackUrl', + 'name' => 'DomainNameList', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '用户回调地址。', - 'type' => 'string', + 'description' => '默认查询全部(2.1.0版本以上),也可指定具体的域名,多个域名用半角逗号(,)分隔,一次最多支持500个域名查询。', + 'type' => 'array', + 'items' => ['description' => '域名。', 'type' => 'string', 'required' => false, 'example' => 'a.example.com'], 'required' => false, - 'example' => 'http://***.com/callback', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。'."\n" - .'>可作为查询导播台流地址、启动导播台、添加导播台视频资源、添加导播台布局、查询导播台布局列表、添加导播台组件和添加导播台节目单的请求参数。', - 'type' => 'string', - 'example' => 'b4810848-bcf9-4aef-bd4a-e6bba2d9****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'StreamList' => [ - 'description' => '导播台输出地址列表。'."\n" - ."\n" - .'- videoFormat:播流地址格式。'."\n" - ."\n" - .'- outputStreamUrl:拉流地址。'."\n" - ."\n" - .'- transcodeConfig:拉流地址的转码分辨率说明。', - 'type' => 'string', - 'example' => '[{"videoFormat":"flv","outputStreamUrl":"http://example.aliyundoc.com","transcodeConfig":"original"}]', + 'DataInterval' => ['description' => '时间粒度', 'type' => 'string', 'example' => '300'], + 'EndTime' => ['description' => '结束时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T21:00:00Z'], + 'PlayFailStatus' => [ + 'description' => '每个时间间隔的错误状态码总数,单位:次数', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z'], + 'V20001' => ['description' => 'DNS解析失败', 'type' => 'string', 'example' => '1'], + 'V20002' => ['description' => '鉴权失败', 'type' => 'string', 'example' => '2'], + 'V20011' => ['description' => '建联信令超时', 'type' => 'string', 'example' => '3'], + 'V20012' => ['description' => '订阅信令返回错误', 'type' => 'string', 'example' => '4'], + 'V20013' => ['description' => '订阅流不存在', 'type' => 'string', 'example' => '5'], + 'V20052' => ['description' => '媒体收包超时', 'type' => 'string', 'example' => '6'], + ], + 'description' => '', + ], ], + 'RequestId' => ['title' => 'Id', 'description' => 'Id', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'StartTime' => ['description' => '起始时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z'."\n"], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter.PurchaseTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.ExpireTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidChargeType.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidChargeType.PostSupport', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterTemplate.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidParameter.ChargeType', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidPeriod.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidClientToken.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectCasterStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.StartTime', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'Meter.ParamError', 'errorMessage' => 'Param Error:%s,Please Check Again.', 'description' => '报错信息'], ], - [ - [ - 'errorCode' => 'CasterNumberExceed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + 403 => [ + ['errorCode' => 'Meter.AuthError', 'errorMessage' => 'Authentication Failed,Please Try Again.', 'description' => '鉴权失败'], ], - 404 => [ - [ - 'errorCode' => 'IncorrectCasterStatus.EnableChannel', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.NormType', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidConfiguration.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 500 => [ + ['errorCode' => 'Meter.ServerInternalError', 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'description' => '服务内部异常'], + ['errorCode' => 'Meter.DataSourceQueryError', 'errorMessage' => 'Data Source Error:%s,Please Try Again.', 'description' => '数据查询错误'], ], - 408 => [ - [ - 'errorCode' => 'CreateCaster.Timeout', - 'errorMessage' => '%s, please try again later.', - ], + 502 => [ + ['errorCode' => 'Meter.ReadyTsError', 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', 'description' => '查询的数据还未就绪'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"EndTime\\": \\"2021-12-10T21:00:00Z\\",\\n \\"PlayFailStatus\\": [\\n {\\n \\"TimeStamp\\": \\"2021-12-10T20:00:00Z\\",\\n \\"V20001\\": \\"1\\",\\n \\"V20002\\": \\"2\\",\\n \\"V20011\\": \\"3\\",\\n \\"V20012\\": \\"4\\",\\n \\"V20013\\": \\"5\\",\\n \\"V20052\\": \\"6\\"\\n }\\n ],\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"StartTime\\": \\"2021-12-10T20:00:00Z\\\\n\\"\\n}","type":"json"}]', + 'title' => '查询播放失败的原因', + 'description' => '本接口用于查询时间范围内播放失败的原因(状态码形式). QPS限制 本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制。', + 'changeSet' => [ + ['createdAt' => '2022-10-27T02:34:18.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRTSNativeSDKPlayFailStatus'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeRTSNativeSDKPlayFailStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"b4810848-bcf9-4aef-bd4a-e6bba2d9****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"StreamList\\": \\"[{\\\\\\"videoFormat\\\\\\":\\\\\\"flv\\\\\\",\\\\\\"outputStreamUrl\\\\\\":\\\\\\"http://example.aliyundoc.com\\\\\\",\\\\\\"transcodeConfig\\\\\\":\\\\\\"original\\\\\\"}]\\"\\n}","errorExample":""},{"type":"xml","example":"\\n9F6448C9-6F92-1BAC-AFDD-C308782A6573\\n\\n flv\\n http://example.aliyundoc.com/caster/2967b3b2b52242019c277de2a11a****.flv\\n original\\n\\n6277b6a3-1a40-4063-85f7-145666e3****\\n","errorExample":""}]', - 'title' => '创建一个定时任务', - 'description' => '本接口支持配置定时启停一个播单定时任务,调用时请保证参数设置符合要求。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', ], - 'DescribeAutoShowListTasks' => [ - 'summary' => '查询自动启停的定时任务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeRTSNativeSDKPlayTime' => [ + 'summary' => '获取某一段时间内,播放时长。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '开始时间,必填参数。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T20:00:00Z'], ], [ - 'name' => 'CasterId', + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间,必填参数。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T21:00:00Z'], + ], + [ + 'name' => 'DataInterval', + 'in' => 'query', + 'schema' => ['description' => '时间粒度,支持300, 3600, 14400, 28800和86400秒。不传和传的值不支持时,使用默认值300秒。', 'type' => 'string', 'required' => false, 'example' => '300'], + ], + [ + 'name' => 'DomainNameList', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '需要查询定时任务的导播台ID。'."\n" - .'>如果您通过[InitializeAutoShowListTask](~~2848056~~)接口创建定时任务,请查看InitializeAutoShowListTask接口返回参数CasterId值。若不填,默认查询OwnerId下的全量定时任务。', - 'type' => 'string', + 'description' => '默认查询全部(2.1.0及版本以上),也可指定具体的域名,多个域名用半角逗号(,)分隔,一次最多支持500个域名查询。', + 'type' => 'array', + 'items' => ['description' => '域名。', 'type' => 'string', 'required' => false, 'example' => 'a.example.com'], 'required' => false, - 'example' => '53200b81-b761-4c10-842a-a0726d97****', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'AutoShowListTasks' => [ - 'description' => '定时任务列表。包含:'."\n" - ."\n" - .'- Status:任务状态。0为暂停,1为启动。'."\n" - ."\n" - .'- LiveTemplate:转码配置列表。'."\n" - ."\n" - .'- TranscodeConfig:拉流地址的转码分辨率说明。'."\n" - ."\n" - .'- CasterId :导播台ID。', - 'type' => 'string', - 'example' => '{"Status":0,"TranscodeConfig":{"CasterTemplate":"lp_hd", "LiveTemplate":["lhd","lsd"]}, "CasterId":"cce04ef3-2226-4865-8704-f84b8375****"}', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'DataInterval' => ['description' => '时间粒度', 'type' => 'string', 'example' => '300'], + 'EndTime' => ['description' => '结束时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T21:00:00Z'], + 'PlayTimeData' => [ + 'description' => '每个时间间隔的的平均播放时长、平均卡顿时长,单位:毫秒', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PlayTime' => ['description' => '该时间段的平均播放时长,单位:毫秒。', 'type' => 'string', 'example' => '1000'], + 'StallTime' => ['description' => '该时间段的平均卡顿时长,单位:毫秒。', 'type' => 'string', 'example' => '100'], + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z'], + ], + 'description' => '', + ], ], + 'RequestId' => ['title' => 'Id', 'description' => 'Id', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1'], + 'StartTime' => ['description' => '起始时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidVodUrl.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'Meter.ParamError', 'errorMessage' => 'Param Error:%s,Please Check Again.', 'description' => '报错信息'], ], - 404 => [ - [ - 'errorCode' => 'InvalidShowList.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 403 => [ + ['errorCode' => 'Meter.AuthError', 'errorMessage' => 'Authentication Failed,Please Try Again.', 'description' => '鉴权失败'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'Meter.ServerInternalError', 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'description' => '服务内部异常'], + ['errorCode' => 'Meter.DataSourceQueryError', 'errorMessage' => 'Data Source Error:%s,Please Try Again.', 'description' => '数据查询错误'], + ], + 502 => [ + ['errorCode' => 'Meter.ReadyTsError', 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', 'description' => '查询的数据还未就绪'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"AutoShowListTasks\\": \\"{\\\\\\"Status\\\\\\":0,\\\\\\"TranscodeConfig\\\\\\":{\\\\\\"CasterTemplate\\\\\\":\\\\\\"lp_hd\\\\\\", \\\\\\"LiveTemplate\\\\\\":[\\\\\\"lhd\\\\\\",\\\\\\"lsd\\\\\\"]}, \\\\\\"CasterId\\\\\\":\\\\\\"cce04ef3-2226-4865-8704-f84b8375****\\\\\\"}\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n04F5D5E0-9FAA-13CB-96A9-850FB06E9A82\\n\\n 0\\n 1645594715228\\n [\\"6ae09369cab349a78dab7a0c350dfb9d\\"]\\n 1645594115228\\n \\n lp_hd\\n lhd\\n lsd\\n \\n e18b0c36-c0b5-47c1-81fd-7d783b5c7802\\n\\n","errorExample":""}]', - 'title' => '查询自动启停的定时任务', - 'description' => '本接口支持查询您已创建的自动启停定时任务相关信息,调用时请保证参数设置符合要求。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - ], - 'EditShowAndReplace' => [ - 'summary' => '添加剪辑任务。', - 'methods' => [ - 'post', - 'get', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"EndTime\\": \\"2021-12-10T21:00:00Z\\",\\n \\"PlayTimeData\\": [\\n {\\n \\"PlayTime\\": \\"1000\\",\\n \\"StallTime\\": \\"100\\",\\n \\"TimeStamp\\": \\"2021-12-10T20:00:00Z\\"\\n }\\n ],\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\",\\n \\"StartTime\\": \\"2021-12-10T20:00:00Z\\"\\n}","type":"json"}]', + 'title' => '查询播放时长', + 'description' => '本接口用于查询时间范围内播放时长. QPS限制 本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制。', + 'changeSet' => [ + ['createdAt' => '2024-02-20T03:12:12.000Z', 'description' => '响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRTSNativeSDKPlayTime'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeRTSNativeSDKPlayTime', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeRTSNativeSDKVvData' => [ + 'summary' => '获取某一段时间内播放次数,含总次数和成功次数', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'CasterId', - 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '53200b81-b761-4c10-842a-a0726d97****', - ], - ], - [ - 'name' => 'ShowId', - 'in' => 'query', - 'schema' => [ - 'description' => '需要剪辑的节目ID。'."\n" - .'>通过查看[AddShowIntoShowList](~~2848051~~)接口的返回参数获取ShowId值。', - 'type' => 'string', - 'required' => true, - 'example' => '42200b81-b761-4c10-842a-a0726d97****', - ], - ], - [ - 'name' => 'UserData', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '用户信息。', - 'type' => 'string', - 'required' => false, - 'example' => '900a2b2r8-13c2-****-88f2-75e4a07c1ed9', - ], + 'schema' => ['description' => '开始时间,必填参数。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T20:00:00Z'], ], [ - 'name' => 'StorageInfo', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '存储信息。描述:'."\n" - ."\n" - .'- **StorageLocation**:用户点播存储地址。'."\n" - .'- **FileName**:用户自定义文件名。'."\n" - ."\n" - .'>剪辑存储地址必须是用户同一账户下的点播存储地址,获取点播存储地址请参见[存储管理](~~86097~~)。', - 'type' => 'string', - 'required' => false, - 'example' => '{ "StorageLocation":"***bucket***", "FileName":"EditFile****.mp4" }', - ], + 'schema' => ['description' => '结束时间,必填参数。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2021-12-10T21:00:00Z'], ], [ - 'name' => 'StartTime', + 'name' => 'DataInterval', 'in' => 'query', - 'schema' => [ - 'description' => '剪辑开始时间,单位:秒。'."\n" - ."\n" - .'> - 剪辑时间取值范围为0到节目总时长。- 默认从点播文件开头开始剪辑,取值:0.0。'."\n" - .'> - 如果您想要剪辑一个点播文件,从第2秒到第5秒,那么StartTime取值为2.0,EndTime取值为5.0。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '2.0', - ], + 'schema' => ['description' => '时间粒度,支持300, 3600, 14400, 28800和86400秒。不传和传的值不支持时,使用默认值300秒。', 'type' => 'string', 'required' => false, 'example' => '300'], ], [ - 'name' => 'EndTime', + 'name' => 'DomainNameList', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '剪辑结束时间,单位:秒。'."\n" - ."\n" - .'> - 剪辑时间取值范围为0到节目总时长。'."\n" - .'> - 默认取值为点播文件结束时长,取值不可超出节目的总时长。'."\n" - .'> - 如果您想要剪辑一个点播文件,从第2秒到第5秒,那么StartTime取值为2.0,EndTime取值为5.0。', - 'type' => 'number', - 'format' => 'float', + 'description' => '数组。', + 'type' => 'array', + 'items' => ['description' => '默认查询全部(2.1.0及版本以上),也可指定具体的域名,多个域名用半角逗号(,)分隔,一次最多支持500个域名查询。', 'type' => 'string', 'required' => false, 'example' => 'a.example.com'], 'required' => false, - 'example' => '5.0', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'JobInfo' => [ - 'description' => '任务信息,包含:'."\n" - ."\n" - .'- **vodId**:点播文件ID。'."\n" - ."\n" - .'- **mediaid**:媒体文件ID。'."\n" - ."\n" - .'- **jobId**:任务ID。', - 'type' => 'string', - 'example' => '{ "vodId": "3e34733b40b9a96ccf5c1ff6f69****", "mediaid": "eb1861d2c9a842340e989dd56****", "jobId": "7d2fbc380b0e08e55fe98733764****" }', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'DataInterval' => ['description' => '时间粒度', 'type' => 'string', 'example' => '300'], + 'EndTime' => ['description' => '结束时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T21:00:00Z'], + 'RequestId' => ['title' => 'Id', 'description' => 'Id', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'StartTime' => ['description' => '起始时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z'], + 'VvData' => [ + 'description' => '每个时间间隔的总播放次数和总成功播放次数,单位:次数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TimeStamp' => ['description' => '时间片起始时刻。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-10T20:00:00Z'], + 'VvSuccess' => ['description' => '指定时间内的成功播放的总次数', 'type' => 'string', 'example' => '99'], + 'VvTotal' => ['description' => '指定时间内的总播放次数', 'type' => 'string', 'example' => '100'], + ], + 'description' => '', + ], ], ], ], @@ -41399,159 +32629,137 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidVodUrl.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'Meter.ParamError', 'errorMessage' => 'Param Error:%s,Please Check Again.', 'description' => '报错信息'], ], 403 => [ - [ - 'errorCode' => 'RequestForbiddenForIce', - 'errorMessage' => '%s, please try again later.', - ], - ], - [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidShowList.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'Meter.AuthError', 'errorMessage' => 'Authentication Failed,Please Try Again.', 'description' => '鉴权失败'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'Meter.ServerInternalError', 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'description' => '服务内部异常'], + ['errorCode' => 'Meter.DataSourceQueryError', 'errorMessage' => 'Data Source Error:%s,Please Try Again.', 'description' => '数据查询错误'], + ], + 502 => [ + ['errorCode' => 'Meter.ReadyTsError', 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', 'description' => '查询的数据还未就绪'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobInfo\\": \\"{ \\\\\\"vodId\\\\\\": \\\\\\"3e34733b40b9a96ccf5c1ff6f69****\\\\\\", \\\\\\"mediaid\\\\\\": \\\\\\"eb1861d2c9a842340e989dd56****\\\\\\", \\\\\\"jobId\\\\\\": \\\\\\"7d2fbc380b0e08e55fe98733764****\\\\\\" }\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":" \\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\n 3e34733b40b9a96ccf5c1ff6f69****\\n eb1861d2c9a842340e989dd56****\\n 7d2fbc380b0e08e55fe98733764****\\n\\n","errorExample":""}]', - 'title' => '添加剪辑任务', - 'description' => '本接口支持指定CasterId和ShowId添加剪辑任务。'."\n" - .'添加剪辑任务成功不会自动通知,您可调用[GetEditingJobInfo](~~2848059~~)接口查询任务状态信息。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'GetEditingJobInfo' => [ - 'summary' => '查询剪辑任务信息。', - 'methods' => [ - 'post', - 'get', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"EndTime\\": \\"2021-12-10T21:00:00Z\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"StartTime\\": \\"2021-12-10T20:00:00Z\\",\\n \\"VvData\\": [\\n {\\n \\"TimeStamp\\": \\"2021-12-10T20:00:00Z\\",\\n \\"VvSuccess\\": \\"99\\",\\n \\"VvTotal\\": \\"100\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => '查询播放次数', + 'description' => 'QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRTSNativeSDKVvData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeRTSNativeSDKVvData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'DescribeRtcCloudRecordingFiles' => [ + 'summary' => '查询rtc云端录制文件与任务信息。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '269336', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'CasterId', - 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '53200b81-b761-4c10-842a-a0726d97****', - ], - ], - [ - 'name' => 'ShowId', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的节目ID。'."\n" - .'>通过查看[AddShowIntoShowList](~~370861~~)接口的返回参数获取ShowId值。', - 'type' => 'string', - 'required' => false, - 'example' => '72200b81-b761-4c10-842a-a0726d97****', - ], + 'schema' => ['description' => '任务id。由StartRtcCloudRecording返回,只支持查询创建时间在3天内的任务。', 'type' => 'string', 'required' => true, 'example' => '******73-8501-****-8ac1-72295a******'."\n"], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回内容。', 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。', - 'type' => 'string', - 'example' => '53200b81-b761-4c10-842a-a0726d97****', - ], - 'EditingTasksInfo' => [ - 'description' => '剪辑任务信息。包含:'."\n" - ."\n" - .'- **OutputVodId**:输出的Vod文件ID。'."\n" - ."\n" - .'- **TaskStatus**:剪辑任务状态。(-1:失败;0:任务初始化;1:剪辑中;2:上传中;3:任务成功。)'."\n" - ."\n" - .'- **StorageLocation**:点播存储地址。'."\n" - ."\n" - .'- **FileName**:剪辑文件名。'."\n" - ."\n" - .'- **ShowId**:节目ID。', - 'type' => 'string', - 'example' => '"EditingTasksInfo": { "OutputVodId": "3e34733b40b9a96ccf5c1ff6f69****", "TaskStatus": 1, "StorageInfo": { "StorageLocation": "***bucket***", "FileName": "EditFile****" }, "ShowId": "42200b81-b761-4c10-842a-a0726d97****" },', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求id。', 'type' => 'string', 'example' => '******58-5876-****-83CA-B56278******'."\n"], + 'TaskInfo' => [ + 'description' => '任务信息。', + 'type' => 'object', + 'properties' => [ + 'TaskId' => ['description' => '请求时传入的任务id。', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******'."\n"], + 'Status' => ['description' => '任务状态:'."\n" + .'- RUNNING'."\n" + .'- RECOVERING'."\n" + .'- STOPPING'."\n" + .'- STOPPED', 'type' => 'string', 'example' => 'RUNNING'], + 'RecordFileList' => [ + 'description' => '录制文件列表。', + 'type' => 'object', + 'properties' => [ + 'Mp3FileList' => [ + 'description' => 'mp3格式录制文件名数组。', + 'type' => 'array', + 'items' => ['description' => 'mp3格式录制文件名。', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp3'], + ], + 'Mp4FileList' => [ + 'description' => 'mp4格式录制文件名数组。', + 'type' => 'array', + 'items' => ['description' => 'mp4格式录制文件名。', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp4'], + ], + 'HlsFileList' => [ + 'description' => 'hls格式录制文件名数组。', + 'type' => 'array', + 'items' => ['description' => 'hls格式录制文件名。', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.m3u8'], + ], + 'VodMediaList' => [ + 'description' => 'VOD媒体资源数组。录制到VOD时,订阅的各个流的录制文件集合,其中每一项对应着一个订阅流。', + 'type' => 'array', + 'items' => [ + 'description' => '对应订阅的某条流的媒体资源信息。', + 'type' => 'object', + 'properties' => [ + 'Stream' => ['description' => '表示订阅的流'."\n" + .' - 对于混流录制,值统一为Mix'."\n" + .' - 对于单流录制,值为Single::{UserId}::{Suffix}'."\n" + .' - UserId为这条流对应的UserId'."\n" + .' - Suffix与订阅时填写的StreamType和SourceType有关'."\n" + .' - 当StreamType为0时:如果SourceType为0,那么Suffix为AV::C;如果SourceType为1,那么Suffix为AV::S'."\n" + .' - 当StreamType为1时:Suffix只能为A'."\n" + .' - 当StreamType为2时(单流录制暂不支持):如果SourceType为0,那么Suffix为V::C;如果SourceType为1,那么Suffix为V::S', 'type' => 'string', 'example' => 'Single::UserA::AV::C'], + 'MediaIds' => [ + 'description' => '录制过程中生成的媒体资源id数组。', + 'type' => 'array', + 'items' => ['description' => '录制过程中生成的媒体资源id。', 'type' => 'string', 'example' => '****bbd9f59c71ee80065017f0f8****'], + ], + 'MergedIds' => [ + 'description' => '录制结束后生成的自动合并的媒体资源id数组。', + 'type' => 'array', + 'items' => ['description' => '录制结束后生成的自动合并的媒体资源id。', 'type' => 'string', 'example' => '****d2f9f59c71ee8006501790g7****'], + ], + ], + ], + ], + ], + ], + ], ], ], ], @@ -41559,71 +32767,43 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidVodUrl.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'NotFound.Task', 'errorMessage' => '%s, please check the TaskId.', 'description' => '参数TaskId不存在。'], + ['errorCode' => 'InvalidParameter.TaskId', 'errorMessage' => '%s, please check the TaskId.', 'description' => '指定的task必须处于运行中或者恢复中状态。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + 403 => [ + ['errorCode' => 'InvalidParameter.UserId', 'errorMessage' => '%s, please check the UserId.', 'description' => 'UserId无效,请检查。'], ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidShowList.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\\\n\\",\\n \\"TaskInfo\\": {\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\\\n\\",\\n \\"Status\\": \\"RUNNING\\",\\n \\"RecordFileList\\": {\\n \\"Mp3FileList\\": [\\n \\"******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp3\\"\\n ],\\n \\"Mp4FileList\\": [\\n \\"******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp4\\"\\n ],\\n \\"HlsFileList\\": [\\n \\"******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.m3u8\\"\\n ],\\n \\"VodMediaList\\": [\\n {\\n \\"Stream\\": \\"Single::UserA::AV::C\\",\\n \\"MediaIds\\": [\\n \\"****bbd9f59c71ee80065017f0f8****\\"\\n ],\\n \\"MergedIds\\": [\\n \\"****d2f9f59c71ee8006501790g7****\\"\\n ]\\n }\\n ]\\n }\\n }\\n}","type":"json"}]', + 'title' => '查询Rtc云端录制文件及任务状态', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRtcCloudRecordingFiles'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeRtcCloudRecordingFiles', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"53200b81-b761-4c10-842a-a0726d97****\\",\\n \\"EditingTasksInfo\\": \\"\\\\\\"EditingTasksInfo\\\\\\": { \\\\\\"OutputVodId\\\\\\": \\\\\\"3e34733b40b9a96ccf5c1ff6f69****\\\\\\", \\\\\\"TaskStatus\\\\\\": 1, \\\\\\"StorageInfo\\\\\\": { \\\\\\"StorageLocation\\\\\\": \\\\\\"***bucket***\\\\\\", \\\\\\"FileName\\\\\\": \\\\\\"EditFile****\\\\\\" }, \\\\\\"ShowId\\\\\\": \\\\\\"42200b81-b761-4c10-842a-a0726d97****\\\\\\" },\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]', - 'title' => '查询剪辑任务', - 'description' => '- 本接口支持查询指定CasterId和ShowId剪辑任务的相关信息,调用时请保证参数设置符合要求。'."\n" - ."\n" - .'- 如果您配置请求参数ShowId,接口返回数据为节目单中指定ShowId对应的节目剪辑任务信息。'."\n" - ."\n" - .'- 如果您未配置请求参数ShowId,接口返回数据为整个节目单的剪辑任务信息。'."\n" - ."\n" - .'### QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', ], - 'SetShowListBackground' => [ - 'summary' => '进行播单背景设置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeRtcCloudTranscode' => [ + 'summary' => '查询云端转码任务。', + 'path' => '', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -41632,324 +32812,300 @@ 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '227260', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '应用 ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。', 'type' => 'string', 'required' => true, 'example' => '********-7074-****-9ef5-85c19a4*****'], ], [ - 'name' => 'CasterId', + 'name' => 'TaskId', 'in' => 'query', - 'allowEmptyValue' => false, + 'schema' => ['description' => '云端转码任务ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。', 'type' => 'string', 'required' => true, 'example' => '******73-8501-****-8ac1-72295a******'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', + 'title' => 'Schema of Response', + 'description' => '返回内容。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], + 'TaskInfo' => [ + 'description' => '云端转码任务详情信息。', + 'type' => 'object', + 'properties' => [ + 'AppId' => ['description' => '应用ID。', 'type' => 'string', 'example' => '********-7074-****-9ef5-85c19a4*****'], + 'ChannelId' => ['description' => '频道ID。', 'type' => 'string', 'example' => 'myChannel'], + 'TaskId' => ['description' => '云端转码任务ID。', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******'], + 'Status' => ['description' => '云端转码任务状态:'."\n" + ."\n" + .'- STARTING'."\n" + .'- RUNNING'."\n" + .'- RECOVERING'."\n" + .'- STOPPED', 'type' => 'string', 'example' => 'RUNNING'], + 'InputParam' => [ + 'description' => '订阅输入相关参数。', + 'type' => 'object', + 'properties' => [ + 'SingleSubUserParam' => [ + 'description' => '单流订阅输入参数。', + 'type' => 'object', + 'properties' => [ + 'UserId' => ['description' => '订阅的用户ID。', 'type' => 'string', 'example' => 'userA'], + 'StreamType' => ['description' => '订阅用户的媒体类型。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'SourceType' => ['description' => '订阅的视频输入流类型。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + ], + ], + ], + ], + 'OutputParams' => [ + 'description' => '转码输出相关参数。', + 'type' => 'array', + 'items' => [ + 'description' => '转码输出参数。', + 'type' => 'object', + 'properties' => [ + 'ChannelId' => ['description' => '转码流转推到的频道ID。', 'type' => 'string', 'example' => 'myChannel'], + 'UserId' => ['description' => '转码流转推到频道的用户ID。', 'type' => 'string', 'example' => 'userA_360p'], + 'UserToken' => ['description' => '转码流转推到频道所需的用户Token。', 'type' => 'string', 'example' => 'eyJhcHBpZCI********'], + 'TranscodeTemplate' => ['description' => '转码模板名。', 'type' => 'string', 'example' => 'lhd'], + ], + ], + ], + 'MaxIdleTime' => ['description' => '空闲超时时间。当任务处于空闲状态的时长超过 MaxIdleTime 时,自动停止任务。单位为秒,范围须在[10,14400]内,即最大 4 小时。(默认为 300 秒)', 'type' => 'integer', 'format' => 'int64', 'example' => '600'], + ], + ], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter%s', 'errorMessage' => '%s.', 'description' => ''], + ['errorCode' => 'MissingParameter%s', 'errorMessage' => '%s.', 'description' => ''], + ['errorCode' => 'TooManyRequests', 'errorMessage' => '%s.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => '%s.', 'description' => ''], + ], [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => '素材类型。取值:'."\n" - ."\n" - .'- LIVE:直播素材。可支持直播素材和第三方URL。'."\n" - ."\n" - .'- VOD:点播素材。可支持点播素材和第三方URL。'."\n" - ."\n" - .'- PIC:图片素材。可支持点播素材和第三方URL。'."\n" - ."\n" - .'> 三选一或者不传。', - 'type' => 'string', - 'required' => false, - 'example' => 'VOD', - 'enum' => [ - 'VOD', - 'PIC', - 'LIVE', + ['errorCode' => 'NotFound%s', 'errorMessage' => '%s.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询云端转码任务', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeRtcCloudTranscode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TaskInfo\\": {\\n \\"AppId\\": \\"********-7074-****-9ef5-85c19a4*****\\",\\n \\"ChannelId\\": \\"myChannel\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\",\\n \\"Status\\": \\"RUNNING\\",\\n \\"InputParam\\": {\\n \\"SingleSubUserParam\\": {\\n \\"UserId\\": \\"userA\\",\\n \\"StreamType\\": 0,\\n \\"SourceType\\": 0\\n }\\n },\\n \\"OutputParams\\": [\\n {\\n \\"ChannelId\\": \\"myChannel\\",\\n \\"UserId\\": \\"userA_360p\\",\\n \\"UserToken\\": \\"eyJhcHBpZCI********\\",\\n \\"TranscodeTemplate\\": \\"lhd\\"\\n }\\n ],\\n \\"MaxIdleTime\\": 600\\n }\\n}","type":"json"}]', + ], + 'DescribeRtcMPUEventSub' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'MaterialId', - 'in' => 'query', - 'schema' => [ - 'description' => '点播素材ID。'."\n" - ."\n" - .'> 与外部ResourceUrl二选一。', - 'type' => 'string', - 'required' => false, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '219226', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], + ], + 'parameters' => [ [ - 'name' => 'ResourceUrl', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '外部素材url。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://****/atestObject****.m3u8', - ], + 'schema' => ['description' => '订阅的应用ID。'."\n" + .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourAppId'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '987DA143-A39C-5B5D-AF5B-3B07944A0036', + 'RequestId' => ['description' => '请求ID', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], + 'SubInfo' => [ + 'description' => '事件回调信息', + 'type' => 'object', + 'properties' => [ + 'SubId' => ['description' => '事件回调ID', 'type' => 'string', 'example' => 'Sub-******9799B2C4500******'], + 'AppId' => ['description' => '订阅的应用ID', 'type' => 'string', 'example' => 'yourAppId'], + 'ChannelIds' => ['description' => '指定接收回调的混流任务的频道ID,用英文逗号“,”隔开。如果为空,表示所有频道都接收回调', 'type' => 'string', 'example' => 'yourCh1,yourCh2'], + 'CreateTime' => ['description' => '事件回调的创建时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)', 'type' => 'string', 'example' => '2024-04-09 18:00:00Z'], + 'CallbackUrl' => ['description' => '回调地址', 'type' => 'string', 'example' => 'http://testcallback***.com/callback'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidParameter.Status', - 'errorMessage' => '%s, please check and try again.', - ], - [ - 'errorCode' => 'InvalidParameter.StartTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.EndTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'LiveServiceNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], + ['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId无效,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => 'The caster does not exist.', - ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => '无权限,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"987DA143-A39C-5B5D-AF5B-3B07944A0036\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 987DA143-A39C-5B5D-AF5B-3B07944A0036\\n","errorExample":""}]', - 'title' => '播单背景设置', - 'description' => '- 请先创建新播单型导播台,再调用本接口添加背景素材。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" - .'- 可以使用本接口创建/更新/删除播单背景, 当参数ResourceType、ResourceUrl、MaterialId 都为空即可删除背景。 '."\n" - ."\n" - .'>'."\n" - ."\n" - .'- 使用视频点播(VOD)资源,可优先选择托管Bucket资源,自有Bucket资源存在过期风险,如果您选用自有Bucket资源,需注意资源的有效期时间。'."\n" - ."\n" - .'- 素材资源输入请优先选择视频直播和视频点播的资源,若从第三方URL输入资源存在播放失败可能性,需确定资源的质量和有效性。'."\n" - ."\n" - .'>'."\n" - ."\n" + 'title' => '查询混流转推事件订阅', + 'summary' => '查询混流转推事件订阅。', + 'description' => '- 本接口用于查询混流转推事件订阅。'."\n" + .'- 调用本接口前,您必须已经调用CreateRtcMPUEventSub创建混流转推事件订阅。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'AddStudioLayout' => [ - 'summary' => '添加虚拟演播厅的布局设置。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-07-04T06:14:36.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRtcMPUEventSub'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeRtcMPUEventSub', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"SubInfo\\": {\\n \\"SubId\\": \\"Sub-******9799B2C4500******\\",\\n \\"AppId\\": \\"yourAppId\\",\\n \\"ChannelIds\\": \\"yourCh1,yourCh2\\",\\n \\"CreateTime\\": \\"2024-04-09 18:00:00Z\\",\\n \\"CallbackUrl\\": \\"http://testcallback***.com/callback\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n \\n Sub-******9799B2C4500******\\n yourAppId\\n yourCh1,yourCh2\\n 2024-04-09 18:00:00Z\\n http://testcallback***.com/callback\\n \\n","errorExample":""}]', + ], + 'DescribeShowList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '115259', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'>需要提前创建好,必须是虚拟演播厅类型的导播台。可通过控制台或调用[CreateCaster](~~69338~~)接口添加导播台,类型需选择虚拟演播厅。'."\n" - .'>'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - ], - [ - 'name' => 'LayoutName', - 'in' => 'query', - 'schema' => [ - 'description' => '演播厅布局名称。', - 'type' => 'string', - 'required' => true, - 'example' => '测试布局', - ], - ], - [ - 'name' => 'LayoutType', - 'in' => 'query', - 'schema' => [ - 'description' => '演播厅布局类型。取值:'."\n" - ."\n" - .'- **common**:通用布局。当LayoutType取值为common时,请求参数CommonConfig为必填。'."\n" - .'- **studio**:演播厅布局。当LayoutType取值为studio时,请求参数BgImageConfig和ScreenInputConfigList为必填,MediaInputConfigList为选填。', - 'type' => 'string', - 'required' => true, - 'example' => 'studio', - ], - ], - [ - 'name' => 'CommonConfig', - 'in' => 'query', - 'schema' => [ - 'description' => '通用布局配置。格式为JSON字符串,请参见**CommonConfig**。'."\n" - ."\n" - .'>当请求参数LayoutType取值为common时,本参数才必填。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"ChannelId":"RV01" }', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], - [ - 'name' => 'BgImageConfig', - 'in' => 'query', - 'schema' => [ - 'description' => '背景资源配置。格式为JSON字符串,请参见**BgImageConfig**。'."\n" - ."\n" - .'>当请求参数LayoutType取值为studio时,本参数才必填。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{ "Id":"k12kj31****", "MaterialId":"f080575eb5f4427684fc0715159a****" }', - ], - ], - [ - 'name' => 'ScreenInputConfigList', - 'in' => 'query', - 'schema' => [ - 'description' => '抠像输入设置。格式为JSON字符串,请参见**ScreenInputConfig**。'."\n" - ."\n" - .'>当请求参数LayoutType取值为studio时,本参数才必填。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '[ { "Index":"1", "ChannelId":"RV01", "Color":"green", "PositionX":"0.1", "PositionY":"0.2", "HeightNormalized":"0.4" } ]', - ], - ], - [ - 'name' => 'MediaInputConfigList', - 'in' => 'query', - 'schema' => [ - 'description' => '多媒体输入资源设置。格式为JSON字符串,请参见**MediaInputConfig**。'."\n" - ."\n" - .'>当请求参数LayoutType取值为studio时,本参数才有效,且为选填。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '[ { "Id":"k12kj31****", "Index":"1", "ChannelId":"RV01", "FillMode":"none", "PositionRefer":"topLeft", "WidthNormalized":"0.4", "HeightNormalized":"0.4", "PositionNormalized":"[0.1, 0.2]" }, { "Id":"k12kj31****", "Index":"2", "ImageMaterialId":"lkajsdfsa8fd89asd8****", "FillMode":"none", "PositionRefer":"topLeft", "WidthNormalized":"0.6", "HeightNormalized":"0.4", "PositionNormalized":"[0.1, 0.2]" } ]', - ], - ], - [ - 'name' => 'LayerOrderConfigList', - 'in' => 'query', - 'schema' => [ - 'description' => '图层顺序设置。格式为JSON字符串,请参见**layerOrderConfig**。'."\n" - .'支持背景素材、多媒体素材排序,暂不支持抠像层。越排在前面,越在底层。', - 'type' => 'string', - 'required' => false, - 'example' => '[ { "Type":"media", "Id":"k12kj31****" }, { "Type":"media", "Id":"k12kj31****" } ]', - ], - ], - ], - 'responses' => [ - 200 => [ + ], + 'responses' => [ + 200 => [ 'schema' => [ + 'description' => '查询节目单。', 'type' => 'object', 'properties' => [ - 'LayoutId' => [ - 'description' => '布局ID。可作为删除虚拟演播厅布局、修改虚拟演播厅布局和查询虚拟演播厅布局的请求参数。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'ShowList' => ['description' => '**ShowList**为播放列表的详细信息。'."\n" + .'Show为节目单中的节目详细信息,具体内容,请参见下表**Show**。', 'type' => 'string', 'example' => 'ShowList[Show1, Show2, Show3...]'], + 'ShowListInfo' => [ + 'description' => '查询节目单。', + 'type' => 'object', + 'properties' => [ + 'CurrentShowId' => ['description' => '当前正在播放的节目ID。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'Background' => ['description' => '播单背景。', 'type' => 'string', 'example' => '{\\"MaterialId\\":\\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\"resourceType\\":\\"VOD\\"}'], + 'HighPriorityShowId' => ['description' => '最高优先级节目。'."\n" + ."\n" + .'> 此配置只能在节目单未开始启动前设置。'."\n", 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'HighPriorityShowStartTime' => ['description' => '最高优先级节目播放时间,格式为:yyyy-MM-dd\'T\'HH:mm:ss。'."\n" + ."\n" + .'> 此配置只能在节目单未开始启动前设置。配置完成,节目单会在最高优先级播放时间进行切播,开始播放最高优先级节目(从当前正在播放的节目切播到最高级优先节目)。'."\n" + ."\n\n", 'type' => 'string', 'example' => '2021-11-23T12:30:00'], + 'ShowList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Show' => [ + 'description' => '播放列表的详细信息。', + 'type' => 'array', + 'items' => [ + 'description' => '播放列表的详细信息。', + 'type' => 'object', + 'properties' => [ + 'Duration' => ['description' => '单个节目播放时间长度。单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'RepeatTimes' => ['description' => '单个节目播放的循环次数。'."\n" + ."\n" + .'RepeatTimes为重复次数,示例:0表示重复0次(实际播放1次),1表示重复1次(实际播放2次),以此类推。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'ResourceInfo' => [ + 'description' => '资源信息。', + 'type' => 'object', + 'properties' => [ + 'LiveInputType' => ['description' => '自定义的类型标记。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ResourceId' => ['description' => '点播文件ID。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'ResourceType' => ['description' => '资源素材类型。', 'type' => 'string', 'example' => 'vod'], + 'ResourceUrl' => ['description' => '资源URL。', 'type' => 'string', 'example' => 'http://**/atestObject**.m3u8'], + ], + ], + 'ShowId' => ['description' => '节目ID。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'ShowName' => ['description' => '播放节目名称。', 'type' => 'string', 'example' => 'liveShow****'], + ], + ], + ], + ], + 'description' => '', + ], + 'ShowListRepeatTimes' => ['description' => '播单默认循环次数。始终为0。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'TotalShowListRepeatTimes' => ['description' => '整个节目单播放的循环次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + ], ], ], ], @@ -41957,365 +33113,106 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidPositionNormalized.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidHeightOrWidthNormalized', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList不存在,请检查后重试。'], + ['errorCode' => 'InvalidShow.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Show不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"LayoutId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 5c6a2a0d-f228-4a64-af62-20e91b9676b3\\n","errorExample":""}]', - 'title' => '添加虚拟演播厅布局', - 'description' => '调用本接口添加虚拟演播厅的布局设置。本接口目前支持的演播厅布局类型为通用布局和演播厅布局。'."\n" - ."\n\n" + 'title' => '节目单查询', + 'summary' => '查询节目单。', + 'description' => '请先添加节目后再调用本接口查询节目单。使用API添加节目,请参见[添加一个节目到节目单](~~2848051~~)。'."\n" + ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '## CommonConfig'."\n" - .'| 名称 | 类型 | 示例 | 描述 |'."\n" - .'| --------------- | ------ | --------------------- | -------------------------- |'."\n" - .'| ChannelId | String | RV01 | 视频资源绑定的通道位置ID。 |'."\n" - ."\n" - .'## BgImageConfig'."\n" - .'> 其中ImageUrl和MaterialId仅能输入一个。'."\n" - ."\n" - .'| 名称 | 类型 | 示例 | 描述 |'."\n" - .'| --------------- | ------ | --------------------- | -------------------------- |'."\n" - .'| Id | String | k12kj31**** | 该背景素材唯一ID。 |'."\n" - .'| ImageUrl | String | http://aliyundoc.com | 素材地址URL。 |'."\n" - .'| MaterialId | String | f080575eb5f4427684fc0715159a**** | 点播素材ID。 |'."\n" - ."\n" - .'## ScreenInputConfig'."\n" - .'| 名称 | 类型 | 示例 | 描述 |'."\n" - .'| ---------------- | ------- | ------------------------------------ | ------------------------------------------------------------ |'."\n" - .'| Index | Integer | 1 | 抠像源编号。前端展示使用,无逻辑作用,要求取正整数(>0)。 |'."\n" - .'| ChannelId | String | RV01 | 视频资源绑定的通道位置ID。 |'."\n" - .'| Color | String | green | 抠像色域。取值:
**blue**:蓝幕背景。
**green**:绿幕背景。
**auto**:自动识别。
**complex**:实景抠像。 |'."\n" - .'| PositionX | Float | 0.1 | 位置参数,坐标x。取值:[0,1]。
素材位置以左上角为基准点。 |'."\n" - .'| PositionY | Float | 0.2 | 位置参数,坐标y。取值:[0,1]。
素材位置以左上角为基准点。 |'."\n" - .'| HeightNormalized | Float | 0.4 | 高度归一化值。即抠出的人像与背景的高度比。取值:[0,1]。 |'."\n" - ."\n" - .'## MediaInputConfig'."\n" - .'- 当多媒体素材是视频源,传入ChannelId。'."\n" - .'- 当多媒体素材是图片,传入ImageMeterialId。'."\n" - .'- ChannelId和ImageMeterialId是互斥的,两者选填一项。'."\n" - ."\n" - .'| 名称 | 类型 | 示例 | 描述 |'."\n" - .'| ------------------ | ------- | ------------------------------------ | ------------------------------------------------------------ |'."\n" - .'| Id | String | k12kj31**** | 该多媒体素材唯一ID。 |'."\n" - .'| Index | Integer | 1 | 多媒体素材编号。前端展示使用,无逻辑作用,要求取正整数(>0)。 |'."\n" - .'| ChannelId | String | RV01 | 视频资源绑定的通道位置ID。 |'."\n" - .'| ImageMaterialId | String | lkajsdfsa8fd89asd8**** | 点播图片素材ID。 |'."\n" - .'| FillMode | String | none | 填充类型。填**none**即可。 |'."\n" - .'| PositionRefer | String | topLeft | 素材的位置参考坐标值。填**topLeft**即可,表示位置设置以左上角为基准点。 |'."\n" - .'| WidthNormalized | Float | 0.4 | 素材的宽度归一化值。即素材与背景的宽度比。取值:[0,1]。 |'."\n" - .'| HeightNormalized | Float | 0.4 | 素材的高度归一化值。即素材与背景的高度比。取值:[0,1]。 |'."\n" - .'| PositionNormalized | Float | [0.1, 0.2] | 素材的填充区位置归一化值[x,y]。x、y的取值范围分别为[0,1]。
例如[0.1,0.2] 代表左上角水平偏移10%,垂直偏移20%。 |'."\n" - ."\n" - .'## LayerOrderConfig'."\n" - .'| 名称 | 类型 | 示例 | 描述 |'."\n" - .'| ---- | ------ | ----------- | ------------------------------------------------------------ |'."\n" - .'| Type | String | media | 资源配置的类型。
background:背景素材。
media:多媒体素材。 |'."\n" - .'| Id | String | k12kj31**** | 该资源的唯一ID。 |', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteStudioLayout' => [ - 'summary' => '删除虚拟演播厅的布局设置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], + 'requestParamsDescription' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-07-15T01:31:08.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-07-11T09:45:40.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-04-11T07:26:51.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-01-30T03:31:37.000Z', 'description' => '响应参数发生变更'], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'flowControl' => [ + 'flowControlList' => [], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'CasterId', - 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', - ], - ], + 'ramActions' => [ [ - 'name' => 'LayoutId', - 'in' => 'query', - 'schema' => [ - 'description' => '布局ID。如果您通过[AddStudioLayout接口](~~2848062~~)添加虚拟演播厅的布局设置,请查看AddStudioLayout接口调用返回的参数LayoutId值。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e9*****', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeShowList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidLayoutId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidLayout.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e9*****\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', - 'title' => '删除虚拟演播厅布局', - 'description' => '调用本接口删除虚拟演播厅的布局设置,一次仅支持删除一个布局。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ShowList\\": \\"ShowList[Show1, Show2, Show3...]\\",\\n \\"ShowListInfo\\": {\\n \\"CurrentShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"Background\\": \\"{\\\\\\\\\\\\\\"MaterialId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"resourceType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"VOD\\\\\\\\\\\\\\"}\\",\\n \\"HighPriorityShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"HighPriorityShowStartTime\\": \\"2021-11-23T12:30:00\\",\\n \\"ShowList\\": {\\n \\"Show\\": [\\n {\\n \\"Duration\\": 20,\\n \\"RepeatTimes\\": 5,\\n \\"ResourceInfo\\": {\\n \\"LiveInputType\\": 1,\\n \\"ResourceId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"ResourceType\\": \\"vod\\",\\n \\"ResourceUrl\\": \\"http://**/atestObject**.m3u8\\"\\n },\\n \\"ShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"ShowName\\": \\"liveShow****\\"\\n }\\n ]\\n },\\n \\"ShowListRepeatTimes\\": 0,\\n \\"TotalShowListRepeatTimes\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n ShowList[Show1, Show2, Show3...]\\n \\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n {\\\\\\"MaterialId\\\\\\":\\\\\\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\\\\\",\\\\\\"resourceType\\\\\\":\\\\\\"VOD\\\\\\"}\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n 2021-11-23T12:30:00\\n \\n 20\\n 5\\n \\n 1\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n vod\\n http://**/atestObject**.m3u8\\n \\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n liveShow****\\n \\n 0\\n 1\\n \\n","errorExample":""}]', ], - 'ModifyStudioLayout' => [ - 'summary' => '修改虚拟演播厅布局。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeStreamLocationBlock' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'CasterId', - 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'>需要提前创建好,必须是虚拟演播厅类型的导播台。'."\n" - .'>'."\n" - ."\n\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - ], - [ - 'name' => 'LayoutId', - 'in' => 'query', - 'schema' => [ - 'description' => '布局ID。如果您通过[AddStudioLayout接口](~~2848062~~)添加虚拟演播厅的布局设置,请查看AddStudioLayout接口调用返回的参数LayoutId值。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'LayoutName', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '演播厅布局名称。', - 'type' => 'string', - 'required' => false, - 'example' => '测试布局', - ], + 'schema' => ['description' => '播放域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'CommonConfig', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '通用布局配置。格式为JSON字符串,请参见**CommonConfig**。'."\n" - .'>当LayoutType取值为common时,本参数才必填。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => '{ "ChannelId":"RV01" }', - ], + 'schema' => ['description' => '直播流所属应用名称。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ - 'name' => 'BgImageConfig', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '背景资源配置。格式为JSON字符串,请参见**BgImageConfig**。'."\n" - ."\n" - .'>当LayoutType取值为studio时,本参数才必填。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => '{ "Id":"k12kj31****", "MaterialId":"f080575eb5f4427684fc0715159a****" }', - ], + 'schema' => ['description' => '直播流名称。', 'type' => 'string', 'required' => false, 'example' => 'stream'], ], [ - 'name' => 'ScreenInputConfigList', + 'name' => 'BlockType', 'in' => 'query', - 'schema' => [ - 'description' => '抠像输入设置。格式为JSON字符串,请参见**ScreenInputConfig**。'."\n" - ."\n" - .'>当LayoutType取值为studio时,本参数才必填。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => '[ { "Index":"1", "ChannelId":"RV01", "Color":"green", "PositionX":"0.1", "PositionY":"0.2", "HeightNormalized":"0.4" } ]', - ], + 'schema' => ['description' => '封禁方式。'."\n" + .'- blacklist:黑名单。'."\n" + .'- whitelist:白名单。', 'type' => 'string', 'required' => false, 'example' => 'blacklist'], ], [ - 'name' => 'MediaInputConfigList', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '多媒体输入资源设置。格式为JSON字符串,请参见**MediaInputConfig**。'."\n" - ."\n" - .'>当LayoutType取值为studio时,本参数才有效,且为选填。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => '[ { "Id":"k12kj31****", "Index":"1", "ChannelId":"RV01", "FillMode":"none", "PositionRefer":"topLeft", "WidthNormalized":"0.4", "HeightNormalized":"0.4", "PositionNormalized":"[0.1, 0.2]" }, { "Id":"k12kj31****", "Index":"2", "ImageMaterialId":"lkajsdfsa8fd89asd8****", "FillMode":"none", "PositionRefer":"topLeft", "WidthNormalized":"0.6", "HeightNormalized":"0.4", "PositionNormalized":"[0.1, 0.2]" } ]', - ], + 'schema' => ['description' => '每页大小,最大100,取值:1~100之间的任意整数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5', 'default' => '20'], ], [ - 'name' => 'LayerOrderConfigList', + 'name' => 'PageNum', 'in' => 'query', - 'schema' => [ - 'description' => '图层顺序设置。格式为JSON字符串,请参见**layerOrderConfig**。'."\n" - .'支持背景素材、多媒体素材排序,暂不支持抠像层。越排在前面,越在底层。', - 'type' => 'string', - 'required' => false, - 'example' => '[ { "Type":"media", "Id":"k12kj31****" }, { "Type":"media", "Id":"k12kj31****" } ]', - ], + 'schema' => ['description' => '取得第几页,默认1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], ], 'responses' => [ @@ -42323,129 +33220,81 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', + 'Count' => ['description' => '符合条件的总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'PageNum' => ['description' => '分页的页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C7C69682-7F88-40DD-A198-10D0309E439B'], + 'StreamBlockList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamBlock' => [ + 'description' => '详细信息。', + 'type' => 'array', + 'items' => [ + 'description' => '详细信息。', + 'type' => 'object', + 'properties' => [ + 'AppName' => ['description' => '封禁的应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'BlockType' => ['description' => '封禁方式。'."\n" + .'- blacklist:黑名单。'."\n" + .'- whitelist:白名单。', 'type' => 'string', 'example' => 'blacklist'], + 'DomainName' => ['description' => '加速域名。', 'type' => 'string', 'example' => 'example.com'], + 'LocationList' => ['description' => '封禁区域,如CN,AS多个以逗号隔开。', 'type' => 'string', 'example' => 'CN'], + 'ReleaseTime' => ['description' => '失效时间,UTC时间。', 'type' => 'string', 'example' => '2023-08-13T09:27Z'], + 'Status' => ['description' => '封禁状态,0:未开始,1:正在封禁,2:成功,3:失败,4:过期,5:删除中。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'StreamName' => ['description' => '封禁的流名称。', 'type' => 'string', 'example' => 'stream'], + 'UpdateTime' => ['description' => '最后修改时间,UTC时间。', 'type' => 'string', 'example' => '2023-08-14T09:27Z'], + ], + ], + ], + ], + 'description' => '', ], + 'TotalPage' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidPositionNormalized.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidHeightOrWidthNormalized', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidLayout.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ], + 'title' => '查询直播流粒度封禁', + 'summary' => '调用DescribeStreamLocationBlock查询直播流粒度封禁信息。', + 'description' => '接口查询直播流粒度封禁信息。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeStreamLocationBlock'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeStreamLocationBlock', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', - 'title' => '修改虚拟演播厅布局', - 'description' => '调用本接口修改虚拟演播厅布局。修改布局设置时,仅需传入要修改的参数。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '## CommonConfig'."\n" - .'| 名称 | 类型 | 示例 | 描述 |'."\n" - .'| --------------- | ------ | --------------------- | -------------------------- |'."\n" - .'| ChannelId | String | RV01 | 视频资源绑定的通道位置ID。 |'."\n" - ."\n" - .'## BgImageConfig'."\n" - .'> 其中ImageUrl和MaterialId仅能输入一个。'."\n" - .'| 名称 | 类型 | 示例 | 描述 |'."\n" - .'| --------------- | ------ | --------------------- | -------------------------- |'."\n" - .'| Id | String | k12kj31**** | 该背景素材唯一ID。 |'."\n" - .'| ImageUrl | String | http://aliyundoc.com | 素材地址URL。 |'."\n" - .'| MaterialId | String | f080575eb5f4427684fc0715159a**** | 点播素材ID。 |'."\n" - ."\n" - .'## ScreenInputConfig'."\n" - .'| 名称 | 类型 | 示例 | 描述 |'."\n" - .'| ---------------- | ------- | ------------------------------------ | ------------------------------------------------------------ |'."\n" - .'| Index | Integer | 1 | 抠像源编号。前端展示使用,无逻辑作用,要求取正整数(>0)。 |'."\n" - .'| ChannelId | String | RV01 | 视频资源绑定的通道位置ID。 |'."\n" - .'| Color | String | green | 抠像色域。取值:
**blue**:蓝幕背景。
**green**:绿幕背景。
**auto**:自动识别。
**complex**:实景抠像。 |'."\n" - .'| PositionX | Float | 0.1 | 位置参数,坐标x。取值:[0,1]。
素材位置以左上角为基准点。 |'."\n" - .'| PositionY | Float | 0.2 | 位置参数,坐标y。取值:[0,1]。
素材位置以左上角为基准点。 |'."\n" - .'| HeightNormalized | Float | 0.4 | 高度归一化值。即抠出的人像与背景的高度比。取值:[0,1]。 |'."\n" - ."\n" - .'## MediaInputConfig'."\n" - .'- 当多媒体素材是视频源,ChannelId。'."\n" - .'- 当多媒体素材是图片,传入ImageMeterialId。'."\n" - .'- ChannelId和ImageMeterialId是互斥的,两者选填一项。'."\n" - ."\n" - .'| 名称 | 类型 | 示例 | 描述 |'."\n" - .'| ------------------ | ------- | ------------------------------------ | ------------------------------------------------------------ |'."\n" - .'| Id | String | k12kj31**** | 该多媒体素材唯一ID。 |'."\n" - .'| Index | Integer | 1 | 多媒体素材编号。前端展示使用,无逻辑作用,要求取正整数(>0)。 |'."\n" - .'| ChannelId | String | RV01 | 视频资源绑定的通道位置ID。 |'."\n" - .'| ImageMaterialId | String | lkajsdfsa8fd89asd8**** | 点播图片素材ID。 |'."\n" - .'| FillMode | String | none | 填充类型。填**none**即可。 |'."\n" - .'| PositionRefer | String | topLeft | 素材的位置参考坐标值。填**topLeft**即可,表示位置设置以左上角为基准点。 |'."\n" - .'| WidthNormalized | Float | 0.4 | 素材的宽度归一化值。即素材与背景的宽度比。取值:[0,1]。 |'."\n" - .'| HeightNormalized | Float | 0.4 | 素材的高度归一化值。即素材与背景的高度比。取值:[0,1]。 |'."\n" - .'| PositionNormalized | Float | [0.1, 0.2] | 素材的填充区位置归一化值[x,y]。x、y的取值范围分别为[0,1]。
例如[0.1,0.2] 代表左上角水平偏移10%,垂直偏移20%。 |'."\n" - ."\n" - .'## layerOrderConfig'."\n" - .'| 名称 | 类型 | 示例 | 描述 |'."\n" - .'| ---- | ------ | ----------- | ------------------------------------------------------------ |'."\n" - .'| Id | String | k12kj31**** | 该资源的唯一ID。 |'."\n" - .'| Type | String | media | 资源配置的类型。
background:背景素材。
media:多媒体素材。 |', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Count\\": 2,\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 5,\\n \\"RequestId\\": \\"C7C69682-7F88-40DD-A198-10D0309E439B\\",\\n \\"StreamBlockList\\": {\\n \\"StreamBlock\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"BlockType\\": \\"blacklist\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"LocationList\\": \\"CN\\",\\n \\"ReleaseTime\\": \\"2023-08-13T09:27Z\\",\\n \\"Status\\": 0,\\n \\"StreamName\\": \\"stream\\",\\n \\"UpdateTime\\": \\"2023-08-14T09:27Z\\"\\n }\\n ]\\n },\\n \\"TotalPage\\": 1\\n}","type":"json"}]', ], 'DescribeStudioLayouts' => [ 'summary' => '获取虚拟演播厅布局设置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -42456,50 +33305,32 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****'], ], [ 'name' => 'LayoutId', 'in' => 'query', - 'schema' => [ - 'description' => '布局ID。'."\n" - .'多个布局ID用英文逗号(,)隔开,不填则返回该导播台下所有布局。'."\n" - ."\n" - .'如果您通过[AddStudioLayout接口](~~2848062~~)添加虚拟演播厅的布局设置,请查看AddStudioLayout接口调用返回的参数LayoutId值。', - 'type' => 'string', - 'required' => false, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['description' => '布局ID。'."\n" + .'多个布局ID用英文逗号(,)隔开,不填则返回该导播台下所有布局。'."\n" + ."\n" + .'如果您通过[AddStudioLayout接口](~~2848062~~)添加虚拟演播厅的布局设置,请查看AddStudioLayout接口调用返回的参数LayoutId值。', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], ], 'responses' => [ @@ -42508,11 +33339,7 @@ 'description' => '布局信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3'], 'StudioLayouts' => [ 'description' => '布局信息。', 'type' => 'array', @@ -42524,42 +33351,18 @@ 'description' => '背景资源配置。', 'type' => 'object', 'properties' => [ - 'Id' => [ - 'description' => '该背景素材唯一ID。', - 'type' => 'string', - 'example' => 'k12kj31****', - ], - 'ImageUrl' => [ - 'description' => '素材地址URL。', - 'type' => 'string', - 'example' => ' http://example.org', - ], - 'LocationId' => [ - 'description' => '位置id', - 'type' => 'string', - 'example' => 'RV01', - ], - 'MaterialId' => [ - 'description' => '点播素材ID。', - 'type' => 'string', - 'example' => 'asdfas9df89asd8f9****', - ], + 'Id' => ['description' => '该背景素材唯一ID。', 'type' => 'string', 'example' => 'k12kj31****'], + 'ImageUrl' => ['description' => '素材地址URL。', 'type' => 'string', 'example' => ' http://example.org'], + 'LocationId' => ['description' => '位置id', 'type' => 'string', 'example' => 'RV01'], + 'MaterialId' => ['description' => '点播素材ID。', 'type' => 'string', 'example' => 'asdfas9df89asd8f9****'], ], ], 'CommonConfig' => [ 'description' => '通用布局信息。此布局为通用布局时,返回此字段。', 'type' => 'object', 'properties' => [ - 'ChannelId' => [ - 'description' => '视频资源绑定的通道位置ID。 ', - 'type' => 'string', - 'example' => 'RV01', - ], - 'VideoResourceId' => [ - 'description' => '视频资源ID。', - 'type' => 'string', - 'example' => 'asdfasdfasdfasdfa****', - ], + 'ChannelId' => ['description' => '视频资源绑定的通道位置ID。 ', 'type' => 'string', 'example' => 'RV01'], + 'VideoResourceId' => ['description' => '视频资源ID。', 'type' => 'string', 'example' => 'asdfasdfasdfasdfa****'], ], ], 'LayerOrderConfigList' => [ @@ -42569,40 +33372,20 @@ 'description' => '图层顺序配置。', 'type' => 'object', 'properties' => [ - 'Id' => [ - 'description' => '该资源的唯一ID。', - 'type' => 'string', - 'example' => 'k12kj31****', - ], - 'Type' => [ - 'description' => '资源配置的类型。取值:'."\n" - ."\n" - .'- **background**:背景素材。'."\n" - .'- **media**:多媒体素材。 ', - 'type' => 'string', - 'example' => 'media', - ], + 'Id' => ['description' => '该资源的唯一ID。', 'type' => 'string', 'example' => 'k12kj31****'], + 'Type' => ['description' => '资源配置的类型。取值:'."\n" + ."\n" + .'- **background**:背景素材。'."\n" + .'- **media**:多媒体素材。 ', 'type' => 'string', 'example' => 'media'], ], ], ], - 'LayoutId' => [ - 'description' => '演播厅布局ID。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - 'LayoutName' => [ - 'description' => '演播厅布局名称。', - 'type' => 'string', - 'example' => '测试布局', - ], - 'LayoutType' => [ - 'description' => '演播厅布局类型。取值:'."\n" - ."\n" - .'- **common**:通用布局。'."\n" - .'- **studio**:演播厅布局。', - 'type' => 'string', - 'example' => 'studio', - ], + 'LayoutId' => ['description' => '演播厅布局ID。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + 'LayoutName' => ['description' => '演播厅布局名称。', 'type' => 'string', 'example' => 'Test layout'], + 'LayoutType' => ['description' => '演播厅布局类型。取值:'."\n" + ."\n" + .'- **common**:通用布局。'."\n" + .'- **studio**:演播厅布局。', 'type' => 'string', 'example' => 'studio'], 'MediaInputConfigList' => [ 'description' => '多媒体输入资源配置。', 'type' => 'array', @@ -42610,65 +33393,21 @@ 'description' => '多媒体输入源配置。', 'type' => 'object', 'properties' => [ - 'ChannelId' => [ - 'description' => '视频资源绑定的通道位置ID。', - 'type' => 'string', - 'example' => 'RV01', - ], - 'FillMode' => [ - 'description' => '填充类型。默认为none。', - 'type' => 'string', - 'example' => 'none', - ], - 'HeightNormalized' => [ - 'description' => '素材的高度归一化值。即素材与背景的高度比。取值:**0~1**。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.4', - ], - 'Id' => [ - 'description' => '该多媒体素材唯一ID。', - 'type' => 'string', - 'example' => 'k12kj31****', - ], - 'ImageMaterialId' => [ - 'description' => '点播图片素材ID。', - 'type' => 'string', - 'example' => 'lkajsdfsa8fd89asd8****', - ], - 'Index' => [ - 'description' => '多媒体素材编号。前端展示使用,无逻辑作用。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'ChannelId' => ['description' => '视频资源绑定的通道位置ID。', 'type' => 'string', 'example' => 'RV01'], + 'FillMode' => ['description' => '填充类型。默认为none。', 'type' => 'string', 'example' => 'none'], + 'HeightNormalized' => ['description' => '素材的高度归一化值。即素材与背景的高度比。取值:**0~1**。', 'type' => 'number', 'format' => 'float', 'example' => '0.4'], + 'Id' => ['description' => '该多媒体素材唯一ID。', 'type' => 'string', 'example' => 'k12kj31****'], + 'ImageMaterialId' => ['description' => '点播图片素材ID。', 'type' => 'string', 'example' => 'lkajsdfsa8fd89asd8****'], + 'Index' => ['description' => '多媒体素材编号。前端展示使用,无逻辑作用。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], 'PositionNormalized' => [ 'description' => '素材的填充区位置归一化值[unk][x,y][unk]。x、y的取值范围分别为**0~1**。例如[unk][0.1,0.2][unk]代表左上角水平偏移10%,垂直偏移20%。', 'type' => 'array', - 'items' => [ - 'description' => '素材的填充区位置归一化值`[x,y]`。x、y的取值范围分别为**0~1**。'."\n" - .'例如`[0.1,0.2]`代表左上角水平偏移10%,垂直偏移20%。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.1', - ], - ], - 'PositionRefer' => [ - 'description' => '素材的位置参考坐标值。默认为topLeft,表示位置设置以左上角为基准点。', - 'type' => 'string', - 'example' => 'topLeft', - ], - 'VideoResourceId' => [ - 'description' => '视频资源ID。', - 'type' => 'string', - 'example' => 'asdfasdfasdfasdfa****', - ], - 'WidthNormalized' => [ - 'description' => '素材的宽度归一化值。即素材与背景的宽度比。取值:**0~1**。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.4', + 'items' => ['description' => '素材的填充区位置归一化值`[x,y]`。x、y的取值范围分别为**0~1**。'."\n" + .'例如`[0.1,0.2]`代表左上角水平偏移10%,垂直偏移20%。', 'type' => 'number', 'format' => 'float', 'example' => '0.1'], ], + 'PositionRefer' => ['description' => '素材的位置参考坐标值。默认为topLeft,表示位置设置以左上角为基准点。', 'type' => 'string', 'example' => 'topLeft'], + 'VideoResourceId' => ['description' => '视频资源ID。', 'type' => 'string', 'example' => 'asdfasdfasdfasdfa****'], + 'WidthNormalized' => ['description' => '素材的宽度归一化值。即素材与背景的宽度比。取值:**0~1**。', 'type' => 'number', 'format' => 'float', 'example' => '0.4'], ], ], ], @@ -42683,127 +33422,54 @@ 'description' => '音频配置信息。', 'type' => 'object', 'properties' => [ - 'ValidChannel' => [ - 'description' => '对应通道。', - 'type' => 'string', - 'example' => '1', - ], - 'VolumeRate' => [ - 'description' => '音量。', - 'type' => 'number', - 'format' => 'float', - 'example' => '1.0', - ], + 'ValidChannel' => ['description' => '对应通道。', 'type' => 'string', 'example' => '1'], + 'VolumeRate' => ['description' => '音量。', 'type' => 'number', 'format' => 'float', 'example' => '1.0'], ], ], - 'ChannelId' => [ - 'description' => '视频资源绑定的通道位置ID。', - 'type' => 'string', - 'example' => 'RV01', - ], - 'Color' => [ - 'description' => '抠像色域。取值:'."\n" - ."\n" - .'- **blue**:蓝幕背景。'."\n" - .'- **green**:绿幕背景。'."\n" - .'- **auto**:自动识别。'."\n" - .'- **complex**:实景抠像。', - 'type' => 'string', - 'example' => 'green', - ], - 'HeightNormalized' => [ - 'description' => '高度归一化值。即抠出的人像与背景的高度比。取值:**0~1**。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.4', - ], - 'Id' => [ - 'description' => '该抠像源素材唯一ID。', - 'type' => 'string', - 'example' => 'k12kj31****', - ], - 'Index' => [ - 'description' => '抠像源编号。前端展示使用,无逻辑作用。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'OnlyAudio' => [ - 'description' => '仅音频', - 'type' => 'boolean', - 'example' => 'true', - ], - 'PortraitType' => [ - 'description' => '人像类型。取值:'."\n" - ."\n" - .'- **0**:半身。'."\n" - .'- **1**:全身。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'PositionX' => [ - 'description' => '位置参数,坐标x。取值:**0~1**。素材位置以左上角为基准点。', - 'type' => 'string', - 'example' => '0.1', - ], - 'PositionY' => [ - 'description' => '位置参数,坐标y。取值:**0~1**。素材位置以左上角为基准点。', - 'type' => 'string', - 'example' => '0.2', - ], - 'VideoResourceId' => [ - 'description' => '视频资源ID。', - 'type' => 'string', - 'example' => 'asdfasdfasdfasdfa****', - ], + 'ChannelId' => ['description' => '视频资源绑定的通道位置ID。', 'type' => 'string', 'example' => 'RV01'], + 'Color' => ['description' => '抠像色域。取值:'."\n" + ."\n" + .'- **blue**:蓝幕背景。'."\n" + .'- **green**:绿幕背景。'."\n" + .'- **auto**:自动识别。'."\n" + .'- **complex**:实景抠像。', 'type' => 'string', 'example' => 'green'], + 'HeightNormalized' => ['description' => '高度归一化值。即抠出的人像与背景的高度比。取值:**0~1**。', 'type' => 'number', 'format' => 'float', 'example' => '0.4'], + 'Id' => ['description' => '该抠像源素材唯一ID。', 'type' => 'string', 'example' => 'k12kj31****'], + 'Index' => ['description' => '抠像源编号。前端展示使用,无逻辑作用。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'OnlyAudio' => ['description' => '仅音频', 'type' => 'boolean', 'example' => 'true'], + 'PortraitType' => ['description' => '人像类型。取值:'."\n" + ."\n" + .'- **0**:半身。'."\n" + .'- **1**:全身。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'PositionX' => ['description' => '位置参数,坐标x。取值:**0~1**。素材位置以左上角为基准点。', 'type' => 'string', 'example' => '0.1'], + 'PositionY' => ['description' => '位置参数,坐标y。取值:**0~1**。素材位置以左上角为基准点。', 'type' => 'string', 'example' => '0.2'], + 'VideoResourceId' => ['description' => '视频资源ID。', 'type' => 'string', 'example' => 'asdfasdfasdfasdfa****'], ], ], ], ], ], ], - 'Total' => [ - 'description' => '布局数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'Total' => ['description' => '布局数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], ], [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\",\\n \\"StudioLayouts\\": [\\n {\\n \\"BgImageConfig\\": {\\n \\"Id\\": \\"k12kj31****\\",\\n \\"ImageUrl\\": \\" http://example.org\\",\\n \\"LocationId\\": \\"RV01\\",\\n \\"MaterialId\\": \\"asdfas9df89asd8f9****\\"\\n },\\n \\"CommonConfig\\": {\\n \\"ChannelId\\": \\"RV01\\",\\n \\"VideoResourceId\\": \\"asdfasdfasdfasdfa****\\"\\n },\\n \\"LayerOrderConfigList\\": [\\n {\\n \\"Id\\": \\"k12kj31****\\",\\n \\"Type\\": \\"media\\"\\n }\\n ],\\n \\"LayoutId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"LayoutName\\": \\"测试布局\\",\\n \\"LayoutType\\": \\"studio\\",\\n \\"MediaInputConfigList\\": [\\n {\\n \\"ChannelId\\": \\"RV01\\",\\n \\"FillMode\\": \\"none\\",\\n \\"HeightNormalized\\": 0.4,\\n \\"Id\\": \\"k12kj31****\\",\\n \\"ImageMaterialId\\": \\"lkajsdfsa8fd89asd8****\\",\\n \\"Index\\": 1,\\n \\"PositionNormalized\\": [\\n 0.1\\n ],\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"VideoResourceId\\": \\"asdfasdfasdfasdfa****\\",\\n \\"WidthNormalized\\": 0.4\\n }\\n ],\\n \\"ScreenInputConfigList\\": [\\n {\\n \\"AudioConfig\\": {\\n \\"ValidChannel\\": \\"1\\",\\n \\"VolumeRate\\": 1\\n },\\n \\"ChannelId\\": \\"RV01\\",\\n \\"Color\\": \\"green\\",\\n \\"HeightNormalized\\": 0.4,\\n \\"Id\\": \\"k12kj31****\\",\\n \\"Index\\": 1,\\n \\"OnlyAudio\\": true,\\n \\"PortraitType\\": 0,\\n \\"PositionX\\": \\"0.1\\",\\n \\"PositionY\\": \\"0.2\\",\\n \\"VideoResourceId\\": \\"asdfasdfasdfasdfa****\\"\\n }\\n ]\\n }\\n ],\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0d-f228-4a64-af62-20e91b9676b3\\n \\n \\n k12kj31****\\n http://example.org\\n RV01\\n asdfas9df89asd8f9****\\n \\n \\n RV01\\n asdfasdfasdfasdfa****\\n \\n \\n k12kj31****\\n media\\n \\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 测试布局\\n studio\\n \\n RV01\\n none\\n 0.4\\n k12kj31****\\n lkajsdfsa8fd89asd8****\\n 1\\n 0.1\\n topLeft\\n asdfasdfasdfasdfa****\\n 0.4\\n \\n \\n \\n 1\\n 1\\n \\n RV01\\n green\\n 0.4\\n k12kj31****\\n 1\\n true\\n 0\\n 0.1\\n 0.2\\n asdfasdfasdfasdfa****\\n \\n \\n 1\\n","errorExample":""}]', 'title' => '查询虚拟演播厅布局', 'description' => '先通过[AddStudioLayout接口](~~2848062~~)添加虚拟演播厅的布局设置,再调用本接口获取虚拟演播厅布局设置。'."\n" ."\n" @@ -42812,159 +33478,73 @@ 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AddCasterEpisode' => [ - 'summary' => '添加导播台节目。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeStudioLayouts'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeStudioLayouts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\",\\n \\"StudioLayouts\\": [\\n {\\n \\"BgImageConfig\\": {\\n \\"Id\\": \\"k12kj31****\\",\\n \\"ImageUrl\\": \\" http://example.org\\",\\n \\"LocationId\\": \\"RV01\\",\\n \\"MaterialId\\": \\"asdfas9df89asd8f9****\\"\\n },\\n \\"CommonConfig\\": {\\n \\"ChannelId\\": \\"RV01\\",\\n \\"VideoResourceId\\": \\"asdfasdfasdfasdfa****\\"\\n },\\n \\"LayerOrderConfigList\\": [\\n {\\n \\"Id\\": \\"k12kj31****\\",\\n \\"Type\\": \\"media\\"\\n }\\n ],\\n \\"LayoutId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"LayoutName\\": \\"Test layout\\",\\n \\"LayoutType\\": \\"studio\\",\\n \\"MediaInputConfigList\\": [\\n {\\n \\"ChannelId\\": \\"RV01\\",\\n \\"FillMode\\": \\"none\\",\\n \\"HeightNormalized\\": 0.4,\\n \\"Id\\": \\"k12kj31****\\",\\n \\"ImageMaterialId\\": \\"lkajsdfsa8fd89asd8****\\",\\n \\"Index\\": 1,\\n \\"PositionNormalized\\": [\\n 0.1\\n ],\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"VideoResourceId\\": \\"asdfasdfasdfasdfa****\\",\\n \\"WidthNormalized\\": 0.4\\n }\\n ],\\n \\"ScreenInputConfigList\\": [\\n {\\n \\"AudioConfig\\": {\\n \\"ValidChannel\\": \\"1\\",\\n \\"VolumeRate\\": 1\\n },\\n \\"ChannelId\\": \\"RV01\\",\\n \\"Color\\": \\"green\\",\\n \\"HeightNormalized\\": 0.4,\\n \\"Id\\": \\"k12kj31****\\",\\n \\"Index\\": 1,\\n \\"OnlyAudio\\": true,\\n \\"PortraitType\\": 0,\\n \\"PositionX\\": \\"0.1\\",\\n \\"PositionY\\": \\"0.2\\",\\n \\"VideoResourceId\\": \\"asdfasdfasdfasdfa****\\"\\n }\\n ]\\n }\\n ],\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0d-f228-4a64-af62-20e91b9676b3\\n \\n \\n k12kj31****\\n http://example.org\\n RV01\\n asdfas9df89asd8f9****\\n \\n \\n RV01\\n asdfasdfasdfasdfa****\\n \\n \\n k12kj31****\\n media\\n \\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 测试布局\\n studio\\n \\n RV01\\n none\\n 0.4\\n k12kj31****\\n lkajsdfsa8fd89asd8****\\n 1\\n 0.1\\n topLeft\\n asdfasdfasdfasdfa****\\n 0.4\\n \\n \\n \\n 1\\n 1\\n \\n RV01\\n green\\n 0.4\\n k12kj31****\\n 1\\n true\\n 0\\n 0.1\\n 0.2\\n asdfasdfasdfasdfa****\\n \\n \\n 1\\n","errorExample":""}]', + ], + 'DescribeToutiaoLivePlay' => [ + 'summary' => '获取头条指定直播流的拉流信息', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域id。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ComponentId', + 'name' => 'StartTime', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '组件列表。按照元素顺序由下而上排列。'."\n" - ."\n" - .'如果您通过[AddCasterComponent接口](~~2848030~~)添加导播台组件,请查看AddCasterComponent接口调用返回的参数ComponentId值。'."\n" - ."\n" - .'- 当资源类型为**Component**时,参数有用且必传。'."\n" - .'- 当资源类型为**Resource**时,参数非必传,传入时表示组件与视频源绑定并同步切换。'."\n" - ."\n" - .'>N表示第几个组件ID。例如:**ComponentId.1**表示传入第一个组件ID;**ComponentId.2**表示传入第2个组件ID。', - 'type' => 'array', - 'items' => [ - 'description' => '组件ID', - 'type' => 'string', - 'required' => false, - 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', - ], - 'required' => false, - 'example' => '["a2b8e671-2fe5-4642-a2ec-bf93880e****"]', - 'maxItems' => 10, - ], + 'schema' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z'], ], [ - 'name' => 'CasterId', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台**> **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], - ], - [ - 'name' => 'EpisodeType', - 'in' => 'query', - 'schema' => [ - 'description' => '节点类型。 取值:'."\n" - .' '."\n" - .'- **Resource**:视频源。如果选择Resource类型,必须同时设置请求参数ResourceId和SwitchType。'."\n" - .'- **Component**:组件。'."\n" - .' ', - 'type' => 'string', - 'required' => true, - 'example' => 'Resource', - ], - ], - [ - 'name' => 'EpisodeName', - 'in' => 'query', - 'schema' => [ - 'description' => '节目名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'episode_1', - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'schema' => [ - 'description' => '视频源ID。 '."\n" - .'>当EpisodeType(节点类型)设为Resource时本参数有用且必传。'."\n" - .'> '."\n" - .'如果您通过[AddCasterVideoResource接口](~~2848020~~)添加导播台视频源,请查看AddCasterVideoResourcer接口调用返回的参数ResourceId值。', - 'type' => 'string', - 'required' => false, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '结束时间需大于起始时间,时间跨度不得大于10小时,StartTime和EndTime都不填则默认查询当前一小时的数据;获日期格式按照ISO8601表示法,并使用UTC时间。', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T21:00:00Z'], ], [ - 'name' => 'StartTime', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。 格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .' ', - 'type' => 'string', - 'required' => true, - 'example' => '2016-06-29T08:00:00Z', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'EndTime', + 'name' => 'Stream', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。 格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .' ', - 'type' => 'string', - 'required' => true, - 'example' => '2016-06-29T09:10:00Z', - ], + 'schema' => ['description' => '播流名称。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], [ - 'name' => 'SwitchType', + 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => '切换策略。取值: '."\n" - .'>当EpisodeType(节点类型)设为Resource时本参数才有效。'."\n" - .'>'."\n" - .' '."\n" - .'- **TimeFirst**:时间优先 。'."\n" - .'- **ContentFirst**:内容优先。'."\n" - ."\n" - .'>更多关于视频源的信息,请参见[添加视频源](~~66094~~)。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'TimeFirst', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], ], 'responses' => [ @@ -42972,155 +33552,100 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EpisodeId' => [ - 'description' => '节目ID。可作为查询导播台节目单、修改导播台节目、删除导播台节目的请求参数。', - 'type' => 'string', - 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + 'Description' => ['description' => '响应状态描述。', 'type' => 'string', 'example' => 'OK'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], + 'Content' => [ + 'description' => '播流信息详情。', + 'type' => 'array', + 'items' => [ + 'description' => '播流信息详情。', + 'type' => 'object', + 'properties' => [ + 'Domain' => ['description' => '播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'Bandwidth' => ['description' => '带宽。单位:Mbps', 'type' => 'number', 'format' => 'float', 'example' => '0.0801239013671875'], + 'StreamName' => ['description' => '播流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'App' => ['description' => '播流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'."\n"], + 'PlayNum' => ['description' => '观看人数。', 'type' => 'integer', 'format' => 'int64', 'example' => '452'], + 'Timestamp' => ['description' => '时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1625484600'], + 'CdnName' => ['description' => 'Cdn名称。', 'type' => 'string', 'example' => 'ali'], + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'SwitchTypeInvalid.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectStartTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectEndTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'EpisodeConflict.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], + 'errorCodes' => [], + 'title' => '头条拉流查询接口', + 'description' => '调用接口查询头条指定直播流的拉流信息。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidResource.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidComponent.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeToutiaoLivePlay', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EpisodeId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"EpisodeId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\"\\n}"}]', - 'title' => '添加导播台节目', - 'description' => '调用本接口必须提前获取导播台ID。导播台ID在创建导播台后生成。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。'."\n" - ."\n" - .'## QPS权限'."\n" - .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"OK\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"Content\\": [\\n {\\n \\"Domain\\": \\"example.com\\",\\n \\"Bandwidth\\": 0.0801239013671875,\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"App\\": \\"liveApp****\\\\n\\",\\n \\"PlayNum\\": 452,\\n \\"Timestamp\\": 1625484600,\\n \\"CdnName\\": \\"ali\\"\\n }\\n ]\\n}","type":"json"}]', ], - 'DeleteCasterEpisode' => [ - 'summary' => '删除导播台节目。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeToutiaoLivePublish' => [ + 'summary' => '获取头条指定直播流的推流信息', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z'."\n"], ], [ - 'name' => 'EpisodeId', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '节目ID。如果您通过[AddCasterEpisode接口](~~2848068~~)添加导播台节目,请查看AddCasterEpisode接口调用返回的参数EpisodeId值。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf932738****', - ], + 'schema' => ['description' => '结束时间需大于起始时间,时间跨度不得大于10小时,StartTime和EndTime都不填则默认查询当前一小时的数据;获日期格式按照ISO8601表示法,并使用UTC时间。', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T21:00:00Z'."\n"], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => ['description' => '推流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => ['description' => '推流名称。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => ['description' => '推流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], ], 'responses' => [ @@ -43128,241 +33653,138 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。可作为修改导播台节目的请求参数。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'EpisodeId' => [ - 'description' => '节目ID。可作为修改导播台节目的请求参数。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf932738****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'Description' => ['description' => '响应状态描述。', 'type' => 'string', 'example' => 'OK'."\n"], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], + 'Content' => [ + 'description' => '推流信息详情。', + 'type' => 'array', + 'items' => [ + 'description' => '推流信息详情。', + 'type' => 'object', + 'properties' => [ + 'Domain' => ['description' => '推流域名。', 'type' => 'string', 'example' => 'example.com'], + 'StreamName' => ['description' => '推流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'App' => ['description' => '推流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'."\n"], + 'Fps' => ['description' => '帧率。', 'type' => 'number', 'format' => 'float', 'example' => '74.4'], + 'Flr' => ['description' => '丢帧数。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'Timestamp' => ['description' => '时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1624358970'], + 'Bitrate' => ['description' => '码率,单位为比特每秒(bit/s)。', 'type' => 'number', 'format' => 'float', 'example' => '261587'], + 'BwDiff' => ['description' => '码率差值。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'CdnName' => ['description' => 'Cdn名称。', 'type' => 'string', 'example' => 'ali'], + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectStartTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectEpisodeStatus', - 'errorMessage' => '%s, please check and try again later.', - ], + 'errorCodes' => [], + 'title' => '头条推流查询接口', + 'description' => '调用接口查询头条指定直播流的推流信息。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeToutiaoLivePublish'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidEpisode.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeToutiaoLivePublish', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"EpisodeId\\": \\"a2b8e671-2fe5-4642-a2ec-bf932738****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n a2b8e671-2fe5-4642-a2ec-bf932738****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '删除导播台节目', - 'description' => '调用本接口删除导播台节目前必须先获取导播台ID和节目ID。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"OK\\\\n\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"Content\\": [\\n {\\n \\"Domain\\": \\"example.com\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"App\\": \\"liveApp****\\\\n\\",\\n \\"Fps\\": 74.4,\\n \\"Flr\\": 0,\\n \\"Timestamp\\": 1624358970,\\n \\"Bitrate\\": 261587,\\n \\"BwDiff\\": 0,\\n \\"CdnName\\": \\"ali\\"\\n }\\n ]\\n}","type":"json"}]', ], - 'ModifyCasterEpisode' => [ - 'summary' => '修改导播台节目配置,节目类型不允许修改。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeUpBpsPeakData' => [ + 'summary' => '查询用户的每日上行带宽峰值。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'ComponentId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '组件列表。'."\n" - .'按照元素顺序由下而上排列,组件将与视频源同步切换。'."\n" - ."\n" - .'- 当EpisodeType取值为**Component**视频源时,本参数才有用且必传。'."\n" - .'- 当EpisodeType取值为**Resource**组件时,表示组件与视频源绑定并同步切换。'."\n" - .'> N表示第几个组件ID。例如:ComponentId.1表示传入第一个组件ID;ComponentId.2表示传入第2个组件ID。', - 'type' => 'array', - 'items' => [ - 'description' => '组件列表。', - 'type' => 'string', - 'required' => false, - 'example' => '["16A96B9A-F203-4EC5-8E43-CB92E68F****"]', - ], - 'required' => false, - 'example' => '["16A96B9A-F203-4EC5-8E43-CB92E68F****"]', - 'maxItems' => 10, - ], - ], - [ - 'name' => 'CasterId', - 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], - ], - [ - 'name' => 'EpisodeId', - 'in' => 'query', - 'schema' => [ - 'description' => '节目ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938623****', - ], - ], - [ - 'name' => 'EpisodeName', - 'in' => 'query', - 'schema' => [ - 'description' => '节目名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'episode_name_1', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ResourceId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '视频源ID。 '."\n" - .' '."\n" - .'- 当EpisodeType取值为**Resource**视频源时,本参数才有用且必传。'."\n" - .'- 当EpisodeType取值为**Component**组件时,本参数不可用。', - 'type' => 'string', - 'required' => false, - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E683****', - ], + 'schema' => ['description' => '拉流开始时间,UTC格式,StartTime和EndTime时间间隔在30天内。', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z'], ], [ - 'name' => 'StartTime', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2016-06-29T09:00:00Z', - ], + 'schema' => ['description' => '拉流结束时间,UTC格式, StartTime和EndTime时间间隔在30天内,且EndTime超过当前时间。', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T21:00:00Z'], ], [ - 'name' => 'EndTime', + 'name' => 'DomainSwitch', 'in' => 'query', 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', + 'description' => '域名统计开关,取值:'."\n" + ."\n" + .'- on:开启域名统计级别。'."\n" + .'- off:用户级别数据。默认统计用户级别数据。', 'type' => 'string', 'required' => false, - 'example' => '2016-06-29T10:20:00Z', + 'enumValueTitles' => ['off' => '用户级别数据', 'on' => '开启域名统计级别'], + 'example' => 'on', + 'enum' => ['on', 'off'], ], ], [ - 'name' => 'SwitchType', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '切换策略。 当EpisodeType取值为**Resource**视频源时有效。'."\n" - .' '."\n" - .'- **TimeFirst**:时间优先,直播类视频源只允许采用时间优先。 '."\n" - .'- **ContentFirst**:内容优先。', - 'type' => 'string', - 'required' => false, - 'example' => 'TimeFirst', - ], + 'schema' => ['description' => '加速域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '带宽信息。', 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。可作为复制导播台场景配置、更新导播场景配置、查询导播台场景列表、查询导播台场景音频配置、启动导播台场景和停止导播台场景的请求参数。', - 'type' => 'string', - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], - 'EpisodeId' => [ - 'description' => '节目ID。可作为删除导播台节目列表,创建或添加节目单项,删除节目单项,查询节目单项,编辑节目单,删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938623****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], + 'DescribeUpPeakTraffics' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DescribeUpPeakTraffic' => [ + 'description' => '每日上行峰值带宽信息', + 'type' => 'array', + 'items' => [ + 'description' => '每日上行峰值带宽信息', + 'type' => 'object', + 'properties' => [ + 'QueryTime' => ['description' => '查询的每日时间。日期格式按照 ISO8601 表示法,并使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2017-10-10T20:10:00Z'], + 'BandWidth' => ['description' => '每日峰值上行峰值带宽。', 'type' => 'string', 'example' => '777.2727083333333'], + 'StatName' => ['description' => '计数据属性名称。当DomainSwitch取值为on时,显示用户直播域名;为off或者不传值是显示用户Id。', 'type' => 'string', 'example' => 'push-live.aliyuncs.com'], + 'PeakTime' => ['description' => '每日峰值上行带宽的峰值时刻。日期格式按照 ISO8601 表示法,并使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2017-10-10T20:10:00Z'], + ], + ], + ], + ], + 'description' => '', ], ], ], @@ -43370,352 +33792,256 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'SwitchTypeInvalid.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectStartTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectEndTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectEpisodeStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'EpisodeConflict.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], ], [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidResource.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidEpisode.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidComponent.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"EpisodeId\\": \\"a2b8e671-2fe5-4642-a2ec-bf938623****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n a2b8e671-2fe5-4642-a2ec-bf938623****\\n LIVEPRODUCER_POST-cn-0pp1czt****\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n}"}]', - 'title' => '修改导播台节目配置,节目类型不允许修改', - 'description' => '调用本接口修改导播台节目配置,节目类型不允许修改。'."\n" - ."\n\n" - ."\n" + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"DescribeUpPeakTraffics\\": {\\n \\"DescribeUpPeakTraffic\\": [\\n {\\n \\"QueryTime\\": \\"2017-10-10T20:10:00Z\\",\\n \\"BandWidth\\": \\"777.2727083333333\\",\\n \\"StatName\\": \\"push-live.aliyuncs.com\\",\\n \\"PeakTime\\": \\"2017-10-10T20:10:00Z\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => '查询用户的每日上行带宽峰值', + 'description' => '调用接口查询用户的每日上行带宽峰值。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddCasterEpisodeGroup' => [ - 'summary' => '添加导播台节目列表。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUpBpsPeakData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeUpBpsPeakData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeUpBpsPeakOfLine' => [ + 'summary' => '查询用户的每日某种专线上行带宽峰值', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域id。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Item', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '节目列表。', - 'type' => 'array', - 'items' => [ - 'description' => '节目对象。', - 'type' => 'object', - 'properties' => [ - 'ItemName' => [ - 'description' => '节目名称。', - 'type' => 'string', - 'required' => false, - 'example' => '节目1', - ], - 'VodUrl' => [ - 'description' => '点播文件地址。'."\n" - ."\n" - .'如果您通过[DescribeCasterVideoResources接口](~~2848023~~)查询导播台视频源,请查看DescribeCasterVideoResources接口调用返回的参数VodUrl值。'."\n" - ."\n" - .'> 当且仅当资源为文件视频,且视频文件未导入素材库时使用。
'."\n" - .'支持MP4、FLV、TS格式。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://learn.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****.flv?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 150, - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ClientToken', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '用户生成的请求token。用于保证请求的幂等性。'."\n" - ."\n" - .'> 由客户端生成该参数值,要保证在不同请求间唯一,最大值不超过64个ASCII字符。'."\n" - .'>', - 'type' => 'string', - 'required' => true, - 'example' => '8751ad99-2ddb-4aac-ad44-84b21102****', - ], + 'schema' => ['description' => '拉流开始时间,UTC格式, StartTime和EndTime时间间隔在30天内。', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z'."\n"], ], [ - 'name' => 'DomainName', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '拉流结束时间,UTC格式, StartTime和EndTime时间间隔在30天内,且EndTime超过当前时间。', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T21:00:00Z'."\n"], ], [ - 'name' => 'StartTime', + 'name' => 'Line', 'in' => 'query', 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', + 'description' => '专线。取值范围支持【0,9】内的整数。', 'type' => 'string', 'required' => true, - 'example' => '2018-03-06T19:00:00Z', - ], - ], - [ - 'name' => 'RepeatNum', - 'in' => 'query', - 'schema' => [ - 'description' => '重复次数。取值:'."\n" - .'- **0**:不循环。'."\n" - .'- **-1**:无限循环。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '0', + 'enumValueTitles' => ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], + 'example' => '3', + 'enum' => ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], ], ], [ - 'name' => 'SideOutputUrl', + 'name' => 'DomainSwitch', 'in' => 'query', 'schema' => [ - 'description' => '用户自定义导播台旁路输出地址对应的推流地址。'."\n" + 'description' => '域名统计开关,取值:'."\n" ."\n" - .'若该参数为空,则默认使用阿里云自动生成的输出地址对应的推流地址。', + .'- on:开启域名统计级别。'."\n" + .'- off:用户级别数据,默认统计用户级别数据。', 'type' => 'string', - 'required' => true, - 'example' => 'rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', + 'required' => false, + 'enumValueTitles' => ['off' => '用户级别数据', 'on' => '开启域名统计级别'], + 'example' => 'on', + 'enum' => ['on', 'off'], ], ], [ - 'name' => 'CallbackUrl', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '用户回调地址。'."\n" - ."\n" - .'如果您通过[DescribeCasterConfig接口](~~2848011~~)查询导播台配置信息,请查看DescribeCasterConfig接口调用返回的参数CallbackUrl值。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://developer.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****', - ], + 'schema' => ['description' => '加速域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '带宽信息。', 'type' => 'object', 'properties' => [ - 'ItemIds' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****'], + 'DescribeUpBpsPeakOfLines' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'ItemId' => [ - 'description' => '节目ID列表。', + 'DescribeUpBpsPeakOfLine' => [ + 'description' => '每日上行专线峰值带宽信息。', 'type' => 'array', 'items' => [ - 'description' => '节目ID。', - 'type' => 'string', - 'example' => '21926b36-7dd2-4fde-ae25-51b5bc98****', + 'description' => '每日上行专线峰值带宽信息。', + 'type' => 'object', + 'properties' => [ + 'QueryTime' => ['description' => '查询的每日时间。日期格式按照 ISO8601 表示法,并使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2017-10-10T20:10:00Z'], + 'StatName' => ['description' => '统计数据属性名称。当DomainSwitch取值为on时,显示用户直播域名;为off或者不传值是显示用户Id。', 'type' => 'string', 'example' => 'push-live.aliyuncs.com'], + 'BandWidth' => ['description' => '每日峰值上行专线峰值带宽。', 'type' => 'number', 'format' => 'float', 'example' => '777.2727083333333'."\n"], + 'PeakTime' => ['description' => '每日峰值上行专线带宽的峰值时刻。日期格式按照 ISO8601 表示法,并使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2017-10-10T20:10:00Z'], + ], ], ], ], - ], - 'ProgramId' => [ - 'description' => '节目单ID。可作为删除导播台节目列表,创建或添加节目单项,删除节目单项,查询节目单项,编辑节目单,删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68X****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + 'description' => '', ], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'IncorrectStartTime', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + 401 => [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ItemIds\\": {\\n \\"ItemId\\": [\\n \\"21926b36-7dd2-4fde-ae25-51b5bc98****\\"\\n ]\\n },\\n \\"ProgramId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68X****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68X****\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t21926b36-7dd2-4fde-ae25-51b5bc98****\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ProgramId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68XX876\\",\\n \\"ItemIds\\": [\\n \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\",\\n \\"21926b36-7dd2-4fde-ae25-51b5bc98765t\\"\\n ]\\n}"}]', - 'title' => '添加导播台节目列表', - 'description' => '先创建导播台和获取导播台配置信息,再调用本接口添加导播台节目列表。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" - ."\n" + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6CFDE7AB-571A-14EA-B072-989FF753****\\",\\n \\"DescribeUpBpsPeakOfLines\\": {\\n \\"DescribeUpBpsPeakOfLine\\": [\\n {\\n \\"QueryTime\\": \\"2017-10-10T20:10:00Z\\",\\n \\"StatName\\": \\"push-live.aliyuncs.com\\",\\n \\"BandWidth\\": 777.2727083333333,\\n \\"PeakTime\\": \\"2017-10-10T20:10:00Z\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => '查询用户的每日某种专线上行带宽峰值', + 'description' => '调用接口查询用户的每日某种专线上行带宽峰值。'."\n" .'## QPS限制'."\n" - ."\n" - .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteCasterEpisodeGroup' => [ - 'summary' => '删除导播台节目列表。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUpBpsPeakOfLine'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeUpBpsPeakOfLine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeUpPeakPublishStreamData' => [ + 'summary' => '查询用户的每日上行并发推流数峰值。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '拉流开始时间,UTC格式, StartTime和EndTime时间间隔在30天内。', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T20:00:00Z'."\n"], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '拉流结束时间,UTC格式, StartTime和EndTime时间间隔在30天内,且EndTime超过当前时间。', 'type' => 'string', 'required' => true, 'example' => '2017-10-10T22:00:00Z'."\n"], + ], + [ + 'name' => 'DomainSwitch', + 'in' => 'query', 'schema' => [ - 'description' => '地域ID。', + 'description' => '域名统计开关,取值:'."\n" + ."\n" + .'- on:开启域名统计级别。'."\n" + .'- off:用户级别数据,默认统计用户级别数据。', 'type' => 'string', 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'enumValueTitles' => ['off' => '用户级别数据', 'on' => '开启域名统计级别'], + 'example' => 'on', + 'enum' => ['on', 'off'], ], ], [ - 'name' => 'ProgramId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '节目单ID。如果您通过[AddCasterEpisodeGroup接口](~~2848071~~)添加导播台节目列表,请查看AddCasterEpisodeGroup接口调用返回的参数ProgramId值。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf932738****', - ], + 'schema' => ['description' => '加速域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '推流数据。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****'."\n"], + 'DescribeUpPeakPublishStreamDatas' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DescribeUpPeakPublishStreamData' => [ + 'description' => '每日峰值并发推流数据。', + 'type' => 'array', + 'items' => [ + 'description' => '每日峰值并发推流数据。', + 'type' => 'object', + 'properties' => [ + 'QueryTime' => ['description' => '查询的每日时间。日期格式按照 ISO8601 表示法,并使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2017-10-10T20:10:00Z'."\n"], + 'BandWidth' => ['description' => '每日上行峰值带宽。', 'type' => 'string', 'example' => '777.2727083333333'], + 'StatName' => ['description' => '统计数据属性名称。当DomainSwitch取值为on时,显示用户直播域名;为off或者不传值是显示用户Id。', 'type' => 'string', 'example' => 'push-live.aliyuncs.com'], + 'PeakTime' => ['description' => '每日峰值并发推流数的峰值时刻。日期格式按照 ISO8601 表示法,并使用 UTC 时间,格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2017-10-10T20:10:00Z'."\n" + ."\n"], + 'PublishStreamNum' => ['description' => '每日峰值并发推流数。', 'type' => 'integer', 'format' => 'int32', 'example' => '36'], + ], + ], + ], + ], + 'description' => '', ], ], ], @@ -43723,101 +34049,169 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], ], [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6CFDE7AB-571A-14EA-B072-989FF753****\\\\n\\",\\n \\"DescribeUpPeakPublishStreamDatas\\": {\\n \\"DescribeUpPeakPublishStreamData\\": [\\n {\\n \\"QueryTime\\": \\"2017-10-10T20:10:00Z\\\\n\\",\\n \\"BandWidth\\": \\"777.2727083333333\\",\\n \\"StatName\\": \\"push-live.aliyuncs.com\\",\\n \\"PeakTime\\": \\"2017-10-10T20:10:00Z\\\\n\\\\n\\",\\n \\"PublishStreamNum\\": 36\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => '查询用户的每日上行并发推流数峰值', + 'description' => '调用接口查询用户的每日上行并发推流数峰值。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUpPeakPublishStreamData'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeUpPeakPublishStreamData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', - 'title' => '删除导播台节目列表', - 'description' => '先通过[AddCasterEpisodeGroup接口](~~2848071~~)添加导播台节目列表,再调用本接口删除导播台节目列表。'."\n" + ], + 'DisableLiveRealtimeLogDelivery' => [ + 'summary' => '调用DisableLiveRealtimeLogDelivery暂停域名实时日志投递。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElive066BXV'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '暂停实时日志投递的播流域名。'."\n" + .'多个域名之间用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'Domain.NotFound', 'errorMessage' => 'Domain not found', 'description' => ''], + ], + ], + 'title' => '暂停域名实时日志投递', + 'description' => '先获取实时日志投递的播流域名,再调用本接口暂停域名实时日志投递。'."\n" + .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)配置。'."\n" + .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)配置。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddCasterEpisodeGroupContent' => [ - 'summary' => '添加导播台节目列表信息。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 特定错误码'."\n" + ."\n" + .'| HttpCode | 错误码 | 描述 |'."\n" + .'|--------------------------|-----------------|---------------------------|'."\n" + .'| 403 | Unauthorized | 没有开启实时投递授权。 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableLiveRealtimeLogDelivery'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:DisableLiveRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', + ], + 'DynamicUpdateWaterMarkStreamRule' => [ + 'summary' => '调用DynamicUpdateWaterMarkStreamRule动态更新水印。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveCT0GRQ'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域id。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ClientToken', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '用户生成的请求token。用于保证请求的幂等性。'."\n" - ."\n" - .'> 由客户端生成该参数值,要保证在不同请求间唯一,最大值不超过64个ASCII字符。', - 'type' => 'string', - 'required' => true, - 'example' => '8751ad99-2ddb-4aac-ad44-84b21102****', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'pull.aliyundoc.com'], ], [ - 'name' => 'Content', + 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => '设置导播台节目属性。JSON字符串格式。参数采用首字母大写驼峰格式。属性信息说明如下:'."\n" - .'- **CallbackUrl**:用户回调地址。'."\n" - .'- **SideOutputUrl**: 用户自定义旁路输出地址。'."\n" - .'- **RepeatNum**:重复次数。0表示不循环,-1表示无限循环。'."\n" - .'- **StartTime**:起始时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'- **DomainName**:域名。'."\n" - .'- **Items**:节目列表。'."\n" - .' - **ItemName**:节目名称。'."\n" - .' - **VodUrl**:点播文件地址,当且仅当资源为文件视频,且视频文件未导入素材库时使用,支持MP4、FLV、TS格式。'."\n" - ."\n" - .' ', - 'type' => 'string', - 'required' => true, - 'example' => '{"CallbackUrl":"http://example.aliyundoc.com/callBackLive","SideOutputUrl":"rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****","DomainName":"developer.aliyundoc.com ","StartTime":"2018-03-26T16:00:00Z","RepeatNum":-1,"Items":[{"ItemName":"节目1","VodUrl":"http://learn.aliyundoc.com"},{"ItemName":"节目2","VodUrl":"http://demo.aliyundoc.com"}]}', - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'Stream', + 'in' => 'query', + 'schema' => ['description' => '水印流名称。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => ['description' => '水印模板ID,可调用[DescribeLiveStreamWatermarks](~~2848102~~)接口获取可用的水印模板ID。'."\n" + .'>此参数TemplateId用于替换直播过程中的水印模板ID。', 'type' => 'string', 'required' => true, 'example' => '749b7594-86d6-37b1-513b-e1e19845****'], ], ], 'responses' => [ @@ -43825,87 +34219,50 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ItemIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ItemId' => [ - 'description' => '节目ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '节目ID。', - 'type' => 'string', - 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****', - ], - ], - ], - ], - 'ProgramId' => [ - 'description' => '节目单ID。可作为创建或添加节目单项,删除节目单项,查询节目单项,编辑节目单,删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68X****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BE9407FF-F897-4DBD-338D-98A750AD805F'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'IncorrectStartTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidClientToken.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ItemIds\\": {\\n \\"ItemId\\": [\\n \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\"\\n ]\\n },\\n \\"ProgramId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68X****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ProgramId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68XX876\\",\\n \\"ItemIds\\": [\\n \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\",\\n \\"21926b36-7dd2-4fde-ae25-51b5bc98765t\\"\\n ]\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68X****\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e****\\n\\t21926b36-7dd2-4fde-ae25-51b5bc98****\\n\\t\\n","errorExample":"Content 参数格式示例\\n {\\n \\"StartTime\\": \\"2018-04-02T19:00:00Z\\",\\n \\"DomainName\\": \\"XXX.XXX.XXX\\",\\n \\"RepeatNum\\":3,\\n \\"SideOutputUrl\\":\\"rtmp://XXXX/XXXX/XXXX\\",\\n \\"CallbackUrl\\":\\"http://XXXXXX/XXXXXXX\\",\\n \\"Items\\": [\\n {\\n \\"ItemName\\": \\"节目1\\",\\n \\"VodUrl\\": \\"http://XXXX/XXXXXX1.flv\\"\\n },\\n {\\n \\"ItemName\\": \\"节目2\\",\\n \\"VodUrl\\": \\"http://XXXX/XXXXXX2.mp4\\"\\n }\\n ]\\n }"}]', - 'title' => '添加导播台节目列表', - 'description' => '先创建导播台和添加导播台节目列表,再调用接口添加导播台节目列表信息。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" - .' '."\n" + 'title' => '动态更新水印', + 'description' => '动态更新水印是指在直播过程中替换水印模板ID。'."\n" + .'调用本接口更新水印前需准备用于替换的水印模板ID,用于定义本接口中**TemplateId**参数。您可以调用[DescribeLiveStreamWatermarks](~~2848102~~)接口获取可用的水印模板ID。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AddCasterProgram' => [ - 'summary' => '添加导播台节目单。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DynamicUpdateWaterMarkStreamRule'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:DynamicUpdateWaterMarkStreamRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BE9407FF-F897-4DBD-338D-98A750AD805F\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\nBE9407FF-F897-4DBD-338D-98A750AD805F\\r\\n","errorExample":""}]', + ], + 'EditPlaylist' => [ + 'summary' => '编辑节目单。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -43913,130 +34270,31 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域id。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Episode', + 'name' => 'ProgramId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '节目单信息。', - 'type' => 'array', - 'items' => [ - 'description' => '节目单信息。', - 'type' => 'object', - 'properties' => [ - 'ComponentId' => [ - 'description' => '组件列表。按照元素顺序由下而上排列。'."\n" - .'>当Episode.N.EpisodeType为**Component**时,本参数有用且必传。'."\n" - .'>'."\n" - ."\n" - .' 当节点类型为**Resource**时,表示组件与视频源绑定并同步切换。', - 'type' => 'array', - 'items' => [ - 'description' => '组件ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf931826****', - ], - 'required' => false, - 'example' => '[ "a2b8e671-2fe5-4642-a2ec-bf931826****", "a2b8e671-2fe5-4642-a2ec-28374657****"]', - 'maxItems' => 10, - ], - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .' ', - 'type' => 'string', - 'required' => false, - 'example' => '2016-06-29T10:02:00Z', - ], - 'EpisodeName' => [ - 'description' => '节目名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'program_name_1', - ], - 'EpisodeType' => [ - 'description' => '节点类型。 '."\n" - .' '."\n" - .'- **Resource**:视频源。如果选择Resource类型,必须同时设置请求参数Episode.N.ResourceId和Episode.N.SwitchType。'."\n" - .'- **Component**:组件。 如果选择Component类型,必须同时设置请求参数Episode.N.ComponentId.N。'."\n" - .' ', - 'type' => 'string', - 'required' => false, - 'example' => 'Resource', - ], - 'ResourceId' => [ - 'description' => '视频源ID。'."\n" - .'>当Episode.N.EpisodeType为**Resource**时,本参数有用且必传。'."\n" - .'> '."\n" - .' 当Episode.N.EpisodeType为**Component**时,本参数不可用。'."\n" - ."\n" - .'如果您通过[AddCasterVideoResource接口](~~60250~~)添加导播台视频源,请查看AddCasterVideoResource接口调用返回的参数ResourceId值。'."\n" - .' '."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'StartTime' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .' ', - 'type' => 'string', - 'required' => false, - 'example' => '2016-06-29T09:00:00Z', - ], - 'SwitchType' => [ - 'description' => '切换策略。取值:'."\n" - .'>当Episode.N.EpisodeType为**Resource**时,本参数才有用。'."\n" - .'>'."\n" - .' '."\n" - .'- **TimeFirst**:时间优先,直播类视频源只允许采用时间优先。 '."\n" - .'- **ContentFirst**:内容优先。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TimeFirst', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 100, - ], + 'schema' => ['description' => '节目单ID。如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], [ - 'name' => 'CasterId', + 'name' => 'ProgramItems', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '节目单项输入列表。为JSON字符串,更多信息,请参见**InputProgramItem**。', 'type' => 'string', 'required' => true, 'example' => '[{"ItemName":"item1","ResourceType":"vod","ResourceValue":"5f8809f2-3352-4d1f-a8f7-86f9429f****"}, {"ItemName": "item2","ResourceType": "vod","ResourceValue": "e7411c0b-dd98-4c61-a545-f8bfba6c****"}]'], + ], + [ + 'name' => 'ProgramConfig', + 'in' => 'query', + 'schema' => ['description' => '节目单项配置。更多信息,请参见**ProgramConfig**。', 'type' => 'string', 'required' => false, 'example' => '[{"RepeatNumber":"0","ProgramName":"my program"}]'], ], ], 'responses' => [ @@ -44044,237 +34302,280 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EpisodeIds' => [ + 'CasterId' => ['description' => '导播台ID。可作为添加回调和添加虚拟演播厅布局的请求参数。', 'type' => 'string', 'example' => '0e94d1f4-1a65-445c-9dcf-de8b3b8d****'], + 'Items' => [ + 'description' => '添加节目单项信息列表。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'EpisodeId' => [ - 'description' => '节目ID列表,列表中元素顺序和传入节目顺序保持一致。', + 'FailedItems' => [ + 'description' => '添加失败的节目单项列表。', 'type' => 'array', 'items' => [ + 'description' => '添加失败的节目单项列表。', 'type' => 'object', 'properties' => [ - 'EpisodeId' => [ - 'description' => '节目组ID。可作为修改导播台节目单,查询导播台节目单,删除导播台节目,修改导播台节目的请求参数。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], + 'ItemId' => ['description' => '节目单项ID。', 'type' => 'string', 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****'], + 'ItemName' => ['description' => '节目单项名称。', 'type' => 'string', 'example' => 'item2'], + ], + ], + ], + 'SuccessItems' => [ + 'description' => '添加成功的节目单项列表。', + 'type' => 'array', + 'items' => [ + 'description' => '添加成功的项目列表。', + 'type' => 'object', + 'properties' => [ + 'ItemId' => ['description' => '节目单项ID。', 'type' => 'string', 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****'], + 'ItemName' => ['description' => '节目单项名称。', 'type' => 'string', 'example' => 'item1'], ], ], ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], + 'ProgramId' => ['description' => '节目单ID。可作为删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'SwitchTypeInvalid.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectStartTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectEndTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'EpisodeConflict.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.EndTime', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ProgramId无效,请检查后重试。'], + ['errorCode' => 'PlayListIsEmpty', 'errorMessage' => '%s, please check and try again later.', 'description' => '播放列表为空,请检查后重试。'], + ['errorCode' => 'MissInputParams', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'IncorrectPlaylistStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Playlist正在使用中,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], ], 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidResource.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidComponent.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList不存在,请检查后重试。'], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EpisodeIds\\": {\\n \\"EpisodeId\\": [\\n {\\n \\"EpisodeId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n [ \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\", \\"16A96B9A-F203-4EC5-8E43-CB92E688****\\" ]\\n \\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '添加导播台节目单', - 'description' => '请先创建导播台,添加导播台视频资源后再调用本接口添加导播台节目单。本接口目前只支持视频源和组件两种节点类型。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" + 'title' => '编辑播放列表', + 'description' => '本接口为全量编辑,主要用于编辑配置信息或替换大量节目单项。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' >请求参数中的N表示第几个的意思。例如:
Episode.N.EpisodeName表示传入第几个节目名称。Episode.1.EpisodeName表示传入第1个节目名称,Episode.2.EpisodeName表示传入第2个节目名称。'."\n", + 'requestParamsDescription' => '### InputProgramItem'."\n" + .'|参数名称|示例值|类型|描述|'."\n" + .'|--------|--------|--------|--------|'."\n" + .'|ItemName|item1|String|节目单项名称。|'."\n" + .'|ResourceType|vod|String|资源类型。取值:
**vod**,暂时只支持点播资源。|'."\n" + .'|ResourceValue|5f8809f2-3352-4d1f-a8f7-86f9429f****|String|资源ID。|'."\n" + ."\n" + .'### ProgramConfig'."\n" + .'|参数名称|示例值|类型|描述|'."\n" + .'|--------|--------|--------|--------|'."\n" + .'|RepeatNumber|0|Integer|播放完后重复继续播放的次数。取值:
**0**(默认值):不重复播放。
**-1**:一直循环重复。
其他正整数:播放完后重复继续播放的次数。|'."\n" + .'|ProgramName|myprogram|String|节目单名称。|', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeCasterProgram' => [ - 'summary' => '查询导播台节目单。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EditPlaylist'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:EditPlaylist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"0e94d1f4-1a65-445c-9dcf-de8b3b8d****\\",\\n \\"Items\\": {\\n \\"FailedItems\\": [\\n {\\n \\"ItemId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ItemName\\": \\"item2\\"\\n }\\n ],\\n \\"SuccessItems\\": [\\n {\\n \\"ItemId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ItemName\\": \\"item1\\"\\n }\\n ]\\n },\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n \\n \\n item2\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n \\n \\n item1\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n \\n \\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 0e94d1f4-1a65-445c-9dcf-de8b3b8d****\\n","errorExample":""}]', + ], + 'EditShowAndReplace' => [ + 'summary' => '添加剪辑任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '53200b81-b761-4c10-842a-a0726d97****'], ], [ - 'name' => 'EpisodeId', + 'name' => 'ShowId', 'in' => 'query', - 'schema' => [ - 'description' => '节目ID。', - 'type' => 'string', - 'required' => false, - 'example' => '1872639A-F203-4EC5-8E43-CB92E68F****', - ], + 'schema' => ['description' => '需要剪辑的节目ID。'."\n" + .'>通过查看[AddShowIntoShowList](~~2848051~~)接口的返回参数获取ShowId值。', 'type' => 'string', 'required' => true, 'example' => '42200b81-b761-4c10-842a-a0726d97****'], ], [ - 'name' => 'EpisodeType', + 'name' => 'UserData', 'in' => 'query', - 'schema' => [ - 'description' => '节点类型。取值:'."\n" - .' '."\n" - .'- **Resource**:视频源。'."\n" - .'- **Component**:组件。', - 'type' => 'string', - 'required' => false, - 'example' => 'Resource', - ], + 'schema' => ['description' => '用户信息。', 'type' => 'string', 'required' => false, 'example' => '900a2b2r8-13c2-****-88f2-75e4a07c1ed9'], + ], + [ + 'name' => 'StorageInfo', + 'in' => 'query', + 'schema' => ['description' => '存储信息。描述:'."\n" + ."\n" + .'- **StorageLocation**:用户点播存储地址。'."\n" + .'- **FileName**:用户自定义文件名。'."\n" + ."\n" + .'>剪辑存储地址必须是用户同一账户下的点播存储地址,获取点播存储地址请参见[存储管理](~~86097~~)。', 'type' => 'string', 'required' => false, 'example' => '{ "StorageLocation":"***bucket***", "FileName":"EditFile****.mp4" }'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。 ', - 'type' => 'string', - 'required' => false, - 'example' => '2016-06-29T09:00:00Z', - ], + 'schema' => ['description' => '剪辑开始时间,单位:秒。'."\n" + ."\n" + .'> - 剪辑时间取值范围为0到节目总时长。- 默认从点播文件开头开始剪辑,取值:0.0。'."\n" + .'> - 如果您想要剪辑一个点播文件,从第2秒到第5秒,那么StartTime取值为2.0,EndTime取值为5.0。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '2.0'], ], [ 'name' => 'EndTime', 'in' => 'query', + 'schema' => ['description' => '剪辑结束时间,单位:秒。'."\n" + ."\n" + .'> - 剪辑时间取值范围为0到节目总时长。'."\n" + .'> - 默认取值为点播文件结束时长,取值不可超出节目的总时长。'."\n" + .'> - 如果您想要剪辑一个点播文件,从第2秒到第5秒,那么StartTime取值为2.0,EndTime取值为5.0。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '5.0'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2016-06-29T10:00:00Z', + 'type' => 'object', + 'properties' => [ + 'JobInfo' => ['description' => '任务信息,包含:'."\n" + ."\n" + .'- **vodId**:点播文件ID。'."\n" + ."\n" + .'- **mediaid**:媒体文件ID。'."\n" + ."\n" + .'- **jobId**:任务ID。', 'type' => 'string', 'example' => '{ "vodId": "3e34733b40b9a96ccf5c1ff6f69****", "mediaid": "eb1861d2c9a842340e989dd56****", "jobId": "7d2fbc380b0e08e55fe98733764****" }'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数VodUrl无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ], [ - 'name' => 'PageNum', - 'in' => 'query', - 'schema' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '5', + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'RequestForbiddenForIce', 'errorMessage' => '%s, please try again later.', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'title' => '添加剪辑任务', + 'description' => '本接口支持指定CasterId和ShowId添加剪辑任务。'."\n" + .'添加剪辑任务成功不会自动通知,您可调用[GetEditingJobInfo](~~2848059~~)接口查询任务状态信息。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EditShowAndReplace'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:EditShowAndReplace', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobInfo\\": \\"{ \\\\\\"vodId\\\\\\": \\\\\\"3e34733b40b9a96ccf5c1ff6f69****\\\\\\", \\\\\\"mediaid\\\\\\": \\\\\\"eb1861d2c9a842340e989dd56****\\\\\\", \\\\\\"jobId\\\\\\": \\\\\\"7d2fbc380b0e08e55fe98733764****\\\\\\" }\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":" \\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\n 3e34733b40b9a96ccf5c1ff6f69****\\n eb1861d2c9a842340e989dd56****\\n 7d2fbc380b0e08e55fe98733764****\\n\\n","errorExample":""}]', + ], + 'EffectCasterUrgent' => [ + 'summary' => '切换导播台备播。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PageSize', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '每页节目数量。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Status', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '节目状态。 取值:'."\n" - .' '."\n" - .'- **0**:未播放。'."\n" - .'- **1**:播放中。'."\n" - .'- **2**:播放完毕。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****'], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => ['description' => '场景ID,PGM场景时有效。'."\n" + ."\n" + .'您可以通过[DescribeCasterScenes](~~2848039~~)接口查询导播台场景ID。', 'type' => 'string', 'required' => true, 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****'], ], ], 'responses' => [ @@ -44282,175 +34583,68 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。', - 'type' => 'string', - 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****', - ], - 'Episodes' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Episode' => [ - 'description' => '节点列表。', - 'type' => 'array', - 'items' => [ - 'description' => '节点列表。', - 'type' => 'object', - 'properties' => [ - 'ComponentIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ComponentId' => [ - 'description' => '组件列表。', - 'type' => 'array', - 'items' => [ - 'description' => '组件列表。', - 'type' => 'string', - 'example' => '["1872639A-F203-4EC5-8E43-CB929282****" ]', - ], - ], - ], - ], - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2016-06-29T10:02:00Z', - ], - 'EpisodeId' => [ - 'description' => '节目ID。', - 'type' => 'string', - 'example' => '1872639A-F203-4EC5-8E43-CB92E68F****', - ], - 'EpisodeName' => [ - 'description' => '节目名称。', - 'type' => 'string', - 'example' => 'program_name_1', - ], - 'EpisodeType' => [ - 'description' => '节点类型。 取值:'."\n" - .'- **Resource**:视频源。'."\n" - .'- **Component**:组件。', - 'type' => 'string', - 'example' => 'Resource', - ], - 'ResourceId' => [ - 'description' => '视频源ID。', - 'type' => 'string', - 'example' => '1872639A-F203-4EC5-8E43-CB92E837****', - ], - 'StartTime' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2016-06-29T09:00:00Z', - ], - 'Status' => [ - 'description' => '节目状态。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'SwitchType' => [ - 'description' => '切换策略。取值: '."\n" - ."\n" - .'- **TimeFirst**:时间优先,直播节目只允许采用时间优先。 '."\n" - .'- **ContentFirst**:内容优先。'."\n" - .' '."\n" - .' ', - 'type' => 'string', - 'example' => 'TimeFirst', - ], - ], - ], - ], - ], - ], - 'ProgramEffect' => [ - 'description' => '启用标志。 '."\n" - .' '."\n" - .'- **0**:不启用 。'."\n" - .'- **1**:启用。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ProgramName' => [ - 'description' => '节目单名称。', - 'type' => 'string', - 'example' => 'programs_name', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidPageSize.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidPageNum.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SceneId无效,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态不支持,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态为空闲,请检查后重试。'], + ['errorCode' => 'IncorrectChannel.Disable', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Channel处于不可设置状态,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidUrgentMaterial.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '备播素材不存在,请检查后重试。'], + ['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene不存在,请检查后重试。'], + ['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Status', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"Episodes\\": {\\n \\"Episode\\": [\\n {\\n \\"ComponentIds\\": {\\n \\"ComponentId\\": [\\n \\"[\\\\\\"1872639A-F203-4EC5-8E43-CB929282****\\\\\\" ]\\"\\n ]\\n },\\n \\"EndTime\\": \\"2016-06-29T10:02:00Z\\",\\n \\"EpisodeId\\": \\"1872639A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"EpisodeName\\": \\"program_name_1\\",\\n \\"EpisodeType\\": \\"Resource\\",\\n \\"ResourceId\\": \\"1872639A-F203-4EC5-8E43-CB92E837****\\",\\n \\"StartTime\\": \\"2016-06-29T09:00:00Z\\",\\n \\"Status\\": 0,\\n \\"SwitchType\\": \\"TimeFirst\\"\\n }\\n ]\\n },\\n \\"ProgramEffect\\": 1,\\n \\"ProgramName\\": \\"programs_name\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n1872639A-F203-4EC5-8E43-CB92E68F****\\nprograms_name\\n1\\n\\n 1872639A-F203-4EC5-8E43-CB92E68F****\\n Resource\\n program_name_1\\n 1872639A-F203-4EC5-8E43-CB92E837****\\n 1872639A-F203-4EC5-8E43-CB929282****\\n 2016-06-29T09:00:00Z\\n 2016-06-29T10:02:00Z\\n 120\\n TimeFirst\\n\\n\\n 1872639A-F203-4EC5-8E43-CB92E687****\\n Component\\n 1872639A-F203-4EC5-8E43-CB625364****\\n 2016-06-29T19:02:00Z\\n 2016-06-29T19:04:00Z\\n\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ProgramId\\":\\"1872639A-F203-4EC5-8E43-CB92E68F8378\\",\\n \\"ProgramName\\": \\"programs_name\\",\\n \\"Episodes\\": [\\n {\\n \\"EpisodeId\\":\\"1872639A-F203-4EC5-8E43-CB92E68F8732\\",\\n \\"EpisodeType\\":\\"Resource\\",\\n \\"EpisodeName\\": \\"program_name_1\\",\\n \\"ResourceId\\":\\"1872639A-F203-4EC5-8E43-CB92E8374827\\",\\n \\"ComponentIds\\":[\\n \\"1872639A-F203-4EC5-8E43-CB9292827362\\"\\n ],\\n \\"StartTime\\": \\"2016-06-29T19:00:00Z\\",\\n \\"EndTime\\": \\"2016-06-29T19:02:00Z\\",\\n \\"Duration\\": 120.0,\\n \\"SwitchType\\": \\"TimeFirst\\"\\n },\\n {\\n \\"EpisodeId\\":\\"1872639A-F203-4EC5-8E43-CB92E6873726\\",\\n \\"EpisodeType\\":\\"Component\\",\\n \\"ComponentIds\\":[\\n \\"1872639A-F203-4EC5-8E43-CB6253647382\\"\\n ],\\n \\"StartTime\\": \\"2016-06-29T19:02:00Z\\",\\n \\"EndTime\\": \\"2016-06-29T19:04:00Z\\",\\n }\\n ]\\n}"}]', - 'title' => '查询导播台节目单', - 'description' => '调用本接口查询导播台节目单,本接口目前支持的节点类型为视频源和组件。'."\n" - ."\n" + 'title' => '切换导播台备播', + 'description' => '调用本接口将指定场景画面紧急切换至备播视频,限制仅用于PGM场景的备播切换。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyCasterProgram' => [ - 'summary' => '修改导播台节目单。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EffectCasterUrgent'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:EffectCasterUrgent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n","errorExample":""}]', + ], + 'EffectCasterVideoResource' => [ + 'summary' => '更新导播台备播片。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -44458,124 +34652,37 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域id。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Episode', + 'name' => 'CasterId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '节目信息。', - 'type' => 'array', - 'items' => [ - 'description' => '节目信息。', - 'type' => 'object', - 'properties' => [ - 'ComponentId' => [ - 'description' => '组件列表。按照元素顺序由下而上排列,组件将与视频源同步切换'."\n" - ."\n" - .'- 当节点类型为**Component**时,本参数才有用且必传。'."\n" - .'- 当节点类型为**Resource**时,表示组件与视频源绑定并同步切换。', - 'type' => 'array', - 'items' => [ - 'description' => '组件列表。按照元素顺序由下而上排列,组件将与视频源同步切换'."\n" - ."\n" - .'- 当节点类型为**Component**时,本参数才有用且必传。'."\n" - .'- 当节点类型为**Resource**时,表示组件与视频源绑定并同步切换。', - 'type' => 'string', - 'required' => false, - 'example' => '["a2b8e671-2fe5-4642-a2ec-bf93888****" ]', - ], - 'required' => false, - 'example' => '["a2b8e671-2fe5-4642-a2ec-bf93888****" ]', - 'maxItems' => 10, - ], - 'EndTime' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2016-06-29T10:04:00Z', - ], - 'EpisodeId' => [ - 'description' => '节目ID。如果您通过[AddCasterEpisode接口](~~2848068~~)添加导播台节目,请查看AddCasterEpisode接口调用返回的参数EpisodeId值。', - 'type' => 'string', - 'required' => false, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938887****', - ], - 'EpisodeName' => [ - 'description' => '节目名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'program_name_2', - ], - 'EpisodeType' => [ - 'description' => '节目类型。取值:'."\n" - ."\n" - .'- **Resource**:视频源。'."\n" - .'- **Component**:组件。', - 'type' => 'string', - 'required' => false, - 'example' => 'Resource', - ], - 'ResourceId' => [ - 'description' => '视频源ID。 如果您通过[AddCasterVideoResource接口](~~2848020~~)添加导播台视频源,请查看AddCasterVideoResource接口调用返回的参数ResourceId值。', - 'type' => 'string', - 'required' => false, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938887****', - ], - 'StartTime' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2016-06-29T09:02:00Z', - ], - 'SwitchType' => [ - 'description' => '切换策略。 节点类型为**Resource**视频源时有效。'."\n" - .' '."\n" - .'- **TimeFirst**:时间优先,直播类视频源只允许采用时间优先。 '."\n" - .'- **ContentFirst**:内容优先。', - 'type' => 'string', - 'required' => false, - 'example' => 'TimeFirst', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 100, - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****'], ], [ - 'name' => 'CasterId', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '场景ID。', 'type' => 'string', 'required' => true, 'example' => '05ab713c-676e-49c0-96ce-cc408da1****'], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => ['description' => '资源ID。如果您通过[DescribeCasterChannels接口](~~2848046~~)查询导播台通道,请查看DescribeCasterChannels接口调用返回的参数ResourceId值。', 'type' => 'string', 'required' => true, 'example' => 'f096e8d6-0319-4c96-82bc-ecbc79cf****'], ], ], 'responses' => [ @@ -44583,148 +34690,90 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'SwitchTypeInvalid.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectStartTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectEndTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectEpisodeStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'EpisodeConflict.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态为空闲,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.ConfigError', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene配置错误,请检查后重试。'], + ['errorCode' => 'InvalidResourceId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ResourceId无效,请检查后重试。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SceneId无效,请检查后重试。'], ], [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidResource.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidEpisode.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidComponent.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], + ['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene不存在,请检查后重试。'], + ['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '修改导播台节目单', - 'description' => '先通过[AddCasterProgram接口](~~2848074~~)添加导播台节目单,再调用本接口修改导播台节目单。本接口目前支持的节目类型为视频源和组件。'."\n" - ."\n\n" + 'title' => '更新导播台备播片', + 'description' => '调用本接口将视频资源生效至指定场景,场景引用该视频资源时有效。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '请求参数必须传一个要修改的节目内容,即至少一个Episode属性。'."\n" - .' > 请求参数中的N表示第几个的意思。例如:
Episode.N.EpisodeName表示传入第几个节目名称。Episode.1.EpisodeName表示传入第1个节目名称,Episode.2.EpisodeName表示传入第2个节目名称。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteCasterProgram' => [ - 'summary' => '删除导播台节目单。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EffectCasterVideoResource'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:EffectCasterVideoResource', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n","errorExample":""}]', + ], + 'EnableLiveRealtimeLogDelivery' => [ + 'summary' => '调用EnableLiveRealtimeLogDelivery开启域名实时日志投递。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATURElive066BXV'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], + 'schema' => ['description' => '开启实时日志投递服务播流域名。'."\n" + ."\n" + .'多个域名之间用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -44732,66 +34781,57 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。可作为添加导播台节目、删除导播台节目、修改导播台节目的请求参数。', - 'type' => 'string', - 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''], ], 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'Domain.NotFound', 'errorMessage' => 'Domain not found', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '删除导播台节目单', - 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口删除导播台节目单。'."\n" - ."\n" + 'title' => '开启域名实时日志投递', + 'description' => '目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)配置。'."\n" + .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)配置。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddPlaylistItems' => [ - 'summary' => '添加节目单项。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 特定错误码'."\n" + .'| 错误代码 | HTTP状态码 | 含义 |'."\n" + .'|--------------------------|-------------------------------------------|-----------|'."\n" + .'| Unauthorized | 403 | 没有开启实时投递授权。 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableLiveRealtimeLogDelivery'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:EnableLiveRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', + ], + 'ForbidLiveStream' => [ + 'summary' => '禁止某条流的推送,可以预设某个时刻将流恢复。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -44799,76 +34839,69 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', + 'operationType' => 'update', + 'riskType' => 'high', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CasterId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '导播台ID。'."\n" - ."\n" - .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" - ."\n" - .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" - ."\n" - .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。'."\n" - ."\n\n" - .'导播台需满足如下配置:'."\n" - .'- **NormType**:**3**。您需要提前创建好轻量级轮播型的导播台,可以调用**CreateCaster**接口创建导播台。'."\n" - .'- **CasterTemplate**:lp_noTranscode。'."\n" - .'- **channelEnable**:0。'."\n" - .'- **programEffect**:1。', - 'type' => 'string', - 'required' => true, - 'example' => '0e94d1f4-1a65-445c-9dcf-de8b3b8d****', - ], + 'schema' => ['description' => '推流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'ProgramItems', + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '推流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '推流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + [ + 'name' => 'LiveStreamType', 'in' => 'query', 'schema' => [ - 'description' => '节目单项输入列表。为JSON字符串,更多信息,请参见**InputProgramItem**。', + 'description' => '用于指定禁止推流或者播流。目前仅支持禁止推流:**publisher**。', 'type' => 'string', 'required' => true, - 'example' => '[{"ItemName":"item1","ResourceType":"vod","ResourceValue":"5f8809f2-3352-4d1f-a8f7-86f9429f****"}, {"ItemName": "item2","ResourceType": "vod","ResourceValue": "e7411c0b-dd98-4c61-a545-f8bfba6c****"}]', + 'enumValueTitles' => ['publisher' => '推流'], + 'example' => 'publisher', + 'enum' => ['publisher'], ], ], [ - 'name' => 'ProgramId', + 'name' => 'Oneshot', 'in' => 'query', 'schema' => [ - 'description' => '节目单ID。不填则默认创建一个新的节目单。', + 'description' => '是否只断流不加入黑名单。取值:'."\n" + ."\n" + .'- **yes**:只断流不加黑名单(支持上行推送或上行播流)。'."\n" + ."\n" + .'- **no**:断流加入黑名单。'."\n" + ."\n" + .'> 不填默认为no。', 'type' => 'string', 'required' => false, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + 'enumValueTitles' => ['no' => '断流加入黑名单', 'yes' => '只断流不加黑名单'], + 'example' => 'yes', + 'enum' => ['yes', 'no'], ], ], [ - 'name' => 'ProgramConfig', + 'name' => 'ResumeTime', 'in' => 'query', - 'schema' => [ - 'description' => '节目单项配置。若首次添加,传该参数进行初始化配置。更多信息,请参见**ProgramConfig**。', - 'type' => 'string', - 'required' => false, - 'example' => '[{"RepeatNumber":"0","ProgramName":"my program"}]', - ], + 'schema' => ['description' => '恢复流的时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> - 当**Oneshot**参数为**no**时,ResumeTime不传值时默认禁止直播流指定时间为6个月。'."\n" + .'> - 如果传值则可在ResumeTime指定的时间点解除限制,恢复直播流。', 'type' => 'string', 'required' => false, 'example' => '2015-12-01T10:37:00Z'], ], ], 'responses' => [ @@ -44876,188 +34909,77 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Items' => [ - 'description' => '添加节目单项信息列表。', - 'type' => 'object', - 'properties' => [ - 'FailedItems' => [ - 'description' => '添加失败的节目单项列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ItemId' => [ - 'description' => '节目单项ID。', - 'type' => 'string', - 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', - ], - 'ItemName' => [ - 'description' => '节目单项名称。', - 'type' => 'string', - 'example' => 'item1', - ], - ], - ], - ], - 'SuccessItems' => [ - 'description' => '添加成功的节目单项列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ItemId' => [ - 'description' => '节目单项ID。', - 'type' => 'string', - 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', - ], - 'ItemName' => [ - 'description' => '节目单项名称。', - 'type' => 'string', - 'example' => 'item2', - ], - ], - ], - ], - ], - ], - 'ProgramId' => [ - 'description' => '节目单ID。可作为删除节目单项,查询节目单项,编辑节目单,删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16BFE188-B193-4C3C-ADC5-79A7E31486EA'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'PlayListIsEmpty', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissInputParams', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidProgramId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'UserQuotaExceed', - 'errorMessage' => 'Quota exceeded: %s.', - ], - ], - [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidResumeTime.Malformed', 'errorMessage' => 'Specified parameter ResumeTime is not valid.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.Blacklist', 'errorMessage' => 'Exceed max blacklist count limit', 'description' => '超过黑名单最大数量'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Items\\": {\\n \\"FailedItems\\": [\\n {\\n \\"ItemId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ItemName\\": \\"item1\\"\\n }\\n ],\\n \\"SuccessItems\\": [\\n {\\n \\"ItemId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ItemName\\": \\"item2\\"\\n }\\n ]\\n },\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n \\n \\n item2\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n \\n \\n item2\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n \\n \\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', - 'title' => '添加播放列表项', - 'description' => '先创建导播台,添加导播台布局和导播台组件,再调用本接口添加节目单项。若没有创建过节目单,则直接创建。使用API创建导播台请参考[创建导播台](~~2848009~~)。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '### InputProgramItem'."\n" - ."\n" - .'|参数名称|示例值|类型|描述|'."\n" - .'|--------|--------|--------|--------|'."\n" - .'|ItemName|item1|String|节目单项名称。|'."\n" - .'|ResourceType|vod|String|资源类型。取值:
**vod**:阿里云视频点播资源。
**url**:第三方视频资源。|'."\n" - .'|ResourceValue|5f8809f2-3352-4d1f-a8f7-86f9429f****|String|当ResourceType为vod时,ResourceValue为媒资ID。
当ResourceType为URL时,ResourceValue为第三方视频URL。|'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16BFE188-B193-4C3C-ADC5-79A7E31486EA\\n","errorExample":""}]', + 'title' => '禁止直播流', + 'description' => '调用本接口禁止某条流的推送,可以预设某个时刻将流恢复。如果没有预设时间,请通过[ResumeLiveStream](~~2847831~~)接口恢复直播流。本接口目前仅支持publisher(主播推流)。'."\n" ."\n" - .'### ProgramConfig'."\n" + .'> - 本接口通过添加黑名单的方式禁止直播流,上限为10,000路,超出限制将禁用失败,请您注意统计当前禁用流的数量。请通过[DescribeLiveStreamsBlockList接口](~~2847825~~)查询禁用流数量。'."\n" + .'> - 若只中断直播流,而不加入黑名单,则不会占用黑名单中的10000 个名额。'."\n" ."\n" - .'|参数名称|示例值|类型|描述|'."\n" - .'|--------|--------|--------|--------|'."\n" - .'|RepeatNumber|0|Integer|播放完后重复继续播放的次数。取值:
**0**(默认值):不重复播放。
**-1**:一直循环重复。
其他正整数:播放完后重复继续播放的次数。|'."\n" - .'|ProgramName|myprogram|String|节目单名称。|', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeletePlaylistItems' => [ - 'summary' => '删除节目单项。', - 'methods' => [ - 'post', - 'get', + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ForbidLiveStream'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ForbidLiveStream', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetAllCustomTemplates' => [ + 'summary' => '获取全量自定义合流模板。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveI16NIW'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'ProgramId', - 'in' => 'query', - 'schema' => [ - 'description' => '节目单ID。如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ProgramItemIds', + 'name' => 'UserId', 'in' => 'query', - 'schema' => [ - 'description' => '节目单项ID列表。', - 'type' => 'string', - 'required' => true, - 'example' => '["c09f3d63-eacf-4fbf-bd48-a07a6ba7****","c10f3d63-eacf-4fbf-bd48-a07a6ba7****"]', - ], + 'schema' => ['description' => '用户ID。', 'type' => 'string', 'required' => false, 'example' => '25346073170691****'], ], ], 'responses' => [ @@ -45065,77 +34987,59 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ProgramId' => [ - 'description' => '节目单ID。可作为查询节目单项,编辑节目单,删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', - ], + 'CustomTemplates' => ['description' => '模板名和模板配置列表。', 'type' => 'string', 'example' => ' [{"templateConfig": "{\\"cdesc\\":\\"H264\\",\\"scale\\":\\"[3:4]\\",\\"gop\\":\\"1\\",\\"bframes\\":\\"1\\",\\"height\\":\\"1080\\"}","templateName": "custom1"},{"templateConfig": "{\\"ar\\":\\"44100\\",\\"cdesc\\":\\"H264\\",\\"scale\\":\\"[3:4]\\",\\"gop\\":\\"1\\",\\"bframes\\":\\"1\\",\\"height\\":\\"1080\\"}","templateName": "cus"}]'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4791648Q-813C-6254-865C-0ED913661230'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidProgramId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectPlaylistStatus.Inuse', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'PlayListIsEmpty', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'CustomTemplateInvalid', 'errorMessage' => '%s, please check and try again later.', 'description' => '自定义模板无效,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'PlayListNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', - 'title' => '删除播放列表项目', - 'description' => '先通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,再调用本接口删除节目单项。'."\n" + 'title' => '获取全量自定义合流模板', + 'description' => '通过调用本接口获取全量自定义合流模板。返回模板名和模板配置列表。'."\n" ."\n" .'## QPS限制'."\n" - ."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListPlaylistItems' => [ - 'summary' => '查询指定节目单下的节目单项。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAllCustomTemplates'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetAllCustomTemplates', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CustomTemplates\\": \\" [{\\\\\\"templateConfig\\\\\\": \\\\\\"{\\\\\\\\\\\\\\"cdesc\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"H264\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"scale\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"[3:4]\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"gop\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"bframes\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"height\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1080\\\\\\\\\\\\\\"}\\\\\\",\\\\\\"templateName\\\\\\": \\\\\\"custom1\\\\\\"},{\\\\\\"templateConfig\\\\\\": \\\\\\"{\\\\\\\\\\\\\\"ar\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"44100\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"cdesc\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"H264\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"scale\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"[3:4]\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"gop\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"bframes\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"height\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1080\\\\\\\\\\\\\\"}\\\\\\",\\\\\\"templateName\\\\\\": \\\\\\"cus\\\\\\"}]\\",\\n \\"RequestId\\": \\"4791648Q-813C-6254-865C-0ED913661230\\"\\n}","errorExample":""},{"type":"xml","example":"\\n [{\\"templateConfig\\": \\"{\\\\\\"cdesc\\\\\\":\\\\\\"H264\\\\\\",\\\\\\"scale\\\\\\":\\\\\\"[3:4]\\\\\\",\\\\\\"gop\\\\\\":\\\\\\"1\\\\\\",\\\\\\"bframes\\\\\\":\\\\\\"1\\\\\\",\\\\\\"height\\\\\\":\\\\\\"1080\\\\\\"}\\",\\"templateName\\": \\"custom1\\"},{\\"templateConfig\\": \\"{\\\\\\"ar\\\\\\":\\\\\\"44100\\\\\\",\\\\\\"cdesc\\\\\\":\\\\\\"H264\\\\\\",\\\\\\"scale\\\\\\":\\\\\\"[3:4]\\\\\\",\\\\\\"gop\\\\\\":\\\\\\"1\\\\\\",\\\\\\"bframes\\\\\\":\\\\\\"1\\\\\\",\\\\\\"height\\\\\\":\\\\\\"1080\\\\\\"}\\",\\"templateName\\": \\"cus\\"}]\\n 4791648Q-813C-6254-865C-0ED913661230\\n","errorExample":""}]', + ], + 'GetCustomTemplate' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -45146,42 +35050,18 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveI16NIW'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'ProgramId', - 'in' => 'query', - 'schema' => [ - 'description' => '节目单ID。如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ProgramItemIds', + 'name' => 'Template', 'in' => 'query', - 'schema' => [ - 'description' => '节目单项ID列表。用英文逗号(,)隔开。'."\n" - .'如果传该参数,则只返回指定节目单项的信息。若不传,则返回该节目单所有节目单项的信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'c10f3d63-eacf-4fbf-bd48-a07a6ba7****,c09f3d63-eacf-4fbf-bd48-a07a6ba7****', - ], + 'schema' => ['description' => '模板名String,需要查询的自定义模板名。', 'type' => 'string', 'required' => true, 'example' => 'TestTemplate'], ], ], 'responses' => [ @@ -45189,160 +35069,89 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Total' => [ - 'description' => '节目单项数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9****', - ], - 'ProgramItems' => [ - 'description' => '节目单列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Index' => [ - 'description' => '编排索引。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ResourceType' => [ - 'description' => '资源类型。', - 'type' => 'string', - 'example' => 'vod', - ], - 'ProgramItemId' => [ - 'description' => '节目单项ID。', - 'type' => 'string', - 'example' => 'c10f3d63-eacf-4fbf-bd48-a07a6ba7****', - ], - 'ProgramId' => [ - 'description' => '节目单ID。可作为编辑节目单,删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - 'ProgramItemName' => [ - 'description' => '节目单项名称。', - 'type' => 'string', - 'example' => 'playlistItem1', - ], - 'ResourceValue' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'example' => 'asdfasdf8as9df8sa9df89****', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BC1E78D3-FA8B-4457-DEE2-6093E1232254'], + 'CustomTemplate' => ['description' => '模板配置。', 'type' => 'string', 'example' => '{height:1080,scale:[16:9],gop:60,bframes:30,cdesc:h264}'], + 'Template' => ['description' => '模板名。', 'type' => 'string', 'example' => 'TestTemplate'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidProgramId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'CustomTemplateInvalid', 'errorMessage' => '%s, please check and try again later.', 'description' => '自定义模板无效,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'PlayListNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 1,\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9****\\",\\n \\"ProgramItems\\": [\\n {\\n \\"Index\\": 1,\\n \\"ResourceType\\": \\"vod\\",\\n \\"ProgramItemId\\": \\"c10f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"ProgramItemName\\": \\"playlistItem1\\",\\n \\"ResourceValue\\": \\"asdfasdf8as9df8sa9df89****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5c6a2a0d-f228-4a64-af62-20e91b9****\\n \\n playlistItem1\\n asdfasdf8as9df8sa9df89****\\n c10f3d63-eacf-4fbf-bd48-a07a6ba7****\\n 1\\n vod\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n \\n 1\\n","errorExample":""}]', - 'title' => '列出播放列表项', - 'description' => '先通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,再调用本接口查询指定节目单下的节目单项。'."\n" - ."\n" + 'title' => '获取自定义合流模板', + 'summary' => '获取合流自定义模板。', + 'description' => '先获取需要查询的自定义模板名,再调用本接口获取合流自定义模板。'."\n" + ."\n\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'EditPlaylist' => [ - 'summary' => '编辑节目单。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetCustomTemplate'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetCustomTemplate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC1E78D3-FA8B-4457-DEE2-6093E1232254\\",\\n \\"CustomTemplate\\": \\"{height:1080,scale:[16:9],gop:60,bframes:30,cdesc:h264}\\",\\n \\"Template\\": \\"TestTemplate\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BC1E78D3-FA8B-4457-DEE2-6093E1232254\\n {height:1080,scale:[16:9],gop:60,bframes:30,cdesc:h264}\\n \\n","errorExample":""}]', + ], + 'GetEdgeTranscodeJob' => [ + 'summary' => '查询边缘转码任务详情。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'ProgramId', - 'in' => 'query', - 'schema' => [ - 'description' => '节目单ID。如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ProgramItems', + 'name' => 'ClusterId', 'in' => 'query', - 'schema' => [ - 'description' => '节目单项输入列表。为JSON字符串,更多信息,请参见**InputProgramItem**。', - 'type' => 'string', - 'required' => true, - 'example' => '[{"ItemName":"item1","ResourceType":"vod","ResourceValue":"5f8809f2-3352-4d1f-a8f7-86f9429f****"}, {"ItemName": "item2","ResourceType": "vod","ResourceValue": "e7411c0b-dd98-4c61-a545-f8bfba6c****"}]', - ], + 'schema' => ['description' => '机房ID。', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******'], ], [ - 'name' => 'ProgramConfig', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '节目单项配置。更多信息,请参见**ProgramConfig**。', - 'type' => 'string', - 'required' => false, - 'example' => '[{"RepeatNumber":"0","ProgramName":"my program"}]', - ], + 'schema' => ['description' => '边缘转码任务ID。', 'type' => 'string', 'required' => true, 'example' => '****20b48fb04483915d4f2cd8ac****'], ], ], 'responses' => [ @@ -45350,181 +35159,101 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CasterId' => [ - 'description' => '导播台ID。可作为添加回调和添加虚拟演播厅布局的请求参数。', - 'type' => 'string', - 'example' => '0e94d1f4-1a65-445c-9dcf-de8b3b8d****', - ], - 'Items' => [ - 'description' => '添加节目单项信息列表。', + 'Job' => [ + 'description' => '边缘转码任务。', 'type' => 'object', 'properties' => [ - 'FailedItems' => [ - 'description' => '添加失败的节目单项列表。', - 'type' => 'array', - 'items' => [ - 'description' => '添加失败的节目单项列表。', - 'type' => 'object', - 'properties' => [ - 'ItemId' => [ - 'description' => '节目单项ID。', - 'type' => 'string', - 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', - ], - 'ItemName' => [ - 'description' => '节目单项名称。', - 'type' => 'string', - 'example' => 'item2', - ], - ], - ], - ], - 'SuccessItems' => [ - 'description' => '添加成功的节目单项列表。', - 'type' => 'array', - 'items' => [ - 'description' => '添加成功的项目列表。', - 'type' => 'object', - 'properties' => [ - 'ItemId' => [ - 'description' => '节目单项ID。', - 'type' => 'string', - 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', - ], - 'ItemName' => [ - 'description' => '节目单项名称。', - 'type' => 'string', - 'example' => 'item1', - ], - ], - ], - ], + 'CreateTime' => ['description' => '任务创建时间。', 'type' => 'string', 'example' => '2023-07-24T16:44:55Z'], + 'JobId' => ['description' => '任务ID。', 'type' => 'string', 'example' => '****20b48fb04483915d4f2cd8ac****'], + 'LastStartAt' => ['description' => '任务上一次启动的时间。', 'type' => 'string', 'example' => '2023-07-25T02:48:58Z'], + 'LastStopAt' => ['description' => '任务上一次停止的时间。', 'type' => 'string', 'example' => '2023-07-25T05:48:58Z'], + 'Name' => ['description' => '任务名称。', 'type' => 'string', 'example' => 'my_job'], + 'Status' => ['description' => '转码任务状态,枚举:'."\n" + .'- 0 未启动。'."\n" + .'- 1 运行中。', 'type' => 'string', 'example' => '0'], + 'StreamInput' => ['description' => '输入流地址。', 'type' => 'string', 'example' => 'rtmp://mydomain/app/stream1'], + 'StreamOutput' => ['description' => '输出流地址。', 'type' => 'string', 'example' => 'rtmp://testdomain/app/stream2'], + 'TemplateId' => ['description' => '任务使用的边缘转码模板ID。', 'type' => 'string', 'example' => '9b1571b513cb44f7a1ba6ae561ff****'], + 'TemplateName' => ['description' => '任务使用的边缘转码模板名。', 'type' => 'string', 'example' => 'my_template'], + 'Type' => ['description' => '边缘转码类型,枚举:'."\n" + .'- common,通用(普通+窄带高清1.0)。'."\n" + .'- nbhd-2,窄带高清2.0。'."\n" + .'- ultra-hd,超高清。', 'type' => 'string', 'example' => 'common'], ], ], - 'ProgramId' => [ - 'description' => '节目单ID。可作为删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidProgramId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'PlayListIsEmpty', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissInputParams', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectPlaylistStatus.Inuse', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], - 404 => [ - [ - 'errorCode' => 'PlayListNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '操作拒绝,请检查后重试。'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + [ + ['errorCode' => 'JobNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '任务不存在,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"0e94d1f4-1a65-445c-9dcf-de8b3b8d****\\",\\n \\"Items\\": {\\n \\"FailedItems\\": [\\n {\\n \\"ItemId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ItemName\\": \\"item2\\"\\n }\\n ],\\n \\"SuccessItems\\": [\\n {\\n \\"ItemId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ItemName\\": \\"item1\\"\\n }\\n ]\\n },\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n \\n \\n item2\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n \\n \\n item1\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n \\n \\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 0e94d1f4-1a65-445c-9dcf-de8b3b8d****\\n","errorExample":""}]', - 'title' => '编辑播放列表', - 'description' => '本接口为全量编辑,主要用于编辑配置信息或替换大量节目单项。'."\n" - ."\n" + 'title' => '查询边缘转码任务详情', + 'description' => '用户需要具有访问边缘转码服务的权限,才能正常调用本接口。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '### InputProgramItem'."\n" - .'|参数名称|示例值|类型|描述|'."\n" - .'|--------|--------|--------|--------|'."\n" - .'|ItemName|item1|String|节目单项名称。|'."\n" - .'|ResourceType|vod|String|资源类型。取值:
**vod**,暂时只支持点播资源。|'."\n" - .'|ResourceValue|5f8809f2-3352-4d1f-a8f7-86f9429f****|String|资源ID。|'."\n" - ."\n" - .'### ProgramConfig'."\n" - .'|参数名称|示例值|类型|描述|'."\n" - .'|--------|--------|--------|--------|'."\n" - .'|RepeatNumber|0|Integer|播放完后重复继续播放的次数。取值:
**0**(默认值):不重复播放。
**-1**:一直循环重复。
其他正整数:播放完后重复继续播放的次数。|'."\n" - .'|ProgramName|myprogram|String|节目单名称。|', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeletePlaylist' => [ - 'summary' => '删除整个节目单。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEdgeTranscodeJob'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'live:GetEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Job\\": {\\n \\"CreateTime\\": \\"2023-07-24T16:44:55Z\\",\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"LastStartAt\\": \\"2023-07-25T02:48:58Z\\",\\n \\"LastStopAt\\": \\"2023-07-25T05:48:58Z\\",\\n \\"Name\\": \\"my_job\\",\\n \\"Status\\": \\"0\\",\\n \\"StreamInput\\": \\"rtmp://mydomain/app/stream1\\",\\n \\"StreamOutput\\": \\"rtmp://testdomain/app/stream2\\",\\n \\"TemplateId\\": \\"9b1571b513cb44f7a1ba6ae561ff****\\",\\n \\"TemplateName\\": \\"my_template\\",\\n \\"Type\\": \\"common\\"\\n },\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 2023-07-24T16:44:55Z\\n ****20b48fb04483915d4f2cd8ac****\\n 2023-07-25T02:48:58Z\\n 2023-07-25T05:48:58Z\\n my_job\\n 0\\n rtmp://mydomain/app/stream1\\n rtmp://testdomain/app/stream2\\n 9b1571b513cb44f7a1ba6ae561ff****\\n my_template\\n common\\n \\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + ], + 'GetEdgeTranscodeTemplate' => [ + 'summary' => '查询边缘转码模板详情。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ProgramId', + 'name' => 'ClusterId', 'in' => 'query', - 'schema' => [ - 'description' => '节目单ID。如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['description' => '机房ID。', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******'], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => ['description' => '模板ID。', 'type' => 'string', 'required' => true, 'example' => '****a046-263c-3560-978a-fb287666****'], ], ], 'responses' => [ @@ -45532,68 +35261,72 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ProgramId' => [ - 'description' => '节目单ID。可作为查询节目单,启动节目单和停止节目单的请求参数。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], + 'Template' => [ + 'description' => '边缘转码模版。', + 'type' => 'object', + 'properties' => [ + 'Bitrate' => ['description' => '码率配置,有固定码率,码率随源(ws)2种。', 'type' => 'string', 'example' => '3000'], + 'Codec' => ['description' => '视频编码格式,枚举:'."\n" + .'- H.264。'."\n" + .'- H.265。', 'type' => 'string', 'example' => 'H.264'], + 'CreateTime' => ['description' => '模板创建时间。', 'type' => 'string', 'example' => '2023-07-25T02:48:58Z'], + 'Fps' => ['description' => '帧率配置,有固定帧率,帧率随源(ws)2种。', 'type' => 'string', 'example' => '30'], + 'Gop' => ['description' => '关键帧配置,有按帧配置,按秒配置,关键帧随源(ws)3种。', 'type' => 'string', 'example' => '2s'], + 'Name' => ['description' => '模版名称。', 'type' => 'string', 'example' => 'my_template'], + 'Resolution' => ['description' => '分辨率配置,有固定分辨率,分辨率随源(ws)2种。'."\n" + .'> 当使用固定分辨率,width/height取值为-1/-2时,则表示宽/高自适应。', 'type' => 'string', 'example' => '1920*1080'], + 'TemplateId' => ['description' => '模板ID。', 'type' => 'string', 'example' => '9b1571b513cb44f7a1ba6ae561ff****'], + 'Type' => ['description' => '边缘转码类型。', 'type' => 'string', 'example' => 'common'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IncorrectPlaylistStatus.Inuse', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidProgramId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], - 404 => [ - [ - 'errorCode' => 'PlayListNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '操作拒绝,请检查后重试。'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + [ + ['errorCode' => 'TemplateNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '模板不存在,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', - 'title' => '删除播放列表', - 'description' => '先通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,再调用本接口删除整个节目单。'."\n" + 'title' => '查询边缘转码模板详情', + 'description' => '- 本接口用于查询边缘转码模板详情。'."\n" ."\n" + .'- 用户需要具有访问边缘转码服务的权限,才能正常调用本接口。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ListPlaylist' => [ - 'summary' => '查询节目单。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEdgeTranscodeTemplate'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'live:GetEdgeTranscodeTemplate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"Template\\": {\\n \\"Bitrate\\": \\"3000\\",\\n \\"Codec\\": \\"H.264\\",\\n \\"CreateTime\\": \\"2023-07-25T02:48:58Z\\",\\n \\"Fps\\": \\"30\\",\\n \\"Gop\\": \\"2s\\",\\n \\"Name\\": \\"my_template\\",\\n \\"Resolution\\": \\"1920*1080\\",\\n \\"TemplateId\\": \\"9b1571b513cb44f7a1ba6ae561ff****\\",\\n \\"Type\\": \\"common\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n \\n","errorExample":""}]', + ], + 'GetEditingJobInfo' => [ + 'summary' => '查询剪辑任务信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -45604,54 +35337,30 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'ProgramId', - 'in' => 'query', - 'schema' => [ - 'description' => '节目单ID。如果填此参数,则返回该节目单信息。若不填,默认返回该用户所有节目单信息。'."\n" - .'如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', - 'type' => 'string', - 'required' => false, - 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Page', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '查询分页页数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '53200b81-b761-4c10-842a-a0726d97****'], ], [ - 'name' => 'PageSize', + 'name' => 'ShowId', 'in' => 'query', - 'schema' => [ - 'description' => '查询分页每页数量。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => '需要查询的节目ID。'."\n" + .'>通过查看[AddShowIntoShowList](~~370861~~)接口的返回参数获取ShowId值。', 'type' => 'string', 'required' => false, 'example' => '72200b81-b761-4c10-842a-a0726d97****'], ], ], 'responses' => [ @@ -45659,407 +35368,297 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ProgramList' => [ - 'description' => '节目单信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CasterId' => [ - 'description' => '节目单对应导播台ID。可作为添加虚拟演播厅布局、删除虚拟演播厅布局、修改虚拟演播厅布局和查询虚拟演播厅布局的请求参数。', - 'type' => 'string', - 'example' => 'casdfasdfasfdasdflkasjdflaj****', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'ProgramId' => [ - 'description' => '节目单ID。', - 'type' => 'string', - 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****', - ], - 'ProgramName' => [ - 'description' => '节目单名称。', - 'type' => 'string', - 'example' => 'playlist1', - ], - 'RepeatNumber' => [ - 'description' => '播放完后继续重复播放的次数。取值:'."\n" - .'- **0**(默认值):不重复播放。'."\n" - .'- **-1**:一直循环重复。'."\n" - .'- 其他正整数:播放完1遍后继续重复播放的次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Status' => [ - 'description' => '节目单状态。取值:'."\n" - .'- **0**:停止。'."\n" - .'- **1**:运行。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', - ], - 'Total' => [ - 'description' => '节目单数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'CasterId' => ['description' => '导播台ID。', 'type' => 'string', 'example' => '53200b81-b761-4c10-842a-a0726d97****'], + 'EditingTasksInfo' => ['description' => '剪辑任务信息。包含:'."\n" + ."\n" + .'- **OutputVodId**:输出的Vod文件ID。'."\n" + ."\n" + .'- **TaskStatus**:剪辑任务状态。(-1:失败;0:任务初始化;1:剪辑中;2:上传中;3:任务成功。)'."\n" + ."\n" + .'- **StorageLocation**:点播存储地址。'."\n" + ."\n" + .'- **FileName**:剪辑文件名。'."\n" + ."\n" + .'- **ShowId**:节目ID。', 'type' => 'string', 'example' => '"EditingTasksInfo": { "OutputVodId": "3e34733b40b9a96ccf5c1ff6f69****", "TaskStatus": 1, "StorageInfo": { "StorageLocation": "***bucket***", "FileName": "EditFile****" }, "ShowId": "42200b81-b761-4c10-842a-a0726d97****" },'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidPageSize.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidPageNum.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数VodUrl无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'PlayListNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramList\\": [\\n {\\n \\"CasterId\\": \\"casdfasdfasfdasdflkasjdflaj****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"ProgramId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ProgramName\\": \\"playlist1\\",\\n \\"RepeatNumber\\": 1,\\n \\"Status\\": 1\\n }\\n ],\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n 1\\n 1\\n example.com\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n casdfasdfasfdasdflkasjdflaj****\\n playlist1\\n\\n5c6a2a0d-f228-4a64-af62-20e91b96****\\n1\\n","errorExample":""}]', - 'title' => '获取播放列表', - 'description' => '先通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,再调用本接口查询节目单。'."\n" + 'title' => '查询剪辑任务', + 'description' => '- 本接口支持查询指定CasterId和ShowId剪辑任务的相关信息,调用时请保证参数设置符合要求。'."\n" ."\n" - .'## QPS限制'."\n" + .'- 如果您配置请求参数ShowId,接口返回数据为节目单中指定ShowId对应的节目剪辑任务信息。'."\n" + ."\n" + .'- 如果您未配置请求参数ShowId,接口返回数据为整个节目单的剪辑任务信息。'."\n" + ."\n" + .'### QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'StartPlaylist' => [ - 'summary' => '启动整个节目单。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEditingJobInfo'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetEditingJobInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CasterId\\": \\"53200b81-b761-4c10-842a-a0726d97****\\",\\n \\"EditingTasksInfo\\": \\"\\\\\\"EditingTasksInfo\\\\\\": { \\\\\\"OutputVodId\\\\\\": \\\\\\"3e34733b40b9a96ccf5c1ff6f69****\\\\\\", \\\\\\"TaskStatus\\\\\\": 1, \\\\\\"StorageInfo\\\\\\": { \\\\\\"StorageLocation\\\\\\": \\\\\\"***bucket***\\\\\\", \\\\\\"FileName\\\\\\": \\\\\\"EditFile****\\\\\\" }, \\\\\\"ShowId\\\\\\": \\\\\\"42200b81-b761-4c10-842a-a0726d97****\\\\\\" },\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]', + ], + 'GetMessageApp' => [ + 'summary' => '调用GetMessageApp获取指定互动消息应用详情。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'AppConfig' => [ + 'description' => '应用配置。', + 'type' => 'object', + 'additionalProperties' => ['type' => 'string', 'example' => '"appAlias":"localApp"', 'description' => '应用的配置。'], + ], + 'AppId' => ['title' => '应用ID。', 'description' => '互动消息应用ID。', 'type' => 'string', 'example' => 'VKL3***'], + 'AppName' => ['title' => '应用名称。长度2~16位。', 'description' => '互动消息应用名称。', 'type' => 'string', 'example' => 'testApp'], + 'CreateTime' => ['description' => '应用创建的UTC时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '502280113'], + 'Extension' => [ + 'description' => '拓展字段。', + 'type' => 'object', + 'additionalProperties' => ['type' => 'string', 'description' => '拓展字段。', 'example' => 'test001'], + ], + 'Status' => ['description' => '互动消息应用状态。取值为1表示应用状态正常。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + ], + ], + ], ], ], + ], + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + ], + 'title' => '获取指定互动消息应用详情(旧版)', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'ProgramId', - 'in' => 'query', - 'schema' => [ - 'description' => '节目单ID。如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AppConfig\\": {\\n \\"key\\": \\"\\\\\\"appAlias\\\\\\":\\\\\\"localApp\\\\\\"\\"\\n },\\n \\"AppId\\": \\"VKL3***\\",\\n \\"AppName\\": \\"testApp\\",\\n \\"CreateTime\\": 502280113,\\n \\"Extension\\": {\\n \\"key\\": \\"test001\\"\\n },\\n \\"Status\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n VKL3***\\n testApp\\n 1\\n \\n \\"appAlias\\":\\"localApp\\"\\n \\n \\n test001\\n \\n \\n","errorExample":""}]', + ], + 'GetMessageGroup' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ResumeMode', - 'in' => 'query', - 'schema' => [ - 'description' => '重启模式。取值:'."\n" - .'- **Restart**:从头开始。'."\n" - .'- **Continue**:根据停止前播放位置继续。如果**ResumeMode**参数设置为**Custom**时,请求参数**StartItemId**才必填。'."\n" - .'- **Custom**:自定义。', - 'type' => 'string', - 'required' => false, - 'example' => 'Custom', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'StartItemId', - 'in' => 'query', - 'schema' => [ - 'description' => '起始节目单项ID。启动轮播时将先播放此节目单项。'."\n" - .'> 如果**ResumeMode**参数设置为**Custom**时,此参数才必传。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'asdfasdfasdf****', - ], + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => ['description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], ], [ - 'name' => 'Offset', - 'in' => 'query', - 'schema' => [ - 'description' => '启动偏移。视频文件起始偏移值。仅对文件视频有效, 单位:毫秒。'."\n" - ."\n" - .'大于0,表示从相对于首帧的偏差时间作为开始读取的位置。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10000', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'ProgramId' => [ - 'description' => '节目单ID。可作为停止节目单的请求参数。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', - ], - 'StreamInfo' => [ - 'description' => '返回的流信息。', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'AppName' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'StreamName' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'Streams' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Stream' => [ - 'description' => '流信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'PullFlvUrl' => [ - 'description' => 'FLV播流地址。', - 'type' => 'string', - 'example' => 'http://aliyundoc.com/caster/liveStream****.flv?auth_key=1612772224-0-0-3632be7cd9907169e8b09e91099c****', - ], - 'PullM3U8Url' => [ - 'description' => 'RTMP播流地址。', - 'type' => 'string', - 'example' => 'rtmp:///aliyundoc.com/caster/liveStream****?auth_key=1612772224-0-0-4404ca59c0246226d49d01f734b1****', - ], - 'PullRtmpUrl' => [ - 'description' => 'm3u8播流地址。', - 'type' => 'string', - 'example' => 'http://aliyundoc.com/caster/liveStream****.m3u8?auth_key=1612772224-0-0-919a023a127156fe82e3562c3b3b****', - ], - 'Quality' => [ - 'description' => '画质。取值:'."\n" - .'**original**:原画。', - 'type' => 'string', - 'example' => 'original', - ], - ], - ], - ], - ], - ], + 'CreateTime' => ['description' => '消息组创建UTC时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1502280113'], + 'CreatorId' => ['description' => '创建人ID。', 'type' => 'string', 'example' => 'as****hs'], + 'Extension' => ['description' => '扩展字段。', 'type' => 'object', 'example' => '1'], + 'GroupId' => ['title' => '用于长连接建连的token', 'description' => '消息组ID。', 'type' => 'string', 'example' => 'AE35-****-T95F'], + 'IsMuteAll' => ['description' => '该消息组是否启用了全员禁言。'."\n" + ."\n" + .'- true:启动全员禁言。'."\n" + ."\n" + .'- false:未启动全员禁言。'."\n" + ."\n", 'type' => 'boolean', 'example' => 'true'], + 'Status' => ['description' => '消息组状态。默认为**1**,表示消息组状态正常。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'IncorrectSceneStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectCasterStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectSceneStatus.Inuse', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidProgramId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidNormType.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Offset', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.StartItemId', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'UserQuotaExceed', - 'errorMessage' => 'Quota exceeded: %s.', - ], + 'title' => '获取消息组详情(旧版)', + 'summary' => '调用GetMessageGroup获取消息组详情。', + 'description' => '## 使用说明'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2022-09-27T09:18:30.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMessageGroup'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'PlayListNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'PlayListItemNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterTemplate.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectCasterStatus.EnableChannel', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\",\\n \\"StreamInfo\\": {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"Streams\\": {\\n \\"Stream\\": [\\n {\\n \\"PullFlvUrl\\": \\"http://aliyundoc.com/caster/liveStream****.flv?auth_key=1612772224-0-0-3632be7cd9907169e8b09e91099c****\\",\\n \\"PullM3U8Url\\": \\"rtmp:///aliyundoc.com/caster/liveStream****?auth_key=1612772224-0-0-4404ca59c0246226d49d01f734b1****\\",\\n \\"PullRtmpUrl\\": \\"http://aliyundoc.com/caster/liveStream****.m3u8?auth_key=1612772224-0-0-919a023a127156fe82e3562c3b3b****\\",\\n \\"Quality\\": \\"original\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n \\n liveApp****\\n example.com\\n liveStream****\\n \\n http://aliyundoc.com/caster/liveStream****.flv?auth_key=1612772224-0-0-3632be7cd9907169e8b09e91099c****\\n rtmp:///aliyundoc.com/caster/liveStream****?auth_key=1612772224-0-0-4404ca59c0246226d49d01f734b1****\\n http://aliyundoc.com/caster/liveStream****.m3u8?auth_key=1612772224-0-0-919a023a127156fe82e3562c3b3b****\\n original\\n \\n \\n","errorExample":""}]', - 'title' => '开始播放列表项', - 'description' => '先通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,再调用本接口启动整个节目单。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"CreateTime\\": 1502280113,\\n \\"CreatorId\\": \\"as****hs\\",\\n \\"Extension\\": 1,\\n \\"GroupId\\": \\"AE35-****-T95F\\",\\n \\"IsMuteAll\\": true,\\n \\"Status\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n AE35-****-T95F\\n 1502280113\\n 1\\n as****hs\\n true\\n \\n","errorExample":""}]', ], - 'StopPlaylist' => [ - 'summary' => '停止整个节目单。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetMessageToken' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['title' => '应用ID', 'description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'a494caec-***-695ef345db77'], ], [ - 'name' => 'ProgramId', - 'in' => 'query', - 'schema' => [ - 'description' => '节目单ID。如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'name' => 'DeviceId', + 'in' => 'formData', + 'schema' => ['title' => '终端设备ID', 'description' => '终端设备ID,唯一代表一个用户终端设备,用户自定义。小写英文、数字、下划线(_)和短横线(-)组成,最大长度64个字符。不同终端设备需要使用不同的DeviceId,建议从终端设备获取并传入给服务端。', 'type' => 'string', 'required' => true, 'example' => 'a494caec-***-695ef345db77'], + ], + [ + 'name' => 'DeviceType', + 'in' => 'formData', + 'schema' => ['title' => '终端设备类型', 'description' => '终端设备类型,取值:'."\n" + ."\n" + .'- ios'."\n" + ."\n" + .'- android'."\n" + ."\n" + .'- web'."\n" + ."\n" + .'- pc'."\n", 'type' => 'string', 'required' => true, 'example' => 'android'], + ], + [ + 'name' => 'UserId', + 'in' => 'formData', + 'schema' => ['title' => '用户UserId,在AppId下单独唯一', 'description' => '用户UserId,用户自定义,在AppId下单独唯一。小写英文、数字、下划线(_)和小数点(.)组成,最大长度32个字符。不同的用户需要使用不同的UserId。', 'type' => 'string', 'required' => true, 'example' => 'de1**a0'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'ProgramId' => [ - 'description' => '节目单ID。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'AccessToken' => ['title' => '用于长连接建连的token', 'description' => '用于长连接建连的Token。', 'type' => 'string', 'example' => 'oauth_cloud_key:***-b0YY5Gy6Q'], + 'AccessTokenExpiredTime' => ['title' => '登录token过期时间(毫秒)', 'description' => '登录Token过期时间,单位:毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '86400000'], + 'RefreshToken' => ['title' => '更新Token,若AccessToken过期,则可以使用RefreshToken再次获取新Token', 'description' => '更新Token,若AccessToken过期,则可以使用RefreshToken再次获取新Token。', 'type' => 'string', 'example' => 'oauth_cloud_key:****-Q62xggOTdgk3gw='], + ], ], ], ], @@ -46067,364 +35666,423 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidProgramId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvaildParameter', 'errorMessage' => 'Invalid Parameter', 'description' => '请求参数非法'], ], - 404 => [ - [ - 'errorCode' => 'PlayListNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + 403 => [ + ['errorCode' => 'Forbidden', 'errorMessage' => 'User not authorized to operate on the specified resource.', 'description' => '接口权限不足,请您联系管理员,配置访问权限。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n5c6a2a0d-f228-4a64-af62-20e91b96****\\n445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', - 'title' => '停止节目单', - 'description' => '先通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,再调用本接口停止整个节目单。'."\n" + 'title' => '获取长连接建连Token(旧版)', + 'summary' => '调用GetMessageToken获取长连接建连Token,客户端可以用此Token通过LWP协议和各个原子能力进行长连接通信。', + 'description' => '## 使用说明'."\n" + .'先获取客户端UserId、DeviceId、DeviceType信息,然后传入到服务端,服务端使用该接口获取鉴权Token,并返回给客户端。不同的用户需要使用不同的UserId,不同的终端设备需要使用不同的DeviceId。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateMixStream' => [ - 'summary' => '创建合流任务。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2022-09-08T15:22:52.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetMessageToken', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AccessToken\\": \\"oauth_cloud_key:***-b0YY5Gy6Q\\",\\n \\"AccessTokenExpiredTime\\": 86400000,\\n \\"RefreshToken\\": \\"oauth_cloud_key:****-Q62xggOTdgk3gw=\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n oauth_cloud_key:***-b0YY5Gy6Q\\n oauth_cloud_key:****-Q62xggOTdgk3gw=\\n 86400000\\n \\n","errorExample":""}]', + ], + 'HotLiveRtcStream' => [ + 'summary' => '设置RTC流预热。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveI16NIW', - ], + 'abilityTreeCode' => '142376', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。'."\n" - .'>目前仅支持华东2(cn-shanghai)和华北2(cn-beijing)两个区域的域名。'."\n" - .'>', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'LayoutId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '布局ID。取值: '."\n" - .'- **MixStreamLayout-1-1**'."\n" - .'- **MixStreamLayout-2-1**'."\n" - .'- **MixStreamLayout-2-2**'."\n" - .'- **MixStreamLayout-2-3**'."\n" - .'- **MixStreamLayout-3-1**'."\n" - .'- **MixStreamLayout-3-2**'."\n" - .'- **MixStreamLayout-4-1**'."\n" - .'- **USERDEFINED**(非上述预设布局,固定取值**USERDEFINED**)'."\n" - .'> 更多信息请参见[合流预设布局参考](~~199359~~)', - 'type' => 'string', - 'required' => true, - 'example' => 'MixStreamLayout-1-1', - ], + 'schema' => ['description' => '预热直播流App名称。', 'type' => 'string', 'required' => true, 'example' => 'app'], ], [ - 'name' => 'InputStreamList', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '合流输入列表。JSON数组。'."\n" - ."\n" - .'参考下方的**InputStreamConfig**。', - 'type' => 'string', - 'required' => true, - 'example' => '[{"LayoutChildId":1,"ResourceType":"live","ResourceValue":"rtmp://example.net/live/f2139ec2b8d6a191068cd****ea9064d?auth_key=1600947017-0-0-0b5645fe35d21a65ab92b394bd4d****","LayoutConfig":{"FillMode":"fit","PositionRefer":"topLeft","FillPositionNormalized":[0,0],"FillSizeNormalized":[1,1]}}]', - ], + 'schema' => ['description' => '预热直播流名称。', 'type' => 'string', 'required' => true, 'example' => 'stream'], ], [ - 'name' => 'OutputConfig', + 'name' => 'RegionCode', 'in' => 'query', - 'schema' => [ - 'description' => '合流输出配置。格式为JSON字符串。'."\n" - ."\n" - .'参考下方的**OutputConfig**。', - 'type' => 'string', - 'required' => true, - 'example' => '{"AppName":"liveApp****","StreamName":"9a78fb3f5c508be0122746f677a3****","MixStreamTemplate":"lp_hd_v","ExpireDuration":"86400"}', - ], + 'schema' => ['description' => '预热区域,详细内容请查看RegionCode对应简码表格。'."\n" + ."\n" + .'> 预热区域粒度海外是国家简码,中国或中国内地是各省简码。'."\n" + .'> - 如果传入某个RegionCode后返回CodeRegionHasNoNode,说明对应区域没有L1节点覆盖,无法预热,可以更换RegionCode', 'type' => 'string', 'required' => true, 'example' => 'ZHJ'], ], [ - 'name' => 'CallbackConfig', + 'name' => 'AudioMsid', 'in' => 'query', - 'schema' => [ - 'description' => '回调地址。JSON数组。'."\n" - .'当事件产生时,直播服务端会向该地址发起HTTP POST请求,具体内容将通过HTTP Body送达。', - 'type' => 'string', - 'required' => false, - 'example' => '{"CallbackUrl":"http://aliyundoc.com"}', - ], + 'schema' => ['description' => '音频Msid。', 'type' => 'string', 'required' => true, 'example' => 'rts audio'], + ], + [ + 'name' => 'VideoMsid', + 'in' => 'query', + 'schema' => ['description' => '视频Msid。', 'type' => 'string', 'required' => true, 'example' => 'rts video'], + ], + [ + 'name' => 'ConnectionTimeout', + 'in' => 'query', + 'schema' => ['description' => '预热链接保持的时间,单位毫秒。默认0是一直保持。', 'type' => 'string', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'MediaTimeout', + 'in' => 'query', + 'schema' => ['description' => '自定义超时事件的触发时间。单位毫秒。', 'type' => 'string', 'required' => false, 'example' => '100000'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'MixStreamId' => [ - 'description' => '合流任务ID。可作为查询合流任务列表和删除合流任务的请求参数。', - 'type' => 'string', - 'example' => '5b2a046e-74d7-385e-253f-8a5b87e4****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0D715397-2E66-4AE1-694h-C546628AD145', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16BFE188-B193-4C3C-ADC5-79A7E31486EA'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'MixStreamAlreadyExist', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MixStreamNotExist', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'UserQuotaExceed', - 'errorMessage' => 'Quota exceeded: %s.', - ], - ], - [ - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'NoSpecialConfiguration', 'errorMessage' => 'no special configuration for domain name.', 'description' => ''], + ['errorCode' => 'CodeRegionHasNoNode', 'errorMessage' => 'this region has no corresponding node.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MixStreamId\\": \\"5b2a046e-74d7-385e-253f-8a5b87e4****\\",\\n \\"RequestId\\": \\"0D715397-2E66-4AE1-694h-C546628AD145\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5b2a046e-74d7-385e-253f-8a5b87e4****\\n 0D715397-2E66-4AE1-694h-C546628AD145\\n","errorExample":""}]', - 'title' => '创建合流任务', - 'description' => '>云端合流属于收费功能,当前为公测阶段,您可以免费使用,公测结束后将正常收费,具体时间另行通知。>'."\n" - .'调用本接口创建合流任务,目前本接口支持的布局类型为预设布局和自定义布局。'."\n" - ."\n" - .'## QPS限制'."\n" + 'title' => '设置RTC流预热', + 'description' => '### QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '### InputStreamConfig'."\n" - ."\n" - .'|名称 |类型 |描述 |'."\n" - .'| ------------- |------------ | ----- |'."\n" - .'|ResourceType|String|资源类型。
**live**:直播流地址。
**url**:文件流地址。 |'."\n" - .'|ResourceValue|String|资源地址。
如果ResourceType为live,则为直播流地址。直播流地址支持RTMP、FLV和HLS协议,不支持ARTC协议。
如果ResourceType为url,则为文件流地址。 |'."\n" - .'|LayoutChildId|String|布局方格对应ID(也代表合流的叠加顺序)。 |'."\n" - .'|LayoutConfig |LayoutConfig[] |JSON数组,代表所在位置、填充方式等布局信息。
如果使用预设布局,则此参数可以不填。
如果设置了该值,则忽略LayoutChildId对应的预设布局信息。|'."\n" - ."\n" - .'### LayoutConfig'."\n" - ."\n" - .'|名称 |类型 |必选 |描述 |'."\n" - .'| ------------- |------------ |------------ | ----- |'."\n" - .'|FillSizeNormalized|JSON浮点数组|必选|表示该Layer元素需要填充的尺寸大小。
[w,h]:w、h取值范围[0-1]。其中宽高都是进行了归一化计算。
例如:[0.2,0.3]代表水平占比20%,垂直占比30%。 |'."\n" - .'|FillPositionNormalized|浮点数数组|必选|表示该Layer元素填充区位置归一化值。
[x,y]:x、y的取值范围[0-1]。
例如:[0.1,0.1]代表左上角水平偏移10%, 垂直偏移10%。 |'."\n" - .'|PositionRefer|字符串|可选|设置元素的position参考坐标值。
建议设置topLeft,代表左上角。|'."\n" - .'|FillMode|字符串|可选|设置元素填充方式。
**none**:不填充。
**fit**:缩放填充保证最长的边达到边界,而最短的边可能需要加黑边。
**fill**:先按照宽和高的最大比例值进行等比缩放,然后进行crop,保证全部填充。
建议设置为fit。 |'."\n" - ."\n" - .'### OutputConfig'."\n" - ."\n" - .'|名称 |类型 |必选 |描述 |'."\n" - .'| ------------- |------------ |------------ | ----- |'."\n" - .'|AppName |String |是 |输出App名。不支持#、?等特殊字符。 |'."\n" - .'|StreamName |String |是 |输出流名。不支持#、?等特殊字符。 |'."\n" - .'|MixStreamTemplate |String |是 |合流输出规格模板ID (在传参时仅传模板ID,例如lp_ld)。
支持:
lp_ld(分辨率:640x360),
lp_sd(分辨率:854x480),
lp_hd(分辨率:1280x720),
lp_ud(分辨率:1920x1080),
lp_ld_v(分辨率:640x360),
lp_sd_v(分辨率:854x480),
lp_hd_v(分辨率:1280x720),
lp_ud_v(分辨率:1920x1080) ,
lp_ld_v_optm(分辨率:640x360),
lp_sd_v_optm(分辨率:854x480),
lp_hd_v_optm(分辨率:1280x720),
lp_ud_v_optm(分辨率:1920x1080)。
_v表示竖屏模板,_optm表示低延迟模板,括号里表示模板的分辨率。|'."\n" - .'|ExpireDuration|Long|可选|任务过期时间。单位:秒。取值范围:**1**~**31536000**(1年)。
如果不设置默认7天过期清理任务。 |', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 增加合流事件回调示例'."\n" - .'- 合流创建成功'."\n" - .'```'."\n" - .'{'."\n" - .'"EventMessage":'."\n" - .' {'."\n" - .' "StreamName":"liveStream****",//合流输出流名'."\n" - .' "Message":"",'."\n" - .' "DomainName":"example.com",'."\n" - .' "MixstreamId":"5b2a046e-74d7-385e-253f-8a5b87e4****",//合流任务ID'."\n" - .' "Code":"Success",'."\n" - .' "AppName":"liveApp****"//合流输出App名'."\n" - .' },'."\n" - .'"EventType":"MixstreamStartCallback",'."\n" - .'"MessageMd5":"7c7b1d9480ae892lkasjdflkasjbd****",'."\n" - .'"CasterId":""}'."\n" - .' ```'."\n" - .'- 合流创建失败'."\n" - .'```'."\n" - .'{"EventMessage":'."\n" - .' {'."\n" - .' "StreamName":"liveStream****",'."\n" - .' "Message":"MixStreamAlreadyExist",'."\n" - .' "DomainName":"example.com",'."\n" - .' "Code":"Error",'."\n" - .' "AppName":"liveApp****"'."\n" - .' },'."\n" - .'"EventType":"MixstreamStartCallback",'."\n" - .'"MessageMd5":"7c7b1d9480ae892lkasjdflkasjbd****",'."\n" - .'"CasterId":""'."\n" - .'}'."\n" - .'```'."\n" + 'requestParamsDescription' => '### RegionCode对应简码'."\n" + .'**中国或中国内地代码**'."\n" + .'| 中文名 | 简码 |'."\n" + .'|---------------|--------|'."\n" + .'|北京市 | BEJ|'."\n" + .'|天津市 |TAJ |'."\n" + .'| 河北省|HEB |'."\n" + .'|山西省 |SHX |'."\n" + .'|内蒙古自治区 |NMG |'."\n" + .'|辽宁省 |LIA |'."\n" + .'|吉林省 |JIL |'."\n" + .'| 黑龙江省|HLJ |'."\n" + .'|上海市 | SHH|'."\n" + .'| 江苏省| JSU|'."\n" + .'|浙江省 | ZHJ|'."\n" + .'|安徽省 | ANH|'."\n" + .'| 福建省|FUJ |'."\n" + .'|江西省 | JXI|'."\n" + .'|山东省 |SHD |'."\n" + .'| 河南省|HEN |'."\n" + .'| 湖北省| HUB|'."\n" + .'| 湖南省| HUN|'."\n" + .'|广东省 |GUD |'."\n" + .'|广西壮族自治区 | GXI|'."\n" + .'|海南省 |HAI |'."\n" + .'|重庆市 |CHQ |'."\n" + .'| 四川省| SCH|'."\n" + .'|贵州省 | GUI|'."\n" + .'|云南省 | YUN|'."\n" + .'| 西藏自治区|TIB|'."\n" + .'|陕西省 |SHA |'."\n" + .'|甘肃省 |GAN |'."\n" + .'| 青海省|QIH |'."\n" + .'|宁夏回族自治区 |NXA |'."\n" + .'| 新疆维吾尔自治区| XIN|'."\n" + .'| 台湾省| TAI|'."\n" + .'|香港特别行政区 | HKG|'."\n" + .'|澳门特别行政区 |MAC |'."\n" ."\n" - .'### SDK示例'."\n" - .'详细示例,请参见[合流代码示例](https://help.aliyun.com/document_detail/199362.html)。', - ], - 'UpdateMixStream' => [ - 'summary' => '更新合流任务。', - 'methods' => [ - 'post', - 'get', + .'**国家代码**'."\n" + .'| 中文名 | 简码 |'."\n" + .'|---------------|--------|'."\n" + .'|巴布亚新几内亚|PG|'."\n" + .'|斯洛伐克|SK|'."\n" + .'|秘鲁|PE|'."\n" + .'|拉脱维亚|LV|'."\n" + .'|阿拉伯联合酋长国|AE|'."\n" + .'|加拿大|CA|'."\n" + .'|古巴|CU|'."\n" + .'|毛里塔尼亚|MR|'."\n" + .'|日本|JP|'."\n" + .'|亚美尼亚 |AM|'."\n" + .'|土库曼斯坦|TM|'."\n" + .'|俄罗斯|RU|'."\n" + .'|白俄罗斯|BY|'."\n" + .'|几内亚|GN|'."\n" + .'|伊拉克|IQ|'."\n" + .'|阿根廷|AR|'."\n" + .'|智利|CL|'."\n" + .'|斯威士兰|SZ|'."\n" + .'|刚果|CD|'."\n" + .'|比利时|BE|'."\n" + .'|哈萨克斯坦|KZ|'."\n" + .'|塞尔维亚 |RS|'."\n" + .'|土耳其|TR|'."\n" + .'|纳米比亚 |NA|'."\n" + .'|立陶宛|LT|'."\n" + .'|波多黎各 |PR|'."\n" + .'|刚果共和国|CG|'."\n" + .'|新喀里多尼亚 |NC|'."\n" + .'|摩洛哥|MA|'."\n" + .'|格陵兰岛 |GL|'."\n" + .'|科威特|KW|'."\n" + .'|利比里亚|LR|'."\n" + .'|乌克兰|UA|'."\n" + .'|印度尼西亚|ID|'."\n" + .'|缅甸|MM|'."\n" + .'|玻利维亚|BO|'."\n" + .'|摩尔多瓦 |MD|'."\n" + .'|希腊|GR|'."\n" + .'|新西兰|NZ|'."\n" + .'|索罗门群岛|SB|'."\n" + .'|埃塞俄比亚|ET|'."\n" + .'|斐济|FJ|'."\n" + .'|也门|YE|'."\n" + .'|塞浦路斯|CY|'."\n" + .'|波斯尼亚和黑塞哥维那|BA|'."\n" + .'|厄立特里亚|ER|'."\n" + .'|德国|DE|'."\n" + .'|巴基斯坦|PK|'."\n" + .'|中非共和国|CF|'."\n" + .'|克罗地亚|HR|'."\n" + .'|埃及|EG|'."\n" + .'|泰国|TH|'."\n" + .'|哥斯达黎加|CR|'."\n" + .'|坦桑尼亚 |TZ|'."\n" + .'|老挝|LA|'."\n" + .'|利比亚|LY|'."\n" + .'|突尼斯|TN|'."\n" + .'|波兰|PL|'."\n" + .'|英国|GB|'."\n" + .'|赤道几内亚|GQ|'."\n" + .'|中国|CN|'."\n" + .'|冰岛|IS|'."\n" + .'|阿曼|OM|'."\n" + .'|蒙古|MN|'."\n" + .'|乍得|TD|'."\n" + .'|美国|US|'."\n" + .'|墨西哥|MX|'."\n" + .'|吉尔吉斯斯坦 |KG|'."\n" + .'|苏里南|SR|'."\n" + .'|印度|IN|'."\n" + .'|几内亚比绍|GW|'."\n" + .'|委内瑞拉 |VE|'."\n" + .'|意大利|IT|'."\n" + .'|阿尔及利亚|DZ|'."\n" + .'|卡塔尔|QA|'."\n" + .'|法国|FR|'."\n" + .'|南非|ZA|'."\n" + .'|挪威|NO|'."\n" + .'|葡萄牙|PT|'."\n" + .'|匈牙利|HU|'."\n" + .'|韩国|KR|'."\n" + .'|乌兹别克斯坦|UZ|'."\n" + .'|布隆迪|BI|'."\n" + .'|爱沙尼亚|EE|'."\n" + .'|孟加拉国|BD|'."\n" + .'|不丹|BT|'."\n" + .'|阿富汗|AF'."\n" + .'|瑞士|CH|'."\n" + .'|伯利兹|BZ|'."\n" + .'|东帝汶|TL|'."\n" + .'|海地|HT|'."\n" + .'|多哥|TG|'."\n" + .'|阿尔巴尼亚|AL|'."\n" + .'|喀麦隆|CM|'."\n" + .'|尼加拉瓜|NI|'."\n" + .'|尼日利亚|NG|'."\n" + .'|洪都拉斯|HN|'."\n" + .'|布基纳法索|BF|'."\n" + .'|莫桑比克|MZ|'."\n" + .'|格鲁吉亚|GE|'."\n" + .'|瓦努阿图 |VU|'."\n" + .'|巴拉圭|PY|'."\n" + .'|卢森堡|LU|'."\n" + .'|黎巴嫩|LB|'."\n" + .'|乌干达|UG|'."\n" + .'|马里|ML|'."\n" + .'|沙特阿拉伯|SA|'."\n" + .'|巴勒斯坦|PS|'."\n" + .'|黑山|ME|'."\n" + .'|哥伦比亚 |CO|'."\n" + .'|菲律宾|PH|'."\n" + .'|瑞典|SE|'."\n" + .'|芬兰|FI|'."\n" + .'|肯尼亚|KE|'."\n" + .'|罗马尼亚|RO|'."\n" + .'|巴拿马|PA|'."\n" + .'|约旦|JO|'."\n" + .'|卢旺达|RW|'."\n" + .'|莱索托|LS|'."\n" + .'|马其顿|MK|'."\n" + .'|赞比亚|ZM|'."\n" + .'|叙利亚|SY|'."\n" + .'|西班牙|ES|'."\n" + .'|厄瓜多尔|EC|'."\n" + .'|加蓬|GA|'."\n" + .'|爱尔兰|IE|'."\n" + .'|多米尼加共和国|DO|'."\n" + .'|加纳|GH|'."\n" + .'|马达加斯加|MG|'."\n" + .'|马来西亚 |MY|'."\n" + .'|奥地利|AT|'."\n" + .'|塔吉克斯坦|TJ|'."\n" + .'|丹麦|DK|'."\n" + .'|乌拉圭|UY|'."\n" + .'|柬埔寨|KH|'."\n" + .'|塞内加尔|SN|'."\n" + .'|萨尔瓦多|SV|'."\n" + .'|塞拉利昂 |SL|'."\n" + .'|文莱达鲁萨兰国|BN|'."\n" + .'|西撒哈拉 |EH|'."\n" + .'|尼日尔|NE|'."\n" + .'|伊朗|IR|'."\n" + .'|圭亚那|GY|'."\n" + .'|安哥拉|AO|'."\n" + .'|博茨瓦纳|BW|'."\n" + .'|巴西|BR|'."\n" + .'|澳大利亚 |AU|'."\n" + .'|科特迪瓦 |CI|'."\n" + .'|捷克共和国|CZ|'."\n" + .'|冈比亚|GM|'."\n" + .'|贝宁|BJ|'."\n" + .'|越南|VN|'."\n" + .'|苏丹|SD|'."\n" + .'|荷兰|NL|'."\n" + .'|吉布提|DJ|'."\n" + .'|斯洛文尼亚|SI|'."\n" + .'|尼泊尔|NP|'."\n" + .'|津巴布韦|ZW|'."\n" + .'|牙买加|JM|'."\n" + .'|马拉维|MW|'."\n" + .'|阿塞拜疆 |AZ|'."\n" + .'|索马里|SO|'."\n" + .'|以色列|IL|'."\n" + .'|福克兰群岛(马尔维纳斯群岛)|FK'."\n" + .'|朝鲜|KP|'."\n" + .'|危地马拉 |GT|'."\n" + .'|巴哈马|BS|'."\n" + .'|斯里兰卡|LK|'."\n" + .'|新加坡|SG|'."\n" + .'|巴林|BH|', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'HotLiveRtcStream'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:HotLiveRtcStream', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16BFE188-B193-4C3C-ADC5-79A7E31486EA\\n","errorExample":""}]', + ], + 'InitializeAutoShowListTask' => [ + 'summary' => '创建一个定时任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107287', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'ResourceIds', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。'."\n" - .'>目前仅支持华东2(cn-shanghai)和华北2(cn-beijing)两个区域的域名。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '播单中的点播媒资文件ID列表(目前仅支持点播平台的mp4格式视频文件)。'."\n" + .'最多支持三个节目,每个节目会按照列表顺序进行播放直到EndTime会自动结束。'."\n" + .'>- 您可以通过控制台或API接口返回参数获取视频文件ID。详情请参见[媒资管理](~~86057~~)或[获取音视频上传地址和凭证](~~55407~~)。- 在EndTime前节目如已经播完,默认会持续播放最后一个节目的最后一帧,直到播放结束。', 'type' => 'string', 'required' => false, 'example' => '["89e02xxxxfb349axxxxa0c350d**** ","6ae0xxxxxb349axxxxa0c350a****"]'], ], [ - 'name' => 'MixStreamId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '合流任务ID。如果您通过[CreateMixStream接口](~~2848087~~)创建合流任务,请查看CreateMixStream接口调用返回的参数MixStreamId值。', - 'type' => 'string', - 'required' => true, - 'example' => '5b2a046e-74d7-385e-d2d7-8a5b87e4****', - ], + 'schema' => ['description' => '开始时间戳,单位:毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1645688994000'], ], [ - 'name' => 'InputStreamList', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '合流输入列表,JSON数组。'."\n" - ."\n" - .'参考下方的**InputStreamConfig**。', - 'type' => 'string', - 'required' => true, - 'example' => '{"InputStreamList":[{"LayoutConfig":{"FillSizeNormalized":[0.5,0.5],"FillPositionNormalized":[0,0],"PositionRefer":"topLeft","FillMode":"fit"},"LayoutChildId":1,"ResourceValue":"rtmp://aliyundoc.com/caster/8564a8d1659b4dc69df5f66cf4c9****","ResourceType":"live"},{"LayoutConfig":{"FillSizeNormalized":[0.5,0.5],"FillPositionNormalized":[0.5,0],"PositionRefer":"topLeft","FillMode":"fit"},"LayoutChildId":2,"ResourceValue":"http://developer.aliyundoc.com/3c3c25426cf744fdb90423e76b78a28a/69b1a16e2b1d423d9841bf27a96f134e-0b1cba51f58bb5ad3a854x96a2c735f****.mp4","ResourceType":"url"},{"LayoutConfig":{"FillSizeNormalized":[1,0.5],"FillPositionNormalized":[0,0.5],"PositionRefer":"topLeft","FillMode":"fit"},"LayoutChildId":3,"ResourceValue":"http://aliyundoc.com/c0c6c5446b56432389e91535864938da/ed4adc5263b4474c954b95607a5350ae-fda757b3328438a8cf-4k57f373a0f0****.mp4","ResourceType":"url"}]}', - ], + 'schema' => ['description' => '结束时间戳,单位:毫秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1645688994000'], ], [ - 'name' => 'LayoutId', + 'name' => 'CasterConfig', 'in' => 'query', - 'schema' => [ - 'description' => '布局ID。支持: '."\n" - .'- **MixStreamLayout-1-1**'."\n" - .'- **MixStreamLayout-2-1**'."\n" - .'- **MixStreamLayout-2-2**'."\n" - .'- **MixStreamLayout-2-3**'."\n" - .'- **MixStreamLayout-3-1**'."\n" - .'- **MixStreamLayout-3-2**'."\n" - .'- **MixStreamLayout-4-1**'."\n" - .'- **USERDEFINED**(非上述预设布局,取固定值**USERDEFINED**)'."\n" - .'> 更多信息请参见[合流预设布局参考](~~199361~~)', - 'type' => 'string', - 'required' => false, - 'example' => 'MixStreamLayout-3-2', - ], + 'schema' => ['description' => '导播台配置。包含:'."\n" + ."\n" + .'- (必填)CasterTemplate:导播台输出分辨率。'."\n" + ."\n" + .'- (非必填)LiveTemplate:输出转码任务列表。'."\n" + ."\n" + .'>JSON格式字符串,结构体内部字段请按首字母大写,驼峰格式输入。', 'type' => 'string', 'required' => true, 'example' => '{"CasterTemplate": "lp_ld","LiveTemplates":["lhd", "lsd","lud"]}'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '输出的播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com'], + ], + [ + 'name' => 'CallBackUrl', + 'in' => 'query', + 'schema' => ['description' => '用户回调地址。', 'type' => 'string', 'required' => false, 'example' => 'http://***.com/callback'], ], ], 'responses' => [ @@ -46432,551 +36090,429 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'MixStreamId' => [ - 'description' => '合流任务ID。可作为查询合流任务列表和删除合流任务的请求参数。', - 'type' => 'string', - 'example' => '5b2a046e-74d7-385e-d2d7-8a5b87e4****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '1A8CDDFF-0121-4ABB-DA60-AEF095A8W34F', - ], + 'CasterId' => ['description' => '导播台ID。'."\n" + .'>可作为查询导播台流地址、启动导播台、添加导播台视频资源、添加导播台布局、查询导播台布局列表、添加导播台组件和添加导播台节目单的请求参数。', 'type' => 'string', 'example' => 'b4810848-bcf9-4aef-bd4a-e6bba2d9****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'StreamList' => ['description' => '导播台输出地址列表。'."\n" + ."\n" + .'- videoFormat:播流地址格式。'."\n" + ."\n" + .'- outputStreamUrl:拉流地址。'."\n" + ."\n" + .'- transcodeConfig:拉流地址的转码分辨率说明。', 'type' => 'string', 'example' => '[{"videoFormat":"flv","outputStreamUrl":"http://example.aliyundoc.com","transcodeConfig":"original"}]'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PurchaseTime无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ExpireTime无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType仅支持后付费,请检查后重试。'], + ['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterTemplate无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '时间间隔无效,请检查后重试。'], + ['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ClientToken无效,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态有误,请检查后重试。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.StartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数StartTime无效,请检查后重试。'], ], [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台数量超限,请检查后重试。'], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], - 403 => [ - [ - 'errorCode' => 'MixStreamAlreadyExist', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MixStreamNotExist', - 'errorMessage' => '%s, please check and try again later.', - ], + 404 => [ + ['errorCode' => 'IncorrectCasterStatus.EnableChannel', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态不支持EnableChannel设置,请检查后重试。'], + ['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数NormType无效,请检查后重试。'], + ['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], ], - [ - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 408 => [ + ['errorCode' => 'CreateCaster.Timeout', 'errorMessage' => '%s, please try again later.', 'description' => '调用CreateCaster超时,请稍后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MixStreamId\\": \\"5b2a046e-74d7-385e-d2d7-8a5b87e4****\\",\\n \\"RequestId\\": \\"1A8CDDFF-0121-4ABB-DA60-AEF095A8W34F\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5b2a046e-74d7-385e-d2d7-8a5b87e4****\\n 1A8CDDFF-0121-4ABB-DA60-AEF095A8W34F\\n","errorExample":""}]', - 'title' => '更新合流任务', - 'description' => '调用本接口更新合流任务。本接口目前支持更新输入源以及布局,不支持更新输出分辨率等内容。'."\n" - ."\n" + 'title' => '创建一个定时任务', + 'description' => '本接口支持配置定时启停一个播单定时任务,调用时请保证参数设置符合要求。'."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '### InputStreamConfig'."\n" - ."\n" - .'|名称 |类型 |描述 |'."\n" - .'| ------------- |------------ | ----- |'."\n" - .'|ResourceType|String|资源类型。
**live**:直播流地址。
**url**:文件流地址。 |'."\n" - .'|ResourceValue|String|资源地址。
如果ResourceType为live,则为直播流地址。直播流地址支持RTMP、FLV和ARTC协议,不支持HLS协议。
如果ResourceType为url,则为文件流地址。 |'."\n" - .'|LayoutChildId|String|布局方格对应ID(也代表合流的叠加顺序)。 |'."\n" - .'|LayoutConfig |LayoutConfig[] |JSON数组,代表所在位置、填充方式等布局信息。
如果使用预设布局,则此参数可以不填。
如果设置了该值,则忽略LayoutChildId对应的预设布局信息。|'."\n" - ."\n" - .'### LayoutConfig'."\n" - ."\n" - .'|名称 |类型 |必选 |描述 |'."\n" - .'| ------------- |------------ |------------ | ----- |'."\n" - .'|FillSizeNormalized|JSON浮点数组|必选|表示该Layer元素需要填充的尺寸大小。
[w,h]:w、h取值范围[0-1]。其中宽高都是进行了归一化计算。
例如:[0.2,0.3]代表水平占比20%,垂直占比30%。 |'."\n" - .'|FillPositionNormalized|浮点数数组|必选|表示该Layer元素填充区位置归一化值。
[x,y]:x、y的取值范围[0-1]。
例如:[0.1,0.1]代表左上角水平偏移10%, 垂直偏移10%。 |'."\n" - .'|PositionRefer|字符串|可选|设置元素的position参考坐标值。
建议设置topLeft,代表左上角。|'."\n" - .'|FillMode|字符串|可选|设置元素填充方式。
**none**:不填充。
**fit**:缩放填充保证最长的边达到边界,而最短的边可能需要加黑边。
**fill**:先按照宽和高的最大比例值进行等比缩放,然后进行crop,保证全部填充。
建议设置为fit。 |', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => '### SDK示例'."\n" - .'详细示例,请参见[合流代码示例](https://help.aliyun.com/document_detail/199362.html)。', - ], - 'DescribeMixStreamList' => [ - 'summary' => '查询合流任务列表。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:InitializeAutoShowListTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"b4810848-bcf9-4aef-bd4a-e6bba2d9****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"StreamList\\": \\"[{\\\\\\"videoFormat\\\\\\":\\\\\\"flv\\\\\\",\\\\\\"outputStreamUrl\\\\\\":\\\\\\"http://example.aliyundoc.com\\\\\\",\\\\\\"transcodeConfig\\\\\\":\\\\\\"original\\\\\\"}]\\"\\n}","errorExample":""},{"type":"xml","example":"\\n9F6448C9-6F92-1BAC-AFDD-C308782A6573\\n\\n flv\\n http://example.aliyundoc.com/caster/2967b3b2b52242019c277de2a11a****.flv\\n original\\n\\n6277b6a3-1a40-4063-85f7-145666e3****\\n","errorExample":""}]', + ], + 'JoinMessageGroup' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveI16NIW', - ], - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'a494caec-***-695ef345db77'], ], [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => ['description' => '要加入的消息组ID,请确保传入的GroupId是存在的。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], ], [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => 'App名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], + 'name' => 'UserId', + 'in' => 'formData', + 'schema' => ['description' => '用户UserId,用户自定义,在AppId下单独唯一。小写英文、数字、下划线(_)和小数点(.)组成,最大长度32个字符。不同的用户需要使用不同的UserId。', 'type' => 'string', 'required' => true, 'example' => 'de1**a0'], ], [ - 'name' => 'StreamName', - 'in' => 'query', + 'name' => 'BroadCastType', + 'in' => 'formData', + 'schema' => ['description' => '系统消息扩散类型,取值:'."\n" + ."\n" + .'- 0(默认值):不扩散。'."\n" + ."\n" + .'- 1:扩散到指定人。'."\n" + ."\n" + .'- 2:扩散到群组。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + ], + [ + 'name' => 'BroadCastStatistics', + 'in' => 'formData', + 'schema' => ['description' => '是否扩散统计类消息,打开时在加入消息组后会广播消息组的统计信息,客户端可以接收处理该消息。取值:'."\n" + ."\n" + .'- true:扩散统计类消息。'."\n" + ."\n" + .'- false:不扩散统计类消息。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '合流任务的流名。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'Success' => ['description' => '加入消息组是否成功,取值:'."\n" + ."\n" + .'- true:成功。'."\n" + ."\n" + .'- false:不成功。', 'type' => 'boolean', 'example' => 'true'], + ], + ], + ], ], ], + ], + 'title' => '加入消息组(旧版)', + 'summary' => '加入消息组。', + 'description' => '本接口的单用户QPS限制为200次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2022-09-27T09:18:30.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'JoinMessageGroup'], + ], + ], + 'ramActions' => [ [ - 'name' => 'MixStreamId', - 'in' => 'query', - 'schema' => [ - 'description' => '合流任务ID。如果您通过[CreateMixStream接口](~~2848087~~)创建合流任务,请查看CreateMixStream接口调用返回的参数MixStreamId值。', - 'type' => 'string', - 'required' => false, - 'example' => '5b2a046e-74d7-385e-d2d7-8a5b87e4****', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:JoinMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', + ], + 'KickLiveMessageGroupUser' => [ + 'summary' => '踢出互动消息群组用户。', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'StartTime', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ + [ + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2020-09-11T12:00:00Z', - ], + 'schema' => ['description' => '需要踢人的互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'EndTime', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2020-09-20T13:00:00Z', - ], + 'schema' => ['description' => '需要处理的群组的GroupID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], [ - 'name' => 'PageNo', + 'name' => 'KickoffUser', 'in' => 'query', - 'schema' => [ - 'description' => '页码。大于**0**且不超过Integer数据类型的最大值,默认值为**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '需要踢出去的用户。', 'type' => 'string', 'required' => true, 'example' => 'uid1'], ], [ - 'name' => 'PageSize', + 'name' => 'DataCenter', 'in' => 'query', - 'schema' => [ - 'description' => '每页可展示的记录数。默认值为**1000**。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1000', - ], + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'MixStreamList' => [ - 'description' => '合流任务列表。', - 'type' => 'array', - 'items' => [ - 'description' => '合流任务列表。', - 'type' => 'object', - 'properties' => [ - 'AppName' => [ - 'description' => 'App名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'DomainName' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'GmtCreate' => [ - 'description' => '合流任务创建时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2020-09-17T08:39:14Z', - ], - 'GmtModified' => [ - 'description' => '合流任务修改时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2020-09-17T08:39:15Z', - ], - 'InputStreamNumber' => [ - 'description' => '输入源个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'LayoutId' => [ - 'description' => '布局ID。', - 'type' => 'string', - 'example' => 'USERDEFINED', - ], - 'MixStreamTemplate' => [ - 'description' => '合流输出模板。', - 'type' => 'string', - 'example' => 'lp_ld', - ], - 'MixstreamId' => [ - 'description' => '合流任务ID。可作为删除合流任务的请求参数。', - 'type' => 'string', - 'example' => 'aaf9a50f-c460-3a9b-f180-38dd8f05****', - ], - 'StreamName' => [ - 'description' => '合流任务的流名。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BC1E78D3-FA8B-4457-DEE2-6093E1232254', - ], - 'Total' => [ - 'description' => '任务总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '97168878-5288-10CE-AE56-E2D1627F****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], ], - 404 => [ - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MixStreamList\\": [\\n {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"GmtCreate\\": \\"2020-09-17T08:39:14Z\\",\\n \\"GmtModified\\": \\"2020-09-17T08:39:15Z\\",\\n \\"InputStreamNumber\\": 2,\\n \\"LayoutId\\": \\"USERDEFINED\\",\\n \\"MixStreamTemplate\\": \\"lp_ld\\",\\n \\"MixstreamId\\": \\"aaf9a50f-c460-3a9b-f180-38dd8f05****\\",\\n \\"StreamName\\": \\"liveStream****\\"\\n }\\n ],\\n \\"RequestId\\": \\"BC1E78D3-FA8B-4457-DEE2-6093E1232254\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n \\n liveApp****\\n example.com\\n 2020-09-17T08:39:14Z\\n 2020-09-17T08:39:15Z\\n 2\\n USERDEFINED\\n lp_ld\\n aaf9a50f-c460-3a9b-f180-38dd8f05****\\n liveStream****\\n \\n BC1E78D3-FA8B-4457-DEE2-6093E1232254\\n 1\\n","errorExample":""}]', - 'title' => '查询合流任务列表', - 'description' => '先通过[CreateMixStream接口](~~2848087~~)创建合流任务,再调用本接口查询合流任务列表。'."\n" - ."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '将指定用户从群组中踢出去', + 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '### MixStreamInfo'."\n" - .'| 名称 | 类型 | 描述 |'."\n" - .'| ------------- |------------ | ----- |'."\n" - .'|MixStreamId |String |合流任务ID。|'."\n" - .'|DomainName |String |主播流域名。|'."\n" - .'|AppName |String |App名称。|'."\n" - .'|StreamName |String |合流任务的流名。|'."\n" - .'|LayoutId |String |布局ID。|'."\n" - .'|InputStreamNumber |Integer |输入源个数。|'."\n" - .'|MixStreamTemplate |String |合流任务模板。|'."\n" - .'|GmtCreate |String |创建时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。|'."\n" - .'|GmtModified |String |修改时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。|', - 'extraInfo' => '### SDK示例'."\n" - .'详细示例,请参见[合流代码示例](https://help.aliyun.com/document_detail/199362.html)。', - ], - 'DeleteMixStream' => [ - 'summary' => '删除合流任务。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'KickLiveMessageGroupUser'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:KickLiveMessageGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"97168878-5288-10CE-AE56-E2D1627F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 97168878-5288-10CE-AE56-E2D1627F****\\n","errorExample":""}]', + ], + 'LeaveMessageGroup' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveI16NIW', - ], - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => ['description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], ], [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => 'App名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], + 'name' => 'UserId', + 'in' => 'formData', + 'schema' => ['description' => '用户UserId,用户自定义,在AppId下单独唯一。', 'type' => 'string', 'required' => true, 'example' => 'de1**a0'], ], [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '合流任务的流名。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', - ], + 'name' => 'BroadCastType', + 'in' => 'formData', + 'schema' => ['description' => '系统消息扩散类型,取值:'."\n" + ."\n" + .'- 0(默认值):不扩散。'."\n" + ."\n" + .'- 1:扩散到指定人。'."\n" + ."\n" + .'- 2:扩散到群组。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], ], [ - 'name' => 'MixStreamId', - 'in' => 'query', - 'schema' => [ - 'description' => '合流任务ID。如果您通过[CreateMixStream接口](~~2848087~~)创建合流任务,请查看CreateMixStream接口调用返回的参数MixStreamId值。', - 'type' => 'string', - 'required' => true, - 'example' => '749b7594-86d6-37b1-513b-e1e19845****', - ], + 'name' => 'BroadCastStatistics', + 'in' => 'formData', + 'schema' => ['description' => '是否扩散统计类消息,打开时在加入消息组后会广播消息组的统计信息,客户端可以接收处理该消息。取值:'."\n" + ."\n" + .'- true:扩散统计类消息。'."\n" + ."\n" + .'- false:不扩散统计类消息。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'MixStreamId' => [ - 'description' => '合流任务ID。', - 'type' => 'string', - 'example' => '749b7594-86d6-37b1-513b-e1e19845****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BE9407FF-F897-4DBD-338D-98A750AD805F', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'Success' => ['description' => '离开消息组是否成功,取值:'."\n" + ."\n" + .'- true:成功。'."\n" + ."\n" + .'- false:不成功。', 'type' => 'boolean', 'example' => 'true'], + ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'MixStreamAlreadyExist', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MixStreamNotExist', - 'errorMessage' => '%s, please check and try again later.', - ], + 'title' => '退出消息组(旧版)', + 'summary' => '调用LeaveMessageGroup用户退出消息组。', + 'description' => '## 使用说明'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2022-09-27T09:18:30.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'LeaveMessageGroup'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:LeaveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MixStreamId\\": \\"749b7594-86d6-37b1-513b-e1e19845****\\",\\n \\"RequestId\\": \\"BE9407FF-F897-4DBD-338D-98A750AD805F\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 749b7594-86d6-37b1-513b-e1e19845****\\n BE9407FF-F897-4DBD-338D-98A750AD805F\\n","errorExample":""}]', - 'title' => '删除合流任务', - 'description' => '先通过[CreateMixStream接口](~~2848087~~)创建合流任务,再调用本接口删除合流任务。当您不需要使用某条合流后,请删除此条合流,否则合流将一直处于输出状态。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '### SDK示例'."\n" - .'详细示例,请参见[合流代码示例](https://help.aliyun.com/document_detail/199362.html)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', ], - 'CreateCustomTemplate' => [ - 'summary' => '创建合流自定义模板。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListEdgeTranscodeJob' => [ + 'summary' => '查询边缘转码任务列表。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveI16NIW', - ], + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'CustomTemplate', + 'name' => 'ClusterId', 'in' => 'query', - 'schema' => [ - 'description' => 'JSON格式{height:xxx,scale:xxx,gop:xxx,bframes:xxx,cdesc:xxx},所有字段均必填,缺少其中任意字段会调用失败。'."\n" - ."\n" - .'> 具体参数请参考下表**CustomTemplate说明**。', - 'type' => 'string', - 'required' => true, - 'example' => '{"height":"1060","scale":"[16:9]","gop":"60","bframes":"30","cdesc":"h264"}', - ], + 'schema' => ['description' => '机房ID。', 'type' => 'string', 'required' => true, 'example' => 'cluster-1'], ], [ - 'name' => 'Template', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '需要添加的模板名。'."\n" - .'>请在创建时记录模板名,用于使用、查询和删除操作。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'TestTemplate', - ], + 'schema' => ['description' => '边缘转码类型,枚举:'."\n" + .'- common,通用(普通+窄带高清1.0)。'."\n" + .'- nbhd-2,窄带高清2.0。'."\n" + .'- ultra-hd,超高清。'."\n" + ."\n" + .'> 该参数不填写时,会展示用户有对应转码类型权限的转码模板', 'type' => 'string', 'required' => false, 'example' => 'common'], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => ['description' => '边缘转码任务状态,枚举:'."\n" + .'- 0 未启动。'."\n" + .'- 1 运行中。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['description' => '当前页码。默认值为1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页大小,即每页显示条数。默认值为10,最大值为100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ + 'name' => 'SortBy', + 'in' => 'query', + 'schema' => ['description' => '排序规则,按CreateTime排序。默认是desc,枚举:'."\n" + .'- desc 降序排序。'."\n" + .'- asc 升序排序。', 'type' => 'string', 'required' => false, 'example' => 'desc'], + ], + [ + 'name' => 'Keyword', + 'in' => 'query', + 'schema' => ['description' => '搜索关键词,枚举:'."\n" + .'- 任务ID,任务ID支持精确匹配。'."\n" + .'- 任务名称,任务名称支持模糊搜索。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], ], 'responses' => [ @@ -46984,114 +36520,154 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0D715397-2E66-4AE1-694h-C546628AD145', + 'JobList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Job' => [ + 'description' => '边缘转码任务列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CreateTime' => ['description' => '任务创建时间。', 'type' => 'string', 'example' => '2023-07-24T16:44:55Z'], + 'JobId' => ['description' => '任务ID。', 'type' => 'string', 'example' => '****20b48fb04483915d4f2cd8ac****'], + 'LastStartAt' => ['description' => '任务上一次启动的时间。', 'type' => 'string', 'example' => '2023-07-25T02:48:58Z'], + 'LastStopAt' => ['description' => '任务上一次停止的时间。', 'type' => 'string', 'example' => '2023-07-25T05:48:58Z'], + 'Name' => ['description' => '任务名称。', 'type' => 'string', 'example' => 'my_job'], + 'Status' => ['description' => '边缘转码任务状态,枚举:'."\n" + .'- 0 未启动。'."\n" + .'- 1 运行中。', 'type' => 'string', 'example' => '0'], + 'StreamInput' => ['description' => '输入流地址。', 'type' => 'string', 'example' => 'rtmp://mydomain/app/stream1'], + 'StreamOutput' => ['description' => '输出流地址。', 'type' => 'string', 'example' => 'rtmp://testdomain/app/stream2'], + 'TemplateId' => ['description' => '任务使用的边缘转码模板ID。', 'type' => 'string', 'example' => '9b1571b513cb44f7a1ba6ae561ff****'], + 'TemplateName' => ['description' => '任务使用的边缘转码模板名。', 'type' => 'string', 'example' => 'my_template'], + 'Type' => ['description' => '边缘转码类型,枚举:'."\n" + .'- common,通用(普通+窄带高清1.0)。'."\n" + .'- nbhd-2,窄带高清2.0。'."\n" + .'- ultra-hd,超高清。', 'type' => 'string', 'example' => 'common'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], + 'TotalCount' => ['description' => '总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'TemplateAlreadyExist', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'CustomTemplateInvalid', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], - 404 => [ - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '操作拒绝,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0D715397-2E66-4AE1-694h-C546628AD145\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0D715397-2E66-4AE1-694h-C546628AD145\\n","errorExample":""}]', - 'title' => '创建合流自定义模板', - 'description' => '调用本接口创建好自定义模板后,请记录模板名。通过[CreateMixStream接口](~~2848087~~)创建合流任务时,MixStreamTemplate传入模板名来使用自定义模板。'."\n" + 'title' => '查询边缘转码任务列表', + 'description' => '- 本接口用于查询边缘转码任务列表。'."\n" ."\n" + .'- 用户需要具有访问边缘转码服务的权限,才能正常调用本接口。'."\n" + .'- 本接口只返回距今180天内的任务,且最后一次操作时间需要在这180天之内。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '**CustomTemplate说明**'."\n" - .'|名称 |类型 |必选 |描述 |'."\n" - .'| ---------|------- |------ | ----------- |'."\n" - .'|height|String|必选|输出分辨率的高。
scale为16:9时最大支持1920x1080。
scale为4:3时最大支持1440x1080 。|'."\n" - .'|scale|String|必选|输出分辨率高宽比。只能接受 String 取值如下:
[3:4]
[4:3]
[16:9]
[9:16]|'."\n" - .'|bframes|String|必选|输出流b帧数。取值需要大于0小于9。|'."\n" - .'|cdesc|String|必选|编码格式。只能取值 h264。|'."\n" - .'|gop|String|必选|关键帧间隔。取值大于25小于250。|'."\n", - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteCustomTemplate' => [ - 'summary' => '删除合流自定义模板。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '## 请求参数使用说明'."\n" + .'- 本接口支持按转码类型(Type)、转码任务状态(Status)筛选查询结果。'."\n" + .'- 本接口支持按任务创建时间(CreateTime)对查询结果排序,默认为降序。'."\n" + .'- 本接口支持以任务ID(精确匹配)、任务名称(模糊查询)为关键字(Keyword)进行查询。 ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'live:ListEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobList\\": {\\n \\"Job\\": [\\n {\\n \\"CreateTime\\": \\"2023-07-24T16:44:55Z\\",\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"LastStartAt\\": \\"2023-07-25T02:48:58Z\\",\\n \\"LastStopAt\\": \\"2023-07-25T05:48:58Z\\",\\n \\"Name\\": \\"my_job\\",\\n \\"Status\\": \\"0\\",\\n \\"StreamInput\\": \\"rtmp://mydomain/app/stream1\\",\\n \\"StreamOutput\\": \\"rtmp://testdomain/app/stream2\\",\\n \\"TemplateId\\": \\"9b1571b513cb44f7a1ba6ae561ff****\\",\\n \\"TemplateName\\": \\"my_template\\",\\n \\"Type\\": \\"common\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TotalCount\\": 100\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 2023-07-24T16:44:55Z\\n ****20b48fb04483915d4f2cd8ac****\\n 2023-07-25T02:48:58Z\\n 2023-07-25T05:48:58Z\\n my_job\\n 0\\n rtmp://mydomain/app/stream1\\n rtmp://testdomain/app/stream2\\n 9b1571b513cb44f7a1ba6ae561ff****\\n my_template\\n common\\n \\n ******3B-0E1A-586A-AC29-742247******\\n 100\\n","errorExample":""}]', + ], + 'ListEdgeTranscodeTemplate' => [ + 'summary' => '查询边缘转码模板列表。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '106913', - 'abilityTreeNodes' => [ - 'FEATUREliveI16NIW', - ], + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Template', + 'name' => 'ClusterId', 'in' => 'query', - 'schema' => [ - 'description' => '模板名String,需要删除的模板名。', - 'type' => 'string', - 'required' => true, - 'example' => 'TestTemplate', - ], + 'schema' => ['description' => '机房ID。', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******'], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => ['description' => '边缘转码类型,枚举:'."\n" + .'- **common** 通用(普通+窄带高清1.0)。'."\n" + .'- **nbhd-2** 窄带高清2.0。'."\n" + .'- **ultra-hd** 超高清。'."\n" + ."\n" + .'> 当该参数不填写时,系统会展示用户拥有的转码类型权限的转码模板。', 'type' => 'string', 'required' => false, 'example' => 'nbhd-2'], + ], + [ + 'name' => 'VideoCodec', + 'in' => 'query', + 'schema' => ['description' => '视频编码格式,枚举:'."\n" + .'- H.264。'."\n" + .'- H.265。'."\n" + ."\n" + .'> 当该参数不填写时,系统会展示用户拥有的视频编码格式权限的转码模板。', 'type' => 'string', 'required' => false, 'example' => 'H.264'], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['description' => '当前页码,默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页大小,每页显示条数。默认值为10,最大值为100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ + 'name' => 'SortBy', + 'in' => 'query', + 'schema' => ['description' => '排序规则,按模板创建时间(CreateTime)排序。默认是desc,枚举:'."\n" + .'- desc 降序排序。'."\n" + .'- asc 升序排序。', 'type' => 'string', 'required' => false, 'example' => 'desc'], + ], + [ + 'name' => 'Keyword', + 'in' => 'query', + 'schema' => ['description' => '搜索关键词,枚举:'."\n" + .'- 模板ID,模板ID支持精确匹配。'."\n" + .'- 模板名称,模板名称支持模糊搜索。', 'type' => 'string', 'required' => false, 'example' => 'baseline'], ], ], 'responses' => [ @@ -47099,123 +36675,153 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BC1E78D3-FA8B-4457-DEE2-6093E1232254', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], + 'TemplateList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Template' => [ + 'description' => '边缘转码模板列表。', + 'type' => 'array', + 'items' => [ + 'description' => '边缘转码模板列表。', + 'type' => 'object', + 'properties' => [ + 'Bitrate' => ['description' => '码率配置,有固定码率,码率随源(ws)2种。', 'type' => 'string', 'example' => '3000'], + 'Codec' => ['description' => '视频编码格式,枚举:'."\n" + .'- H.264。'."\n" + .'- H.265。', 'type' => 'string', 'example' => 'H.264'], + 'CreateTime' => ['description' => '模板创建时间。', 'type' => 'string', 'example' => '2023-07-25T02:48:58Z'], + 'Fps' => ['description' => '帧率配置,有固定帧率,帧率随源(ws)2种。', 'type' => 'string', 'example' => '30'], + 'Gop' => ['description' => '关键帧配置,有按帧配置,按秒配置,关键帧随源(ws)3种。', 'type' => 'string', 'example' => '2s'], + 'Name' => ['description' => '模版名称。', 'type' => 'string', 'example' => 'my_template'], + 'Resolution' => ['description' => '分辨率配置,有固定分辨率,分辨率随源(ws)2种。'."\n" + .'> 当使用固定分辨率时,width/height取值为-1/-2,则表示宽/高自适应。', 'type' => 'string', 'example' => '1920*1080'], + 'TemplateId' => ['description' => '模板ID。', 'type' => 'string', 'example' => '9b1571b513cb44f7a1ba6ae561ff46f7'], + 'Type' => ['description' => '边缘转码类型。', 'type' => 'string', 'example' => 'common'], + ], + ], + ], + ], + 'description' => '', ], + 'TotalCount' => ['description' => '总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'CustomTemplateInvalid', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '操作拒绝,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC1E78D3-FA8B-4457-DEE2-6093E1232254\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BC1E78D3-FA8B-4457-DEE2-6093E1232254\\n","errorExample":""}]', - 'title' => '删除合流自定义模板', - 'description' => '先获取需要删除的模板名,再调用本接口删除合流自定义模板。'."\n" + 'title' => '查询边缘转码模板列表', + 'description' => '- 本接口用于查询边缘转码模板列表。'."\n" ."\n" + .'- 用户需要具有访问边缘转码服务的权限,才能正常调用本接口。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'GetCustomTemplate' => [ - 'summary' => '获取合流自定义模板。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListEdgeTranscodeTemplate'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListEdgeTranscodeTemplate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TemplateList\\": {\\n \\"Template\\": [\\n {\\n \\"Bitrate\\": \\"3000\\",\\n \\"Codec\\": \\"H.264\\",\\n \\"CreateTime\\": \\"2023-07-25T02:48:58Z\\",\\n \\"Fps\\": \\"30\\",\\n \\"Gop\\": \\"2s\\",\\n \\"Name\\": \\"my_template\\",\\n \\"Resolution\\": \\"1920*1080\\",\\n \\"TemplateId\\": \\"9b1571b513cb44f7a1ba6ae561ff46f7\\",\\n \\"Type\\": \\"common\\"\\n }\\n ]\\n },\\n \\"TotalCount\\": 100\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n \\n 3000\\n H.264\\n 2023-07-25T02:48:58Z\\n 30\\n 2s\\n my_template\\n 1920*1080\\n 9b1571b513cb44f7a1ba6ae561ff46f7\\n common\\n \\n 100\\n","errorExample":""}]', + ], + 'ListEventSub' => [ + 'summary' => '查询订阅房间消息列表。', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveI16NIW', - ], + 'abilityTreeCode' => '198164', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Template', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '模板名String,需要查询的自定义模板名。', - 'type' => 'string', - 'required' => true, - 'example' => 'TestTemplate', - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => '9qb1****'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BC1E78D3-FA8B-4457-DEE2-6093E1232254', - ], - 'CustomTemplate' => [ - 'description' => '模板配置。', - 'type' => 'string', - 'example' => '{height:1080,scale:[16:9],gop:60,bframes:30,cdesc:h264}', - ], - 'Template' => [ - 'description' => '模板名。', - 'type' => 'string', - 'example' => 'TestTemplate', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08'], + 'Subscribers' => [ + 'description' => '订阅事件列表。', + 'type' => 'array', + 'items' => [ + 'description' => '订阅事件详情。', + 'type' => 'object', + 'properties' => [ + 'SubId' => ['title' => '订阅ID', 'description' => '订阅事件ID。', 'type' => 'string', 'example' => '09be0d2254cb5a89f4cbd86403ec****'], + 'ChannelId' => ['description' => '订阅的频道ID。', 'type' => 'string', 'example' => 'testmodify'], + 'Events' => [ + 'title' => 'ChannelEvent表示频道事件,包括频道开启与关闭;'."\n" + .'UserEvent表示用户事件,包括用户入离会等', + 'description' => '订阅的事件,取值:'."\n" + ."\n" + .'- ChannelEvent:频道事件,包括频道开启与关闭。'."\n" + .'- UserEvent:用户事件,包括用户入离会等。', + 'type' => 'array', + 'items' => ['description' => '订阅的事件,取值:'."\n" + ."\n" + .'- ChannelEvent:频道事件,包括频道开启与关闭。'."\n" + .'- UserEvent:用户事件,包括用户入离会等。', 'type' => 'string', 'example' => 'ChannelEvent'], + ], + 'CallbackUrl' => ['description' => '回调地址。', 'type' => 'string', 'example' => 'http://****.com/callback'], + 'CreateTime' => ['title' => '创建时间', 'description' => '创建订阅时间。东八区时间,是UTC+8时区的时间。格式:yyyy-MM-dd hh:mm:ss。', 'type' => 'string', 'example' => '2023-08-18 10:14:49'], + 'ModifyTime' => ['title' => '修改时间', 'description' => '修改订阅时间。东八区时间,是UTC+8时区的时间。格式:yyyy-MM-dd hh:mm:ss。', 'type' => 'string', 'example' => '2023-08-18 10:14:49'], + 'Users' => [ + 'title' => '只回调指定userid的事件;不建议与role同用;'."\n" + .'指定此参数必须同时指定ChannelId', + 'description' => '只回调此用户的事件,不建议与Roles同用。', + 'type' => 'array', + 'items' => ['description' => '只回调此用户的事件,不建议与Roles同用。', 'type' => 'string', 'example' => 'testUser'], + ], + 'Roles' => ['title' => '1只回调主播事件,2只回调观众事件;'."\n" + .'无值、0、其他值表示回调所有用户事件', 'description' => '回调哪个角色的事件,取值:'."\n" + ."\n" + .'- 1:只回调主播事件。'."\n" + .'- 2:只回调观众事件。'."\n" + ."\n" + .'无值或其他值表示回调所有用户事件。'."\n" + .'> 创建订阅不再支持此参数,此参数已废弃。', 'type' => 'integer', 'format' => 'int32', 'deprecated' => true, 'example' => '1'], + ], + ], ], ], ], @@ -47223,107 +36829,114 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'CustomTemplateInvalid', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], ], - 404 => [ - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BC1E78D3-FA8B-4457-DEE2-6093E1232254\\",\\n \\"CustomTemplate\\": \\"{height:1080,scale:[16:9],gop:60,bframes:30,cdesc:h264}\\",\\n \\"Template\\": \\"TestTemplate\\"\\n}","errorExample":""},{"type":"xml","example":"\\n BC1E78D3-FA8B-4457-DEE2-6093E1232254\\n {height:1080,scale:[16:9],gop:60,bframes:30,cdesc:h264}\\n \\n","errorExample":""}]', - 'title' => '获取自定义合流模板', - 'description' => '先获取需要查询的自定义模板名,再调用本接口获取合流自定义模板。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'GetAllCustomTemplates' => [ - 'summary' => '获取全量自定义合流模板。', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询订阅房间消息列表', + 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-06-14T07:14:01.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListEventSub'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListEventSub', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08\\",\\n \\"Subscribers\\": [\\n {\\n \\"SubId\\": \\"09be0d2254cb5a89f4cbd86403ec****\\",\\n \\"ChannelId\\": \\"testmodify\\",\\n \\"Events\\": [\\n \\"ChannelEvent\\"\\n ],\\n \\"CallbackUrl\\": \\"http://****.com/callback\\",\\n \\"CreateTime\\": \\"2023-08-18 10:14:49\\",\\n \\"ModifyTime\\": \\"2023-08-18 10:14:49\\",\\n \\"Users\\": [\\n \\"testUser\\"\\n ],\\n \\"Roles\\": 1\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08\\n \\n 09be0d2254cb5a89f4cbd86403ec****\\n testmodify\\n ChannelEvent\\n http://****.com/callback\\n 2023-08-18 10:14:49\\n 2023-08-18 10:14:49\\n testUser\\n 1\\n \\n","errorExample":""}]', + ], + 'ListEventSubEvent' => [ + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveI16NIW', - ], - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '订阅的应用ID。', 'type' => 'string', 'required' => true, 'example' => '9qb1****'], ], [ - 'name' => 'UserId', + 'name' => 'SubscribeId', 'in' => 'query', - 'schema' => [ - 'description' => '用户ID。', - 'type' => 'string', - 'required' => false, - 'example' => '25346073170691****', - ], + 'schema' => ['description' => '订阅ID。您可通过[CreateEventSub](~~2848209~~)接口的返回参数查询订阅ID。', 'type' => 'string', 'required' => false, 'example' => 'ad53276431c****'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '起始时间,用UNIX时间戳表示,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '2234313863', 'minimum' => '0', 'example' => '1698195600'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间,用UNIX时间戳表示,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '2234313863', 'minimum' => '0', 'example' => '1698201013'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '单页显示记录的数量,取值范围:1~100。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '100', 'minimum' => '10', 'example' => '10'], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['description' => '页码。取值范围:大于等于1。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999999', 'minimum' => '1', 'example' => '20'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'CustomTemplates' => [ - 'description' => '模板名和模板配置列表。', - 'type' => 'string', - 'example' => ' [{"templateConfig": "{\\"cdesc\\":\\"H264\\",\\"scale\\":\\"[3:4]\\",\\"gop\\":\\"1\\",\\"bframes\\":\\"1\\",\\"height\\":\\"1080\\"}","templateName": "custom1"},{"templateConfig": "{\\"ar\\":\\"44100\\",\\"cdesc\\":\\"H264\\",\\"scale\\":\\"[3:4]\\",\\"gop\\":\\"1\\",\\"bframes\\":\\"1\\",\\"height\\":\\"1080\\"}","templateName": "cus"}]', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4791648Q-813C-6254-865C-0ED913661230', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CC8CB656-A7BA-1811-9D6B-4CC187E988BD'], + 'Count' => ['description' => '当前页返回的回调记录总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'HasMore' => ['description' => '是否有下一页。', 'type' => 'boolean', 'example' => 'false'], + 'Logs' => [ + 'description' => '回调记录。', + 'type' => 'array', + 'items' => [ + 'description' => '回调记录。', + 'type' => 'object', + 'properties' => [ + 'AppId' => ['description' => '订阅的应用ID。', 'type' => 'string', 'example' => '9qb1****'], + 'SubId' => ['description' => '订阅事件ID。', 'type' => 'string', 'example' => 'ad53276431c****'], + 'MessageId' => ['description' => '回调记录ID。', 'type' => 'string', 'example' => '875d5266cbabb1834cc84a105cf6****'], + 'Data' => ['description' => '回调内容详情。', 'type' => 'string', 'example' => '{\\"MsgId\\":\\"875d5266cbabb1834cc84a105cf68454\\",\\"MsgTimestamp\\":1697545591,\\"SubscribeId\\":\\"09be0d2254cb5a89f4cbd86403ec5343\\",\\"AppId\\":\\"xxx\\",\\"ChannelId\\":\\"9099\\",\\"Contents\\":[{\\"Event\\":\\"UserEvent\\",\\"UserEvent\\":{\\"UserId\\":\\"linux_test\\",\\"EventTag\\":\\"Leave\\",\\"SessionId\\":\\"je7y2sBZJZQ0VBJZrh4LnBkxvGH2WyVs\\",\\"Timestamp\\":1697545591,\\"ChannelProfile\\":\\"interactive_live\\",\\"US\\":5068748604047364,\\"Reason\\":1,\\"Role\\":1,\\"TerminalType\\":6,\\"UserType\\":2}}]}'], + 'Cost' => ['description' => '回调时长,单位:毫秒。', 'type' => 'integer', 'format' => 'int32', 'example' => '22'], + 'Time' => ['description' => '产生回调记录的时间。', 'type' => 'string', 'example' => '2023-10-17 20:26:31.988'], + 'Url' => ['description' => '回调地址。', 'type' => 'string', 'example' => 'http://****.com/callback'], + 'Code' => ['description' => '错误码,200为回调成功。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + ], + ], ], ], ], @@ -47331,238 +36944,231 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'CustomTemplateInvalid', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], ], - 404 => [ - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CustomTemplates\\": \\" [{\\\\\\"templateConfig\\\\\\": \\\\\\"{\\\\\\\\\\\\\\"cdesc\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"H264\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"scale\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"[3:4]\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"gop\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"bframes\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"height\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1080\\\\\\\\\\\\\\"}\\\\\\",\\\\\\"templateName\\\\\\": \\\\\\"custom1\\\\\\"},{\\\\\\"templateConfig\\\\\\": \\\\\\"{\\\\\\\\\\\\\\"ar\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"44100\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"cdesc\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"H264\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"scale\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"[3:4]\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"gop\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"bframes\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"height\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1080\\\\\\\\\\\\\\"}\\\\\\",\\\\\\"templateName\\\\\\": \\\\\\"cus\\\\\\"}]\\",\\n \\"RequestId\\": \\"4791648Q-813C-6254-865C-0ED913661230\\"\\n}","errorExample":""},{"type":"xml","example":"\\n [{\\"templateConfig\\": \\"{\\\\\\"cdesc\\\\\\":\\\\\\"H264\\\\\\",\\\\\\"scale\\\\\\":\\\\\\"[3:4]\\\\\\",\\\\\\"gop\\\\\\":\\\\\\"1\\\\\\",\\\\\\"bframes\\\\\\":\\\\\\"1\\\\\\",\\\\\\"height\\\\\\":\\\\\\"1080\\\\\\"}\\",\\"templateName\\": \\"custom1\\"},{\\"templateConfig\\": \\"{\\\\\\"ar\\\\\\":\\\\\\"44100\\\\\\",\\\\\\"cdesc\\\\\\":\\\\\\"H264\\\\\\",\\\\\\"scale\\\\\\":\\\\\\"[3:4]\\\\\\",\\\\\\"gop\\\\\\":\\\\\\"1\\\\\\",\\\\\\"bframes\\\\\\":\\\\\\"1\\\\\\",\\\\\\"height\\\\\\":\\\\\\"1080\\\\\\"}\\",\\"templateName\\": \\"cus\\"}]\\n 4791648Q-813C-6254-865C-0ED913661230\\n","errorExample":""}]', - 'title' => '获取全量自定义合流模板', - 'description' => '通过调用本接口获取全量自定义合流模板。返回模板名和模板配置列表。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询回调记录', + 'summary' => '查询回调记录。', + 'description' => '- 最大查询跨度:7天。'."\n" + .'- 最小查询粒度:1分钟。'."\n" + .'- 最大查询范围:最近7天的数据。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddLiveStreamWatermark' => [ - 'summary' => '调用AddLiveStreamWatermark添加水印模板。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListEventSubEvent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CC8CB656-A7BA-1811-9D6B-4CC187E988BD\\",\\n \\"Count\\": 1,\\n \\"HasMore\\": false,\\n \\"Logs\\": [\\n {\\n \\"AppId\\": \\"9qb1****\\",\\n \\"SubId\\": \\"ad53276431c****\\",\\n \\"MessageId\\": \\"875d5266cbabb1834cc84a105cf6****\\",\\n \\"Data\\": \\"{\\\\\\\\\\\\\\"MsgId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"875d5266cbabb1834cc84a105cf68454\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"MsgTimestamp\\\\\\\\\\\\\\":1697545591,\\\\\\\\\\\\\\"SubscribeId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"09be0d2254cb5a89f4cbd86403ec5343\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"AppId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"xxx\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ChannelId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"9099\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Contents\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"Event\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"UserEvent\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"UserEvent\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"UserId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"linux_test\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"EventTag\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Leave\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"SessionId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"je7y2sBZJZQ0VBJZrh4LnBkxvGH2WyVs\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Timestamp\\\\\\\\\\\\\\":1697545591,\\\\\\\\\\\\\\"ChannelProfile\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"interactive_live\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"US\\\\\\\\\\\\\\":5068748604047364,\\\\\\\\\\\\\\"Reason\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"Role\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"TerminalType\\\\\\\\\\\\\\":6,\\\\\\\\\\\\\\"UserType\\\\\\\\\\\\\\":2}}]}\\",\\n \\"Cost\\": 22,\\n \\"Time\\": \\"2023-10-17 20:26:31.988\\",\\n \\"Url\\": \\"http://****.com/callback\\",\\n \\"Code\\": 200\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n CC8CB656-A7BA-1811-9D6B-4CC187E988BD\\n 1\\n false\\n \\n 9qb1****\\n ad53276431c****\\n 875d5266cbabb1834cc84a105cf6****\\n {\\\\\\"MsgId\\\\\\":\\\\\\"875d5266cbabb1834cc84a105cf68454\\\\\\",\\\\\\"MsgTimestamp\\\\\\":1697545591,\\\\\\"SubscribeId\\\\\\":\\\\\\"09be0d2254cb5a89f4cbd86403ec5343\\\\\\",\\\\\\"AppId\\\\\\":\\\\\\"xxx\\\\\\",\\\\\\"ChannelId\\\\\\":\\\\\\"9099\\\\\\",\\\\\\"Contents\\\\\\":[{\\\\\\"Event\\\\\\":\\\\\\"UserEvent\\\\\\",\\\\\\"UserEvent\\\\\\":{\\\\\\"UserId\\\\\\":\\\\\\"linux_test\\\\\\",\\\\\\"EventTag\\\\\\":\\\\\\"Leave\\\\\\",\\\\\\"SessionId\\\\\\":\\\\\\"je7y2sBZJZQ0VBJZrh4LnBkxvGH2WyVs\\\\\\",\\\\\\"Timestamp\\\\\\":1697545591,\\\\\\"ChannelProfile\\\\\\":\\\\\\"interactive_live\\\\\\",\\\\\\"US\\\\\\":5068748604047364,\\\\\\"Reason\\\\\\":1,\\\\\\"Role\\\\\\":1,\\\\\\"TerminalType\\\\\\":6,\\\\\\"UserType\\\\\\":2}}]}\\n 22\\n \\n http://****.com/callback\\n 200\\n \\n","errorExample":""}]', + ], + 'ListLiveDelayConfig' => [ + 'summary' => '调用ListLiveDelayConfig查询直播延播配置列表。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveCT0GRQ', - ], + 'abilityTreeNodes' => ['FEATUREliveBP94ZY'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Type', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '水印类型。取值:'."\n" - ."\n" - .'- **0**:图片。'."\n" - ."\n" - .'- **1**:文字(目前只支持图片)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '0', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'Name', + 'name' => 'PageNum', 'in' => 'query', - 'schema' => [ - 'description' => '水印名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'livewatermark****', - ], + 'schema' => ['description' => '分页的页码。默认值:1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'RefWidth', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '参考背景视频宽,单位:px。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1920', - ], + 'schema' => ['description' => '每页大小。取值范围:5~30,默认值:10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], - [ - 'name' => 'RefHeight', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '参考背景视频高,单位:px。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1080', + 'type' => 'object', + 'properties' => [ + 'DelayConfigList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DelayConfig' => [ + 'description' => '延播配置列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'App' => ['description' => '直播流所属应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'DelayTime' => ['description' => '结束时间戳,单位:秒。', 'type' => 'string', 'example' => '60'], + 'Domain' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'Stream' => ['description' => '直播流流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'TaskTriggerMode' => ['description' => '任务触发模式,取值:'."\n" + .'- **PUBLISH_ONLY**:仅支持带延播推流参数触发。'."\n" + ."\n" + .'- **CONFIG_ONLY**:仅支持配置触发,推流参数无效。'."\n" + ."\n" + .'- **PUBLISH_CONFIG**:同时支持推流和配置,并且推流参数高优于配置。', 'type' => 'string', 'example' => 'PUBLISH_ONLY'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A3136B58-5876-4168-83CA-B562781981A0'], + 'Total' => ['description' => '延播配置数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + ], + 'description' => '', ], ], - [ - 'name' => 'XOffset', - 'in' => 'query', - 'schema' => [ - 'description' => '⽔印X轴偏移,单位:px。'."\n" - .'>相对于参考背景宽RefWidth, 如果选择的是TopLeft,那么XOffset是指⽔印图⽚的左上⻆和背景视频的左上⻆的相对位置X。其中坐标指向背景视频中⼼的⽅向为正⽅向,即X轴的正⽅向是向右。', - 'type' => 'number', - 'format' => 'float', - 'required' => true, - 'example' => '50.0', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameters', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ], + ], + 'title' => '查询延播配置列表', + 'description' => '本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveDelayConfig'], ], + ], + 'ramActions' => [ [ - 'name' => 'YOffset', - 'in' => 'query', - 'schema' => [ - 'description' => '⽔印Y轴偏移,单位:px。'."\n" - .'>相对于参考背景⾼RefHeight,如果选择的是TopLeft,那么YOffset是指⽔印图⽚的左上⻆和背景视频的左上⻆的相对位置Y。其中坐标指向背景视频中⼼的⽅向为正⽅向,即Y轴的正⽅向是向下。', - 'type' => 'number', - 'format' => 'float', - 'required' => true, - 'example' => '100.0', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListLiveDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DelayConfigList\\": {\\n \\"DelayConfig\\": [\\n {\\n \\"App\\": \\"liveApp****\\",\\n \\"DelayTime\\": \\"60\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"Stream\\": \\"liveStream****\\",\\n \\"TaskTriggerMode\\": \\"PUBLISH_ONLY\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"A3136B58-5876-4168-83CA-B562781981A0\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n liveApp****\\n 60\\n example.com\\n liveStream****\\n PUBLISH_ONLY\\n \\n \\n A3136B58-5876-4168-83CA-B562781981A0\\n 1\\n","errorExample":""}]', + ], + 'ListLiveMessageApps' => [ + 'summary' => '调用ListLiveMessageApps查询互动消息应用列表。', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'Height', - 'in' => 'query', - 'schema' => [ - 'description' => '水印图片高度,单位:px。对比参考背景RefHeight,最终按照⽐例进⾏⾃适应缩放为准。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '200', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '193889', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], + ], + 'parameters' => [ [ - 'name' => 'Transparency', + 'name' => 'SortType', 'in' => 'query', + 'allowEmptyValue' => false, 'schema' => [ - 'description' => '水印透明度,数值越小越透明。取值:0~255。', + 'title' => '排序方式,按创建时间先后,1为顺序,2为逆序', + 'description' => '排序方式,按创建时间先后进行排序。取值:'."\n" + .'- 1:顺序'."\n" + .'- 2:逆序', 'type' => 'integer', 'format' => 'int32', 'required' => true, - 'example' => '255', - ], - ], - [ - 'name' => 'OffsetCorner', - 'in' => 'query', - 'schema' => [ - 'description' => '位置。取值:'."\n" - ."\n" - .'- TopLeft:左上。'."\n" - ."\n" - .'- TopRight:右上。'."\n" - ."\n" - .'- BottomLeft:左下。'."\n" - ."\n" - .'- BottomRight:右下。', - 'type' => 'string', - 'required' => true, - 'example' => 'TopRight', - ], - ], - [ - 'name' => 'PictureUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '水印图片链接。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://example.com', + 'maximum' => '2', + 'minimum' => '1', + 'example' => '1', + 'enum' => ['1', '2'], ], ], [ - 'name' => 'Description', + 'name' => 'NextPageToken', 'in' => 'query', - 'schema' => [ - 'description' => '自定义水印描述信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'my watermark', - ], + 'schema' => ['title' => '', 'description' => '查询页的起始位置,若为空或者-1则默认为首页。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '-1'], ], [ - 'name' => 'Domain', + 'name' => 'DataCenter', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.aliyundoc.com', - ], + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'TemplateId' => [ - 'description' => '水印模板ID。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64- af62-20e91b96****', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'B8EB4994-1368-1458-B9F3-5B88D76D734C'], + 'HasMore' => ['description' => '是否有下一页。', 'type' => 'boolean', 'example' => 'true'], + 'NextPageToken' => ['description' => '下一页的起始位置,Hasmore为true时返回。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'AppList' => [ + 'description' => '互动消息应用列表。', + 'type' => 'array', + 'items' => [ + 'description' => '列表详细信息。', + 'type' => 'object', + 'properties' => [ + 'AppId' => ['description' => '所查询的互动消息应用ID。', 'type' => 'string', 'example' => 'demo'], + 'AppKey' => ['description' => '互动消息应用的AppKey,在该互动消息应用ID的相关操作鉴权时需要该信息。', 'type' => 'string', 'example' => '**********************************'], + 'AppSign' => ['description' => '互动消息应用签名,互动消息服务SDK需要该信息。', 'type' => 'string', 'example' => '**************************************************************************'], + 'Disable' => ['description' => '该互动消息应用是否被禁用。', 'type' => 'string', 'example' => 'false'], + 'AppName' => ['description' => 'App名称。', 'type' => 'string', 'example' => 'testApp'], + 'CreateTime' => ['description' => '创建时间,用UNIX时间戳表示,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1698305471'], + 'ModifyTime' => ['description' => '修改时间,用UNIX时间戳表示,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1698305471'], + 'MsgLifeCycle' => ['description' => 'App内群组消息的存储时效档位,取值:'."\n" + ."\n" + .'- 0:默认值,存储30天。'."\n" + .'- 1:存储90天。'."\n" + .'- 2:存储180天。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'DataCenter' => ['description' => '数据中心。', 'type' => 'string', 'example' => 'cn-shanghai'], + ], + ], ], ], ], @@ -47570,81 +37176,152 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TemplateId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n5c6a2a0df228-4a64- af62-20e91b9676b3\\n445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', - 'title' => '添加⽔印模板', - 'description' => '- 本接口支持添加直播⽔印模板配置,模板配置支持描述⽔印内容、布局等信息。'."\n" - ."\n" - .'- 添加水印模板后,您还需要调用[AddLiveStreamWatermarkRule](~~2848100~~)接口添加水印规则,重新推流后,播流中才能带水印。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteLiveStreamWatermark' => [ - 'summary' => '调用DeleteLiveStreamWatermark删除指定⽔印模板。', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询直播互动应用列表', + 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-03-26T02:53:05.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2025-01-23T12:00:01.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-08-01T02:18:30.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-01-09T03:34:27.000Z', 'description' => '响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveMessageApps'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListLiveMessageApps', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B8EB4994-1368-1458-B9F3-5B88D76D734C\\",\\n \\"HasMore\\": true,\\n \\"NextPageToken\\": 1,\\n \\"AppList\\": [\\n {\\n \\"AppId\\": \\"demo\\",\\n \\"AppKey\\": \\"**********************************\\",\\n \\"AppSign\\": \\"**************************************************************************\\",\\n \\"Disable\\": \\"false\\",\\n \\"AppName\\": \\"testApp\\",\\n \\"CreateTime\\": 1698305471,\\n \\"ModifyTime\\": 1698305471,\\n \\"MsgLifeCycle\\": 1,\\n \\"DataCenter\\": \\"cn-shanghai\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n B8EB4994-1368-1458-B9F3-5B88D76D734C\\n true\\n 1\\n \\n demo\\n **********************************\\n **************************************************************************\\n false\\n testApp\\n 1698305471\\n 1698305471\\n 1\\n cn-shanghai\\n \\n","errorExample":""}]', + ], + 'ListLiveMessageGroupByPage' => [ + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveCT0GRQ', - ], + 'abilityTreeCode' => '222094', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', + 'in' => 'query', + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], + ], + [ + 'name' => 'SortType', 'in' => 'query', 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'description' => '排序方式,按群组创建时间先后进行排序。取值:'."\n" + .'- 1:正序。'."\n" + .'- 2:逆序。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'maximum' => '2', + 'minimum' => '1', + 'example' => '1', + 'enum' => ['1', '2'], ], ], [ - 'name' => 'TemplateId', + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页大小,取值范围为:\\[1,50\\]。'."\n" + ."\n" + .'默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'example' => '20'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '取第几页,取值范围为:\\[1,10000\\]。'."\n" + ."\n" + .'默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '1'], + ], + [ + 'name' => 'GroupStatus', 'in' => 'query', 'schema' => [ - 'description' => '水印模板ID。'."\n" - .'>可查看[AddLiveStreamWatermark](~~2848096~~)接口返回参数值获取TemplateId。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', + 'description' => '群组状态,默认值为0。取值:'."\n" + .'- 0:查询全部群组。'."\n" + .'- 1:查询未被删除群组。'."\n" + .'- 2:查询已删除群组。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'enum' => ['0', '1', '2'], ], ], + [ + 'name' => 'DataCenter', + 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], + ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64-af62-20e91b******', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'B5D95365-5A46-1A6A-BBF5-C7B6BDED****'], + 'TotalCount' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'PageNumber' => ['description' => '返回数据的当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '分页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'GroupList' => [ + 'description' => '群组列表。', + 'type' => 'array', + 'items' => [ + 'description' => '群组对象。', + 'type' => 'object', + 'properties' => [ + 'GroupId' => ['description' => '群组ID。', 'type' => 'string', 'example' => 'cU9MeBqf****'], + 'CreatorId' => ['description' => '创建者ID。', 'type' => 'string', 'example' => 'user_77'], + 'AdminList' => [ + 'description' => '管理员用户ID列表。', + 'type' => 'array', + 'items' => ['description' => '管理员用户ID。', 'type' => 'string', 'example' => 'uid1'], + ], + 'Createtime' => ['description' => '创建时间,用UNIX时间戳表示,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1698299727'], + 'GroupName' => ['description' => '群组名。', 'type' => 'string', 'example' => 'mytestgroup'], + 'GroupInfo' => ['description' => '群组扩展信息。', 'type' => 'string', 'example' => 'testgroupinfo'], + 'Delete' => ['description' => '是否已删除。', 'type' => 'boolean', 'example' => 'true'], + ], + ], ], ], ], @@ -47652,194 +37329,152 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b******\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5c6a2a0df228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', - 'title' => '删除⽔印模板', - 'description' => '本接口支持删除直播指定TemplateId的⽔印模板。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdateLiveStreamWatermark' => [ - 'summary' => '调用UpdateLiveStreamWatermark更新水印模板。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveCT0GRQ', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询互动消息群组列表(支持翻页)', + 'summary' => '查询互动消息群组列表,并支持翻页功能。', + 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveMessageGroupByPage'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListLiveMessageGroupByPage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B5D95365-5A46-1A6A-BBF5-C7B6BDED****\\",\\n \\"TotalCount\\": 50,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 20,\\n \\"GroupList\\": [\\n {\\n \\"GroupId\\": \\"cU9MeBqf****\\",\\n \\"CreatorId\\": \\"user_77\\",\\n \\"AdminList\\": [\\n \\"uid1\\"\\n ],\\n \\"Createtime\\": 1698299727,\\n \\"GroupName\\": \\"mytestgroup\\",\\n \\"GroupInfo\\": \\"testgroupinfo\\",\\n \\"Delete\\": true\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n B5D95365-5A46-1A6A-BBF5-C7B6BDED****\\n 50\\n 1\\n 20\\n \\n cU9MeBqf****\\n user_77\\n uid1\\n 1698299727\\n mytestgroup\\n testgroupinfo\\n true\\n \\n","errorExample":""}]', + ], + 'ListLiveMessageGroupMessages' => [ + 'summary' => '调用ListLiveMessageGroupMessages查询群组消息列表。', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'TemplateId', - 'in' => 'query', - 'schema' => [ - 'description' => '水印模板ID。'."\n" - .'>可查看[AddLiveStreamWatermark](~~2848096~~)接口返回参数值获取TemplateId。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'Name', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '水印名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'livewatermark****', - ], + 'schema' => ['description' => '需要查询的互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'Description', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '自定义水印描述信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'my watermark', - ], + 'schema' => ['description' => '需要查询的群组的GroupID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], [ - 'name' => 'RefWidth', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '参考背景视频宽,单位:px。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1920', - ], + 'schema' => ['title' => '一次显示的消息数量,最小10,最大50', 'description' => '一次显示的消息数量,取值范围**[10,50]**。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '50', 'minimum' => '10', 'example' => '10'], ], [ - 'name' => 'RefHeight', + 'name' => 'SortType', 'in' => 'query', 'schema' => [ - 'description' => '参考背景视频高,单位:px。', + 'title' => '排序方式,1为正序,2为逆序', + 'description' => '排序方式,按消息发送时间先后进行排序。取值:'."\n" + ."\n" + .'- 1:正序'."\n" + ."\n" + .'- 2:逆序', 'type' => 'integer', 'format' => 'int32', - 'required' => false, - 'example' => '1080', - ], - ], - [ - 'name' => 'XOffset', - 'in' => 'query', - 'schema' => [ - 'description' => '⽔印X轴偏移,单位:px。'."\n" - .'>相对于参考背景宽RefWidth, 如果选择的是TopLeft,那么XOffset是指⽔印图⽚的左上⻆和背景视频的左上⻆的相对位置X。其中坐标指向背景视频中⼼的⽅向为正⽅向,即X轴的正⽅向是向右。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '50.0', + 'required' => true, + 'maximum' => '2', + 'minimum' => '1', + 'example' => '1', + 'enum' => ['1', '2'], ], ], [ - 'name' => 'YOffset', + 'name' => 'NextPageToken', 'in' => 'query', - 'schema' => [ - 'description' => '⽔印Y轴偏移,单位:px。'."\n" - .'>相对于参考背景⾼RefHeight,如果选择的是TopLeft,那么YOffset是指⽔印图⽚的左上⻆和背景视频的左上⻆的相对位置Y。其中坐标指向背景视频中⼼的⽅向为正⽅向,即Y轴的正⽅向是向下。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '100.0', - ], + 'schema' => ['title' => '查询页的起始位置,若为空则默认为首页', 'description' => '查询页的起始位置,若为空则默认为首页。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1'], ], [ - 'name' => 'Height', + 'name' => 'MsgType', 'in' => 'query', - 'schema' => [ - 'description' => '水印图片高度,单位:px。对比参考背景RefHeight,最终按照⽐例进⾏⾃适应缩放为准。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '200', - ], + 'schema' => ['title' => '需要查询的消息类型,若为空则默认为全部类型', 'description' => '需要查询的消息类型,若为空则默认为全部类型。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1'], ], [ - 'name' => 'Transparency', + 'name' => 'BeginTime', 'in' => 'query', - 'schema' => [ - 'description' => '水印透明度,数值越小越透明。取值:0~255。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '255', - ], + 'schema' => ['title' => '查询起始时间,若为空则默认为最早时间', 'description' => '查询起始时间,用UNIX时间戳表示,单位:秒。若为空则默认为最早时间。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1697783235'], ], [ - 'name' => 'OffsetCorner', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '位置。取值:'."\n" - ."\n" - .'- TopLeft:左上。'."\n" - ."\n" - .'- TopRight:右上。'."\n" - ."\n" - .'- BottomLeft:左下。'."\n" - ."\n" - .'- BottomRight:右下。', - 'type' => 'string', - 'required' => false, - 'example' => 'TopRight', - ], + 'schema' => ['title' => '查询结束时间,若为空则默认为最晚时间', 'description' => '查询结束时间,用UNIX时间戳表示,单位:秒。若为空则默认为最晚时间。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1698301635'], ], [ - 'name' => 'PictureUrl', + 'name' => 'DataCenter', 'in' => 'query', - 'schema' => [ - 'description' => '水印图片链接。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://example.com', - ], + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64-af62-20e91b9676b3', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '1668FDC3-63D7-102F-B5D4-3D2F91D1****'], + 'GroupId' => ['description' => '需要查询的群组的GroupID。', 'type' => 'string', 'example' => 'grouptest'], + 'NextPageToken' => ['title' => '下一页的起始位置,若没有下一页则为0', 'description' => '下一页的起始位置,若没有下一页则为0。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Hasmore' => ['title' => '是否有下一页', 'description' => '是否有下一页。', 'type' => 'boolean', 'example' => 'false'], + 'MessageList' => [ + 'description' => '消息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '列表详情。', + 'type' => 'object', + 'properties' => [ + 'Sender' => [ + 'description' => '消息参数详情。', + 'type' => 'object', + 'properties' => [ + 'UserId' => ['description' => '消息发送用户的ID。', 'type' => 'string', 'example' => 'uid2'], + 'UserInfo' => ['description' => '消息发送用户的扩展信息。', 'type' => 'string', 'example' => 'testusermeta2'], + ], + ], + 'Body' => ['description' => '消息体。', 'type' => 'string', 'example' => 'step2 helo, cc group'], + 'Timestamp' => ['description' => '消息创建时间。用UNIX时间戳表示,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1697081134'], + 'MsgTid' => ['description' => '消息标识。', 'type' => 'string', 'example' => 'c-1-1-0'], + 'MsgType' => ['description' => '消息类型。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'SeqNumber' => ['description' => '消息序列号。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'TotalMessages' => ['description' => '总消息数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + ], + ], ], ], ], @@ -47847,108 +37482,127 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5c6a2a0df228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', - 'title' => '更新水印模板', - 'description' => '本接口支持对指定TemplateId的⽔印模板各项参数进⾏更新调整。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询群组消息列表', + 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DynamicUpdateWaterMarkStreamRule' => [ - 'summary' => '调用DynamicUpdateWaterMarkStreamRule动态更新水印。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListLiveMessageGroupMessages', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1668FDC3-63D7-102F-B5D4-3D2F91D1****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"NextPageToken\\": 0,\\n \\"Hasmore\\": false,\\n \\"MessageList\\": [\\n {\\n \\"Sender\\": {\\n \\"UserId\\": \\"uid2\\",\\n \\"UserInfo\\": \\"testusermeta2\\"\\n },\\n \\"Body\\": \\"step2 helo, cc group\\",\\n \\"Timestamp\\": 1697081134,\\n \\"MsgTid\\": \\"c-1-1-0\\",\\n \\"MsgType\\": 2,\\n \\"SeqNumber\\": 1,\\n \\"TotalMessages\\": 1\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 1668FDC3-63D7-102F-B5D4-3D2F91D1****\\n grouptest\\n 0\\n false\\n \\n \\n uid2\\n testusermeta2\\n \\n step2 helo, cc group\\n 1697081134\\n c-1-1-0\\n 2\\n 1\\n 1\\n \\n","errorExample":""}]', + ], + 'ListLiveMessageGroupUsers' => [ + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveCT0GRQ', - ], + 'abilityTreeCode' => '194318', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '需要查询的直播互动应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'Domain', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'pull.aliyundoc.com', - ], + 'schema' => ['description' => '需要查询的群组的GroupID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], [ - 'name' => 'App', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], + 'schema' => ['title' => '一次显示的用户数量,最小值10,最大值50', 'description' => '一次显示的用户数量,取值范围**[10,50]**。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '30', 'minimum' => '10', 'example' => '10'], ], [ - 'name' => 'Stream', + 'name' => 'SortType', 'in' => 'query', 'schema' => [ - 'description' => '水印流名称。', - 'type' => 'string', + 'title' => '排序方式,1为正序,2为逆序', + 'description' => '排序方式,按用户加入群组时间先后进行排序。取值:'."\n" + ."\n" + .'- 1:正序'."\n" + ."\n" + .'- 2:逆序', + 'type' => 'integer', + 'format' => 'int32', 'required' => true, - 'example' => 'liveStream****', + 'maximum' => '2', + 'minimum' => '1', + 'example' => '1', + 'enum' => ['1', '2'], ], ], [ - 'name' => 'TemplateId', + 'name' => 'NextPageToken', 'in' => 'query', - 'schema' => [ - 'description' => '水印模板ID,可调用[DescribeLiveStreamWatermarks](~~2848102~~)接口获取可用的水印模板ID。'."\n" - .'>此参数TemplateId用于替换直播过程中的水印模板ID。', - 'type' => 'string', - 'required' => true, - 'example' => '749b7594-86d6-37b1-513b-e1e19845****', - ], + 'schema' => ['title' => '查询页的起始位置,若为空则默认为首页', 'description' => '查询页的起始位置,若为空则默认为首页。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'DataCenter', + 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BE9407FF-F897-4DBD-338D-98A750AD805F', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'A1D75BEA-1329-116F-B29C-76F3F200****'], + 'GroupId' => ['description' => '需要查询的群组的GroupID。', 'type' => 'string', 'example' => 'grouptest'], + 'NextPageToken' => ['title' => '下一页的起始位置,若没有下一页则为0', 'description' => '下一页的起始位置,若没有下一页则为0。', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Hasmore' => ['title' => '是否有下一页', 'description' => '是否有下一页。', 'type' => 'boolean', 'example' => 'false'], + 'UserList' => [ + 'description' => '对象数组。', + 'type' => 'array', + 'items' => [ + 'description' => '数组详情。', + 'type' => 'object', + 'properties' => [ + 'UserId' => ['title' => '查询的用户Id', 'description' => '查询的用户ID。', 'type' => 'string', 'example' => 'uid1'], + 'UserInfo' => ['title' => '用户扩展信息', 'description' => '用户扩展信息。', 'type' => 'string', 'example' => 'info1'], + ], + ], ], ], ], @@ -47956,217 +37610,144 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 420 => [ + ['errorCode' => 'SuperLargeGroup', 'errorMessage' => '%s.', 'description' => '当群成员超过2000人时,群组升级为超级大群,不再支持查询用户列表'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BE9407FF-F897-4DBD-338D-98A750AD805F\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\nBE9407FF-F897-4DBD-338D-98A750AD805F\\r\\n","errorExample":""}]', - 'title' => '动态更新水印', - 'description' => '动态更新水印是指在直播过程中替换水印模板ID。'."\n" - .'调用本接口更新水印前需准备用于替换的水印模板ID,用于定义本接口中**TemplateId**参数。您可以调用[DescribeLiveStreamWatermarks](~~2848102~~)接口获取可用的水印模板ID。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询群组用户列表', + 'summary' => '调用ListLiveMessageGroupUsers查询群组用户列表。', + 'description' => '- 调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + .'- 对于超级大群(超过2000人的群组),不再提供成员列表查询。并且群成员进出群组通知之间会至少间隔5s,通知中不显示全部进出用户列表,但显示精确群人数。群组一旦升级为超级大群,群成员列表会马上清空,无法再恢复为普通群组,直到所有群成员退出群组(群组关闭),重新开启时才会恢复为普通群组。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveStreamWatermarks' => [ - 'summary' => '调用DescribeLiveStreamWatermarks查询水印模板列表。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-03-26T02:42:53.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListLiveMessageGroupUsers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A1D75BEA-1329-116F-B29C-76F3F200****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"NextPageToken\\": 0,\\n \\"Hasmore\\": false,\\n \\"UserList\\": [\\n {\\n \\"UserId\\": \\"uid1\\",\\n \\"UserInfo\\": \\"info1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n A1D75BEA-1329-116F-B29C-76F3F200****\\n grouptest\\n 0\\n false\\n \\n uid1\\n info1\\n \\n","errorExample":""}]', + ], + 'ListLiveMessageGroups' => [ + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveCT0GRQ', - ], + 'abilityTreeCode' => '194270', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'Domain', + 'name' => 'SortType', 'in' => 'query', 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'live.yourdomain.com', + 'title' => '排序方式,1为正序,2为逆序', + 'description' => '排序方式,按群组创建时间先后进行排序。取值:'."\n" + .'- 1:正序。'."\n" + .'- 2:逆序。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'maximum' => '2', + 'minimum' => '1', + 'example' => '1', + 'enum' => ['1', '2'], ], ], [ - 'name' => 'KeyWord', + 'name' => 'NextPageToken', 'in' => 'query', - 'schema' => [ - 'description' => '搜索关键词。模板ID或名称,名称支持模糊搜索。', - 'type' => 'string', - 'required' => false, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['title' => '查询页的起始位置,若为空或者 -1 则默认为首页', 'description' => '查询页的起始位置,若为空或-1,则默认为首页。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1001'], ], [ - 'name' => 'PageNumber', + 'name' => 'GroupStatus', 'in' => 'query', 'schema' => [ - 'description' => '分页的页数。不传默认为1。', + 'description' => '群组状态,默认值为0。取值:'."\n" + .'- 0:查询全部群组。'."\n" + .'- 1:查询未被删除群组。'."\n" + .'- 2:查询已删除群组。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', + 'enum' => ['0', '1', '2'], ], ], [ - 'name' => 'PageSize', + 'name' => 'DataCenter', 'in' => 'query', - 'schema' => [ - 'description' => '每⻚模板数值,不传默认为100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '水印模板信息。', + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'Total' => [ - 'description' => '符合条件的总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64- af62-20e91b9676b3', - ], - 'WatermarkList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Watermark' => [ - 'description' => '水印模板列表。', - 'type' => 'array', - 'items' => [ - 'description' => '水印模板列表。', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '水印类型。'."\n" - ."\n" - .'- 0:图片(目前只支持图片)。'."\n" - ."\n" - .'- 1:文字。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'XOffset' => [ - 'description' => '⽔印X轴偏移,单位:px。'."\n" - .'>相对于参考背景宽RefWidth, 如果选择的是TopLeft,那么XOffset是指⽔印图⽚的左上⻆和背景视频的左上⻆的相对位置X。其中坐标指向背景视频中⼼的⽅向为正⽅向,即X轴的正⽅向是向右。', - 'type' => 'number', - 'format' => 'float', - 'example' => '50.0', - ], - 'RefWidth' => [ - 'description' => '参考背景视频宽,单位:px。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1920', - ], - 'YOffset' => [ - 'description' => '⽔印Y轴偏移,单位:px。'."\n" - .'>相对于参考背景⾼RefHeight,如果选择的是TopLeft,那么YOffset是指⽔印图⽚的左上⻆和背景视频的左上⻆的相对位置Y。其中坐标指向背景视频中⼼的⽅向为正⽅向,即Y轴的正⽅向是向下。', - 'type' => 'number', - 'format' => 'float', - 'example' => '100.0', - ], - 'Height' => [ - 'description' => '水印图片高度,单位:px。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'RefHeight' => [ - 'description' => '参考背景视频高,单位:px。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1080', - ], - 'PictureUrl' => [ - 'description' => '水印图片链接。', - 'type' => 'string', - 'example' => 'http://example.com', - ], - 'Transparency' => [ - 'description' => '水印透明度,数值越小越透明。取值:0~255。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '255', - ], - 'Description' => [ - 'description' => '自定义水印描述信息。', - 'type' => 'string', - 'example' => 'my watermark', - ], - 'OffsetCorner' => [ - 'description' => '水印位置。'."\n" - .'- TopLeft:左上。'."\n" - ."\n" - .'- TopRight:右上。'."\n" - ."\n" - .'- BottomLeft:左下。'."\n" - ."\n" - .'- BottomRight:右下。', - 'type' => 'string', - 'example' => 'TopRight', - ], - 'RuleCount' => [ - 'description' => 'Domain下配置的水印规则数量', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '12', - ], - 'Name' => [ - 'description' => '水印名称。', - 'type' => 'string', - 'example' => 'livewatermark****', - ], - 'TemplateId' => [ - 'description' => '水印模板ID。'."\n", - 'type' => 'string', - 'example' => '445409ec-7eaa-4 61d-8f29-4bec2eb9 ****', - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'B5D95365-5A46-1A6A-BBF5-C7B6BDED****'], + 'Hasmore' => ['title' => '是否有下一页', 'description' => '是否有下一页。', 'type' => 'boolean', 'example' => 'false'], + 'NextpageToken' => ['description' => '下一页的起始位置,当Hasmore为false时,不返回该字段。', 'type' => 'string', 'example' => '1001'], + 'GroupList' => [ + 'description' => '群组列表。', + 'type' => 'array', + 'items' => [ + 'description' => '群组数据。', + 'type' => 'object', + 'properties' => [ + 'GroupId' => ['description' => '群组ID。', 'type' => 'string', 'example' => 'cU9MeBqf****'], + 'CreatorId' => ['description' => '创建者ID。', 'type' => 'string', 'example' => 'user_77'], + 'AdminList' => [ + 'description' => '管理员列表。', + 'type' => 'array', + 'items' => ['description' => '管理员。', 'type' => 'string', 'example' => 'uid1'], ], + 'Createtime' => ['description' => '创建时间,用UNIX时间戳表示,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1698299727'], + 'GroupName' => ['description' => '群组名。', 'type' => 'string', 'example' => 'mytestgroup'], + 'GroupInfo' => ['description' => '群组扩展信息。', 'type' => 'string', 'example' => 'testgroupinfo'], + 'Delete' => ['description' => '是否已删除。', 'type' => 'boolean', 'example' => 'true'], ], ], ], @@ -48176,142 +37757,107 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 100,\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b9676b3\\",\\n \\"WatermarkList\\": {\\n \\"Watermark\\": [\\n {\\n \\"Type\\": 0,\\n \\"XOffset\\": 50,\\n \\"RefWidth\\": 1920,\\n \\"YOffset\\": 100,\\n \\"Height\\": 200,\\n \\"RefHeight\\": 1080,\\n \\"PictureUrl\\": \\"http://example.com\\",\\n \\"Transparency\\": 255,\\n \\"Description\\": \\"my watermark\\",\\n \\"OffsetCorner\\": \\"TopRight\\",\\n \\"RuleCount\\": 12,\\n \\"Name\\": \\"livewatermark****\\",\\n \\"TemplateId\\": \\"445409ec-7eaa-4 61d-8f29-4bec2eb9 ****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 100\\n 5c6a2a0df228-4a64- af62-20e91b9676b3\\n \\n \\n 0\\n 50\\n 1920\\n 100\\n 200\\n 1080\\n http://example.com\\n 255\\n my watermark\\n TopRight\\n 12\\n livewatermark****\\n 445409ec-7eaa-4 61d-8f29-4bec2eb9 ****\\n \\n \\n","errorExample":""}]', - 'title' => '查询水印模板列表', - 'description' => '本接口支持指定分⻚参数查询水印模板列表信息,调用时请保证参数设置符合要求。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询直播互动群组列表', + 'summary' => '调用ListLiveMessageGroups查询互动消息群组列表。', + 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddLiveStreamWatermarkRule' => [ - 'summary' => '调用AddLiveStreamWatermarkRule添加水印规则。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-05-23T05:54:49.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveMessageGroups'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListLiveMessageGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B5D95365-5A46-1A6A-BBF5-C7B6BDED****\\",\\n \\"Hasmore\\": false,\\n \\"NextpageToken\\": \\"1001\\",\\n \\"GroupList\\": [\\n {\\n \\"GroupId\\": \\"cU9MeBqf****\\",\\n \\"CreatorId\\": \\"user_77\\",\\n \\"AdminList\\": [\\n \\"uid1\\"\\n ],\\n \\"Createtime\\": 1698299727,\\n \\"GroupName\\": \\"mytestgroup\\",\\n \\"GroupInfo\\": \\"testgroupinfo\\",\\n \\"Delete\\": true\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n B5D95365-5A46-1A6A-BBF5-C7B6BDED****\\n false\\n \\n cU9MeBqf****\\n user_77\\n uid1\\n 1698299727\\n mytestgroup\\n testgroupinfo\\n true\\n \\n","errorExample":""}]', + ], + 'ListLiveRealtimeLogDelivery' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveCT0GRQ', - ], + 'abilityTreeNodes' => ['FEATURElive066BXV'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => '自定义规则名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'WatermarkRule****', - ], - ], - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.aliyundoc.com', - ], - ], - [ - 'name' => 'App', - 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', - ], - ], - [ - 'name' => 'Stream', - 'in' => 'query', - 'schema' => [ - 'description' => '流名称。规则如下:'."\n" - ."\n" - .'- 直接写流名称则仅匹配该流名称。示例:liveStreamA。'."\n" - ."\n" - .'- 可进行模糊匹配,`*`匹配所有流。'."\n" - ."\n" - .'- 可进行前匹配和后匹配。'."\n" - ."\n" - .'>- 模糊匹配格式说明:模糊匹配下的`*`要求有且仅有一个,只能在最前或最后,且匹配项需要`()`包围,多个匹配项用竖线`|`分隔。'."\n" - .'>- 示例:`*(t1|t2) `匹配所有后缀为`t1`或`t2`的流` (abc|123)*`匹配所有前缀为`abc`或者`123`的流。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStreamA', - ], - ], - [ - 'name' => 'TemplateId', - 'in' => 'query', - 'schema' => [ - 'description' => '水印模板ID。'."\n" - .'>可查看[AddLiveStreamWatermark](~~2848096~~)接口返回参数值获取TemplateId。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Description', + 'name' => 'LiveOpenapiReserve', 'in' => 'query', - 'schema' => [ - 'description' => '自定义规则描述信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'my rule', - ], + 'schema' => ['description' => '该参数暂无实际意义。', 'type' => 'string', 'required' => false, 'example' => '无'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '实时日志投递信息。', 'type' => 'object', 'properties' => [ - 'RuleId' => [ - 'description' => '水印规则ID。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '30559C03-86C9-4EEC-B840-0DC5F5A2189B'], + 'Content' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RealtimeLogDeliveryInfo' => [ + 'description' => '实时日志投递信息。', + 'type' => 'array', + 'items' => [ + 'description' => '实时日志投递信息。', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '日志服务状态。取值:'."\n" + ."\n" + .'- **online**:正在服务。'."\n" + .'- **offline**:停止服务。', 'type' => 'string', 'example' => 'online'], + 'DmId' => ['description' => '域名ID。', 'type' => 'integer', 'format' => 'int32', 'example' => '1001010'], + 'Region' => ['description' => '实时投递SLS的Region。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'Logstore' => ['description' => '实时投递SLS的LogStoreName。', 'type' => 'string', 'example' => 'logstore_example'], + 'Project' => ['description' => '实时投递SLS的ProjectName。', 'type' => 'string', 'example' => 'project_example'], + 'DomainName' => ['description' => '播流域名。', 'type' => 'string', 'example' => 'example.com'], + ], + ], + ], + ], + 'description' => '', ], ], ], @@ -48319,106 +37865,76 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RuleId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n5c6a2a0df228-4a64-af62-20e91b9676b3\\n445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', - 'title' => '添加水印规则', - 'description' => '调用[AddLiveStreamWatermark](~~2848096~~)接口添加水印模板后,可使用本接口添加水印规则。'."\n" + 'title' => '查询用户下所有实时日志投递', + 'summary' => '调用ListLiveRealtimeLogDelivery查询用户下所有实时日志投递。', + 'description' => '您可调用本接口查询用户下所有实时日志投递,无其他特殊使用说明,调用时请保证参数设置符合要求。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteLiveStreamWatermarkRule' => [ - 'summary' => '调用DeleteLiveStreamWatermarkRule删除水印规则。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 特定错误码'."\n" + .'| HttpCode| 错误码 | 错误信息|描述 |'."\n" + .'|--------------------------|----------------------|---------------------|-----------|'."\n" + .'| 403| Unauthorized |RealtimeLogDelivery Service Not Authorized | 没有开启实时投递授权。|', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListLiveRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"30559C03-86C9-4EEC-B840-0DC5F5A2189B\\",\\n \\"Content\\": {\\n \\"RealtimeLogDeliveryInfo\\": [\\n {\\n \\"Status\\": \\"online\\",\\n \\"DmId\\": 1001010,\\n \\"Region\\": \\"cn-hangzhou\\",\\n \\"Logstore\\": \\"logstore_example\\",\\n \\"Project\\": \\"project_example\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 30559C03-86C9-4EEC-B840-0DC5F5A2189B\\n \\n \\n online\\n cn-hangzhou-corp\\n example.com\\n 1001010\\n project_example\\n logstore_example\\n \\n \\n online\\n cn-hangzhou\\n example.com\\n 101010101\\n project_example\\n logstore_example\\n \\n \\n","errorExample":""}]', + ], + 'ListLiveRealtimeLogDeliveryDomains' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveCT0GRQ', - ], + 'abilityTreeCode' => '107178', + 'abilityTreeNodes' => ['FEATURElive066BXV'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.aliyundoc.com', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'App', + 'name' => 'Project', 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', - ], + 'schema' => ['description' => '实时投递SLS的ProjectName。', 'type' => 'string', 'required' => true, 'example' => 'project_example'], ], [ - 'name' => 'Stream', + 'name' => 'Logstore', 'in' => 'query', - 'schema' => [ - 'description' => '流名称。规则如下:'."\n" - ."\n" - .'- 直接写流名称则仅匹配该流名称。示例:liveStreamA。'."\n" - ."\n" - .'- 可进行模糊匹配,`*`匹配所有流。'."\n" - ."\n" - .'- 可进行前匹配和后匹配。'."\n" - ."\n" - .'>- 模糊匹配格式说明:模糊匹配下的`*`要求有且仅有一个,只能在最前或最后,且匹配项需要`()`包围,多个匹配项用竖线`|`分隔。'."\n" - .'>- 示例:`*(t1|t2) `匹配所有后缀为`t1`或`t2`的流` (abc|123)*`匹配所有前缀为`abc`或者`123`的流。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStreamA', - ], + 'schema' => ['description' => '实时投递SLS的LogStoreName。', 'type' => 'string', 'required' => true, 'example' => 'logstore_example'], ], [ - 'name' => 'RuleId', + 'name' => 'Region', 'in' => 'query', - 'schema' => [ - 'description' => '水印规则ID。'."\n" - .'>可查看[AddLiveStreamWatermarkRule](~~2848100~~)接口返回参数值获取RuleId。', - 'type' => 'string', - 'required' => false, - 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****', - ], + 'schema' => ['description' => '实时投递SLS的Region。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -48426,109 +37942,108 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64- af62-20e91******', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '95D5B69F-8AEC-419B-8F3A-612B35032B0D'], + 'Content' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Domains' => [ + 'description' => '域名详情。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '日志服务状态。取值:'."\n" + ."\n" + .'- **online**:正在服务。'."\n" + .'- **offline**:停止服务。', 'type' => 'string', 'example' => 'online'], + 'DomainName' => ['description' => '播流域名。', 'type' => 'string', 'example' => 'example.com'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'LogstoreNotExist', 'errorMessage' => 'Logstore does not exist', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91******\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0df228-4a64- af62-20e91b9676b3\\r\\n","errorExample":""}]', - 'title' => '删除水印规则', - 'description' => '本接口支持删除指定RuleId的水印规则。'."\n" + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '查询实时日志投递服务下所有直播域名', + 'summary' => '调用ListLiveRealtimeLogDeliveryDomains查询实时日志投递服务下所有直播域名。', + 'description' => '- 调用本接口查询实时日志投递服务下所有直播域名,返回的日志服务状态分为正在服务和停止服务。'."\n" + ."\n" + .'- 您可调用[DescribeLiveDomainRealtimeLogDelivery](~~2848121~~)查询Project、Logstore、Region参数信息。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdateLiveStreamWatermarkRule' => [ - 'summary' => '调用UpdateLiveStreamWatermarkRule更新水印规则。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 特定错误码'."\n" + .'| HttpCode| 错误码 | 错误信息 | 描述 |'."\n" + .'|--------------------------|--------------------------|-----------------|-----------|'."\n" + .'| 403| Unauthorized | RealtimeLogDelivery Service Not Authorized|没有开启实时投递授权。 |'."\n" + .'| 404| LogstoreNotExist |Logstore does not exist| 未找到对应Logstore信息。 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveRealtimeLogDeliveryDomains'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListLiveRealtimeLogDeliveryDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"95D5B69F-8AEC-419B-8F3A-612B35032B0D\\",\\n \\"Content\\": {\\n \\"Domains\\": [\\n {\\n \\"Status\\": \\"online\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 95D5B69F-8AEC-419B-8F3A-612B35032B0D\\n \\n online\\n example.com\\n \\n","errorExample":""}]', + ], + 'ListLiveRealtimeLogDeliveryInfos' => [ + 'summary' => '调用ListLiveRealtimeLogDeliveryInfo查询所有实时日志投递服务信息。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveCT0GRQ', - ], + 'abilityTreeNodes' => ['FEATURElive066BXV'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'RuleId', - 'in' => 'query', - 'schema' => [ - 'description' => '水印规则ID。'."\n" - .'>可查看[AddLiveStreamWatermarkRule](~~2848100~~)接口返回参数值获取RuleId。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => '自定义规则名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'WatermarkRule****', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => '自定义规则描述信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'my rule', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'TemplateId', + 'name' => 'LiveOpenapiReserve', 'in' => 'query', - 'schema' => [ - 'description' => '水印模板ID。'."\n" - .'>可查看[AddLiveStreamWatermark](~~2848096~~)接口返回参数值获取TemplateId。', - 'type' => 'string', - 'required' => false, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9 ****', - ], + 'schema' => ['description' => '该参数暂无实际意义。', 'type' => 'string', 'required' => false, 'example' => '无'], ], ], 'responses' => [ @@ -48536,42 +38051,71 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64-af62-20e91b9676b3', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '95D5B69F-8AEC-419B-8F3A-612B35032B0D'], + 'Content' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RealtimeLogDeliveryInfos' => [ + 'description' => '日志投递服务信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Logstore' => ['description' => '实时投递SLS的LogStoreName。', 'type' => 'string', 'example' => 'logstore_example'], + 'Project' => ['description' => '实时投递SLS的ProjectName。', 'type' => 'string', 'example' => 'project_example'], + 'Region' => ['description' => '实时投递SLS的Region。', 'type' => 'string', 'example' => 'cn-hangzhou'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0df228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', - 'title' => '更新水印规则', - 'description' => '本接口支持对指定RuleId的⽔印规则各项参数进⾏更新调整。'."\n" + 'title' => '查询所有实时日志投递服务信息', + 'description' => '您可调用本接口所有实时日志投递服务信息,无其他特殊使用说明,调用时请保证参数设置符合要求。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveStreamWatermarkRules' => [ - 'summary' => '调用DescribeLiveStreamWatermarkRules查询水印规则列表。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 特定错误码'."\n" + .'| HttpCode| 错误码 | 错误信息 | 描述 |'."\n" + .'|--------------------------|----------------|---------------------------|-----------|'."\n" + .'| 403| Unauthorized | RealtimeLogDelivery Service Not Authorized | 没有开启实时投递授权。 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListLiveRealtimeLogDeliveryInfos', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"95D5B69F-8AEC-419B-8F3A-612B35032B0D\\",\\n \\"Content\\": {\\n \\"RealtimeLogDeliveryInfos\\": [\\n {\\n \\"Logstore\\": \\"logstore_example\\",\\n \\"Project\\": \\"project_example\\",\\n \\"Region\\": \\"cn-hangzhou\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n95D5B69F-8AEC-419B-8F3A-612B35032B0D\\n\\n \\n project_example\\n logstore_example\\n cn-hangzhou\\n \\n\\n","errorExample":""}]', + ], + 'ListLiveTagResources' => [ + 'summary' => '查询符合条件的资源和标签。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -48582,1291 +38126,850 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveCT0GRQ', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Domain', + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', + 'description' => '资源ID列表。ResourceId和Tag不能同时为空。', + 'type' => 'array', + 'items' => ['description' => '资源ID。'."\n" + ."\n" + .'- ResourceType=DOMAIN时,需要填写直播域名名称(如 `example.alivecdn.com`),可通过 DescribeLiveUserDomains 获取账号下域名列表。', 'type' => 'string', 'required' => false, 'example' => 'my-resource-id'], 'required' => false, - 'example' => 'live.yourdomain.com', + 'maxItems' => 51, ], ], [ - 'name' => 'PageNumber', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '分⻚的⻚数,不传默认为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', + 'description' => '标签列表。ResourceId 和 Tag 不能同时为空。', + 'type' => 'array', + 'items' => [ + 'description' => '标签信息。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '资源的标签键。', 'type' => 'string', 'required' => false, 'example' => 'env'], + 'Value' => ['description' => '标签键对应的标签值。', 'type' => 'string', 'required' => false, 'example' => 'dev'], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'TagOwnerUid', + 'in' => 'query', + 'schema' => ['description' => '标签所属阿里云账号ID。', 'type' => 'string', 'required' => false, 'example' => 'xxx1234xxx'], + ], + [ + 'name' => 'TagOwnerBid', + 'in' => 'query', + 'schema' => ['description' => '标签拥有者Bid。', 'type' => 'string', 'required' => false, 'example' => '26842'], + ], + [ + 'name' => 'ResourceType', 'in' => 'query', 'schema' => [ - 'description' => '分⻚每⻚个数,不传默认为100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', + 'description' => '资源类型。', + 'type' => 'string', + 'required' => true, + 'enumValueTitles' => ['DOMAIN' => '域名资源'], + 'example' => 'DOMAIN', + 'enum' => ['DOMAIN'], ], ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => '下一个查询开始的Token。', 'type' => 'string', 'required' => false, 'example' => 'q2j8bLtBdhONLRkgaPBa6A=='], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Total' => [ - 'description' => '符合条件的总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64- af62-20e91b9676b3', - ], - 'RuleInfoList' => [ + 'NextToken' => ['description' => '下一个查询开始Token。', 'type' => 'string', 'example' => '6a5e8f4fae643e70d1a2ff1827cd91bd'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], + 'TagResources' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'RuleInfo' => [ - 'description' => '⽔印规则列表。', + 'TagResource' => [ + 'description' => '标签资源列表。', 'type' => 'array', 'items' => [ - 'description' => '⽔印规则列表。', + 'description' => '标签资源。', 'type' => 'object', 'properties' => [ - 'Domain' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'example' => 'example.aliyundoc.com', - ], - 'Description' => [ - 'description' => '自定义规则描述信息。', - 'type' => 'string', - 'example' => 'my rule', - ], - 'App' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'Stream' => [ - 'description' => '流名称。规则如下:'."\n" - ."\n" - .'- 直接写流名称则仅匹配该流名称。示例:liveStreamA。'."\n" - ."\n" - .'- 可进行模糊匹配,`*`匹配所有流。'."\n" - ."\n" - .'- 可进行前匹配和后匹配。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'- 模糊匹配格式说明:模糊匹配下的`*`要求有且仅有一个,只能在最前或最后,且匹配项需要`()`包围,多个匹配项用竖线`|`分隔。'."\n" - .'- 示例:`*(t1|t2) `匹配所有后缀为`t1`或`t2`的流` (abc|123)*`匹配所有前缀为`abc`或者`123`的流。'."\n" - ."\n" - .' '."\n" - .'>', - 'type' => 'string', - 'example' => 'liveStreamA', - ], - 'Name' => [ - 'description' => '自定义规则名称。', - 'type' => 'string', - 'example' => 'WatermarkRule****', - ], - 'TemplateId' => [ - 'description' => '水印模板ID。'."\n" - ."\n" - .'>可查看[AddLiveStreamWatermark](~~2848096~~)接口返回参数值获取TemplateId。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9 ****', - ], - 'RuleId' => [ - 'description' => '水印规则ID。'."\n" - .'>可查看[AddLiveStreamWatermarkRule](~~2848100~~)接口返回参数值获取RuleId。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****', - ], + 'ResourceId' => ['description' => '资源ID。', 'type' => 'string', 'example' => 'my-resource-id'], + 'ResourceType' => ['description' => '资源类型。', 'type' => 'string', 'example' => 'DOMAIN'], + 'TagKey' => ['description' => '标签键。', 'type' => 'string', 'example' => 'env'], + 'TagValue' => ['description' => '标签值。', 'type' => 'string', 'example' => 'dev'], ], ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => '%s Please check and try again later.', - ], + 401 => [ + ['errorCode' => 'InvalidResourceType', 'errorMessage' => 'The resourceType is invalid.', 'description' => '指定的resourceType参数无效。'], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag key is invalid, %s.', 'description' => '标签键无效。'], + ], + 403 => [ + ['errorCode' => 'InvalidResourcesCount', 'errorMessage' => 'The count of resources is invalid, %s.', 'description' => '输入的资源数组,资源总数不能超过最大值,同时必须大于0个。'], + ['errorCode' => 'Duplicate.TagKey', 'errorMessage' => 'The tags should not contain duplicate keys.', 'description' => '标签中不应该包含重复键。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 100,\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b9676b3\\",\\n \\"RuleInfoList\\": {\\n \\"RuleInfo\\": [\\n {\\n \\"Domain\\": \\"example.aliyundoc.com\\",\\n \\"Description\\": \\"my rule\\",\\n \\"App\\": \\"liveApp****\\",\\n \\"Stream\\": \\"liveStreamA\\",\\n \\"Name\\": \\"WatermarkRule****\\",\\n \\"TemplateId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9 ****\\",\\n \\"RuleId\\": \\"445409ec-7eaa-461d -8f29-4bec2eb9****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n liveApp****\\n my rule\\n 445409ec-7eaa-461d -8f29-4bec2eb9****\\n liveStreamA\\n example.aliyundoc.com\\n 445409ec-7eaa-461d-8f29-4bec2eb9 ****\\n WatermarkRule****\\n \\n\\n5c6a2a0df228-4a64- af62-20e91b9676b3\\n","errorExample":""}]', - 'title' => '查询水印规则列表', - 'description' => '本接口支持指定分⻚参数查询水印规则列表信息,调用时请保证参数设置符合要求。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ListEdgeTranscodeTemplate' => [ - 'summary' => '查询边缘转码模板列表。', - 'methods' => [ - 'post', - 'get', + 'title' => '查询符合条件的资源和标签', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListLiveTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"6a5e8f4fae643e70d1a2ff1827cd91bd\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TagResources\\": {\\n \\"TagResource\\": [\\n {\\n \\"ResourceId\\": \\"my-resource-id\\",\\n \\"ResourceType\\": \\"DOMAIN\\",\\n \\"TagKey\\": \\"env\\",\\n \\"TagValue\\": \\"dev\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'ListMessage' => [ + 'summary' => '查询消息列表。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => ['description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], ], [ - 'name' => 'ClusterId', - 'in' => 'query', - 'schema' => [ - 'description' => '机房ID。', - 'type' => 'string', - 'required' => true, - 'example' => '******3b-4d18-395c-8106-ff21a6******', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], [ 'name' => 'Type', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘转码类型,枚举:'."\n" - .'- **common** 通用(普通+窄带高清1.0)。'."\n" - .'- **nbhd-2** 窄带高清2.0。'."\n" - .'- **ultra-hd** 超高清。'."\n" - ."\n" - .'> 当该参数不填写时,系统会展示用户拥有的转码类型权限的转码模板。', - 'type' => 'string', - 'required' => false, - 'example' => 'nbhd-2', - ], + 'in' => 'formData', + 'schema' => ['description' => '用户自定义消息类型,需大于10000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10002'], ], [ - 'name' => 'VideoCodec', - 'in' => 'query', - 'schema' => [ - 'description' => '视频编码格式,枚举:'."\n" - .'- H.264。'."\n" - .'- H.265。'."\n" - ."\n" - .'> 当该参数不填写时,系统会展示用户拥有的视频编码格式权限的转码模板。', - 'type' => 'string', - 'required' => false, - 'example' => 'H.264', - ], + 'name' => 'SortType', + 'in' => 'formData', + 'schema' => ['description' => '排列方式,取值:'."\n" + ."\n" + .'- 0:时间递增顺序。'."\n" + ."\n" + .'- 1:时间递减顺序。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'description' => '当前页码,默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'name' => 'PageNum', + 'in' => 'formData', + 'schema' => ['description' => '页码,默认值:1。取值范围:1~100000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '分页大小,每页显示条数。默认值为10,最大值为100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], - ], - [ - 'name' => 'SortBy', - 'in' => 'query', - 'schema' => [ - 'description' => '排序规则,按模板创建时间(CreateTime)排序。默认是desc,枚举:'."\n" - .'- desc 降序排序。'."\n" - .'- asc 升序排序。', - 'type' => 'string', - 'required' => false, - 'example' => 'desc', - ], - ], - [ - 'name' => 'Keyword', - 'in' => 'query', - 'schema' => [ - 'description' => '搜索关键词,枚举:'."\n" - .'- 模板ID,模板ID支持精确匹配。'."\n" - .'- 模板名称,模板名称支持模糊搜索。', - 'type' => 'string', - 'required' => false, - 'example' => 'baseline', - ], + 'in' => 'formData', + 'schema' => ['description' => '单页显示用户的数量,默认值:20。取值范围:1~50。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], - 'TemplateList' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'Template' => [ - 'description' => '边缘转码模板列表。', + 'HasMore' => ['description' => '是否还有下一页,取值:'."\n" + ."\n" + .'- true:有下一页。'."\n" + ."\n" + .'- false:没有下一页。', 'type' => 'boolean', 'example' => 'false'], + 'MessageList' => [ + 'description' => '消息列表。', 'type' => 'array', 'items' => [ - 'description' => '边缘转码模板列表。', 'type' => 'object', 'properties' => [ - 'Bitrate' => [ - 'description' => '码率配置,有固定码率,码率随源(ws)2种。', - 'type' => 'string', - 'example' => '3000', - ], - 'Codec' => [ - 'description' => '视频编码格式,枚举:'."\n" - .'- H.264。'."\n" - .'- H.265。', - 'type' => 'string', - 'example' => 'H.264', - ], - 'CreateTime' => [ - 'description' => '模板创建时间。', - 'type' => 'string', - 'example' => '2023-07-25T02:48:58Z', - ], - 'Fps' => [ - 'description' => '帧率配置,有固定帧率,帧率随源(ws)2种。', - 'type' => 'string', - 'example' => '30', - ], - 'Gop' => [ - 'description' => '关键帧配置,有按帧配置,按秒配置,关键帧随源(ws)3种。', - 'type' => 'string', - 'example' => '2s', - ], - 'Name' => [ - 'description' => '模版名称。', - 'type' => 'string', - 'example' => 'my_template', - ], - 'Resolution' => [ - 'description' => '分辨率配置,有固定分辨率,分辨率随源(ws)2种。'."\n" - .'> 当使用固定分辨率时,width/height取值为-1/-2,则表示宽/高自适应。', - 'type' => 'string', - 'example' => '1920*1080', - ], - 'TemplateId' => [ - 'description' => '模板ID。', - 'type' => 'string', - 'example' => '9b1571b513cb44f7a1ba6ae561ff46f7', - ], - 'Type' => [ - 'description' => '边缘转码类型。', - 'type' => 'string', - 'example' => 'common', - ], + 'Data' => ['description' => '消息体,JSONString类型。', 'type' => 'string', 'example' => 'test'], + 'GroupId' => ['description' => '消息组ID。', 'type' => 'string', 'example' => 'AE35-****-T95F'], + 'MessageId' => ['description' => '消息ID。', 'type' => 'string', 'example' => 'qt***'], + 'SenderId' => ['description' => '消息发送者ID。', 'type' => 'string', 'example' => 'yi***'], + 'Type' => ['description' => '消息类型。', 'type' => 'integer', 'format' => 'int32', 'example' => '10002'], ], + 'description' => '', ], ], ], ], - 'TotalCount' => [ - 'description' => '总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], + 'title' => '查询消息列表(旧版)', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2022-11-24T12:44:21.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-09-13T02:27:23.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-09-13T02:27:23.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMessage'], ], - 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => '%s, please check and try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListMessage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TemplateList\\": {\\n \\"Template\\": [\\n {\\n \\"Bitrate\\": \\"3000\\",\\n \\"Codec\\": \\"H.264\\",\\n \\"CreateTime\\": \\"2023-07-25T02:48:58Z\\",\\n \\"Fps\\": \\"30\\",\\n \\"Gop\\": \\"2s\\",\\n \\"Name\\": \\"my_template\\",\\n \\"Resolution\\": \\"1920*1080\\",\\n \\"TemplateId\\": \\"9b1571b513cb44f7a1ba6ae561ff46f7\\",\\n \\"Type\\": \\"common\\"\\n }\\n ]\\n },\\n \\"TotalCount\\": 100\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n \\n 3000\\n H.264\\n 2023-07-25T02:48:58Z\\n 30\\n 2s\\n my_template\\n 1920*1080\\n 9b1571b513cb44f7a1ba6ae561ff46f7\\n common\\n \\n 100\\n","errorExample":""}]', - 'title' => '查询边缘转码模板列表', - 'description' => '- 本接口用于查询边缘转码模板列表。'."\n" - ."\n" - .'- 用户需要具有访问边缘转码服务的权限,才能正常调用本接口。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"HasMore\\": false,\\n \\"MessageList\\": [\\n {\\n \\"Data\\": \\"test\\",\\n \\"GroupId\\": \\"AE35-****-T95F\\",\\n \\"MessageId\\": \\"qt***\\",\\n \\"SenderId\\": \\"yi***\\",\\n \\"Type\\": 10002\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n false\\n \\n AE35-****-T95F\\n qt***\\n 10002\\n yi***\\n test\\n \\n \\n","errorExample":""}]', ], - 'GetEdgeTranscodeTemplate' => [ - 'summary' => '查询边缘转码模板详情。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListMessageApp' => [ + 'summary' => '调用ListMessageApp查询互动消息应用列表。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'name' => 'SortType', + 'in' => 'formData', + 'schema' => ['description' => '排列方式,取值:'."\n" + ."\n" + .'- 0:时间递增顺序。'."\n" + ."\n" + .'- 1:时间递减顺序。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'ClusterId', - 'in' => 'query', - 'schema' => [ - 'description' => '机房ID。', - 'type' => 'string', - 'required' => true, - 'example' => '******3b-4d18-395c-8106-ff21a6******', - ], + 'name' => 'PageNum', + 'in' => 'formData', + 'schema' => ['description' => '页码,默认值:1。取值范围:1~100000。'."\n" + .'> 此页码为当前展示页。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ - 'name' => 'TemplateId', - 'in' => 'query', - 'schema' => [ - 'description' => '模板ID。', - 'type' => 'string', - 'required' => true, - 'example' => '****a046-263c-3560-978a-fb287666****', - ], + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '单页显示应用的数量,默认值:20。取值范围:1~50。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], - 'Template' => [ - 'description' => '边缘转码模版。', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'Bitrate' => [ - 'description' => '码率配置,有固定码率,码率随源(ws)2种。', - 'type' => 'string', - 'example' => '3000', - ], - 'Codec' => [ - 'description' => '视频编码格式,枚举:'."\n" - .'- H.264。'."\n" - .'- H.265。', - 'type' => 'string', - 'example' => 'H.264', - ], - 'CreateTime' => [ - 'description' => '模板创建时间。', - 'type' => 'string', - 'example' => '2023-07-25T02:48:58Z', - ], - 'Fps' => [ - 'description' => '帧率配置,有固定帧率,帧率随源(ws)2种。', - 'type' => 'string', - 'example' => '30', - ], - 'Gop' => [ - 'description' => '关键帧配置,有按帧配置,按秒配置,关键帧随源(ws)3种。', - 'type' => 'string', - 'example' => '2s', - ], - 'Name' => [ - 'description' => '模版名称。', - 'type' => 'string', - 'example' => 'my_template', - ], - 'Resolution' => [ - 'description' => '分辨率配置,有固定分辨率,分辨率随源(ws)2种。'."\n" - .'> 当使用固定分辨率,width/height取值为-1/-2时,则表示宽/高自适应。', - 'type' => 'string', - 'example' => '1920*1080', - ], - 'TemplateId' => [ - 'description' => '模板ID。', - 'type' => 'string', - 'example' => '9b1571b513cb44f7a1ba6ae561ff****', - ], - 'Type' => [ - 'description' => '边缘转码类型。', - 'type' => 'string', - 'example' => 'common', + 'AppList' => [ + 'description' => '应用列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AppConfig' => [ + 'description' => '应用配置。', + 'type' => 'object', + 'additionalProperties' => ['type' => 'string', 'description' => '应用的配置。', 'example' => '"appAlias":"localApp"'], + ], + 'AppId' => ['description' => '互动消息应用ID。', 'type' => 'string', 'example' => 'VKL3***'], + 'AppName' => ['description' => '互动消息应用名称。', 'type' => 'string', 'example' => 'test'], + 'CreateTime' => ['description' => '应用创建的UTC时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '502280113'], + 'Extension' => [ + 'description' => '拓展字段。', + 'type' => 'object', + 'additionalProperties' => ['type' => 'string', 'example' => 'test001', 'description' => '拓展字段。'], + ], + 'Status' => ['description' => '互动消息应用状态。取值为**1**表示应用状态正常。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + ], + 'description' => '', + ], ], + 'HasMore' => ['description' => '是否还有下一页,取值:'."\n" + ."\n" + .'- true:有下一页。'."\n" + ."\n" + .'- false:没有下一页。', 'type' => 'boolean', 'example' => 'false'], + 'Total' => ['description' => '互动消息应用总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '15'], ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => '%s, please check and try again later.', - ], + 'title' => '查询互动消息应用列表(旧版)', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMessageApp'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'TemplateNotFound', - 'errorMessage' => '%s, please check and try again later.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"Template\\": {\\n \\"Bitrate\\": \\"3000\\",\\n \\"Codec\\": \\"H.264\\",\\n \\"CreateTime\\": \\"2023-07-25T02:48:58Z\\",\\n \\"Fps\\": \\"30\\",\\n \\"Gop\\": \\"2s\\",\\n \\"Name\\": \\"my_template\\",\\n \\"Resolution\\": \\"1920*1080\\",\\n \\"TemplateId\\": \\"9b1571b513cb44f7a1ba6ae561ff****\\",\\n \\"Type\\": \\"common\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n \\n","errorExample":""}]', - 'title' => '查询边缘转码模板详情', - 'description' => '- 本接口用于查询边缘转码模板详情。'."\n" - ."\n" - .'- 用户需要具有访问边缘转码服务的权限,才能正常调用本接口。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AppList\\": [\\n {\\n \\"AppConfig\\": {\\n \\"key\\": \\"\\\\\\"appAlias\\\\\\":\\\\\\"localApp\\\\\\"\\"\\n },\\n \\"AppId\\": \\"VKL3***\\",\\n \\"AppName\\": \\"test\\",\\n \\"CreateTime\\": 502280113,\\n \\"Extension\\": {\\n \\"key\\": \\"test001\\"\\n },\\n \\"Status\\": 1\\n }\\n ],\\n \\"HasMore\\": false,\\n \\"Total\\": 15\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 15\\n false\\n \\n VKL3***\\n test\\n 502280113\\n 1\\n \\n \\"appAlias\\":\\"localApp\\"\\n \\n \\n test001\\n \\n \\n \\n","errorExample":""}]', ], - 'CreateEdgeTranscodeJob' => [ - 'summary' => '创建边缘转码任务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListMessageGroup' => [ + 'summary' => '调用ListMessageGroup查询指定用户下消息组列表。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'ClusterId', - 'in' => 'query', - 'schema' => [ - 'description' => '机房ID。', - 'type' => 'string', - 'required' => true, - 'example' => '******3b-4d18-395c-8106-ff21a6******', - ], + 'name' => 'UserId', + 'in' => 'formData', + 'schema' => ['description' => '用户UserId,用户自定义,在AppId下单独唯一。不同的用户需要使用不同的UserId。'."\n" + .'> 正确填写此参数内容,才能正常查询。', 'type' => 'string', 'required' => false, 'example' => 'de1**a0'], ], [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => '任务名称,支持中英文+数字+英文短划线、下划线。长度限制英文255字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'task1', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。'."\n" + .'> 正确填写此参数内容,才能正常查询。', 'type' => 'string', 'required' => false, 'example' => 'VKL3***'], ], [ - 'name' => 'TemplateId', - 'in' => 'query', - 'schema' => [ - 'description' => '模板ID。', - 'type' => 'string', - 'required' => true, - 'example' => '****96e8864746a0b6f3****', - ], + 'name' => 'SortType', + 'in' => 'formData', + 'schema' => ['description' => '排列方式,取值:'."\n" + ."\n" + .'- 0:时间递增顺序。'."\n" + ."\n" + .'- 1:时间递减顺序。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'StreamInput', - 'in' => 'query', - 'schema' => [ - 'description' => '输入流地址。', - 'type' => 'string', - 'required' => true, - 'example' => 'rtmp://mydomain/app/stream1', - ], + 'name' => 'PageNum', + 'in' => 'formData', + 'schema' => ['description' => '页码,默认值:1。取值范围:1~100000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ - 'name' => 'StreamOutput', - 'in' => 'query', - 'schema' => [ - 'description' => '输出流地址。', - 'type' => 'string', - 'required' => true, - 'example' => 'rtmp://testdomain/app/stream2', - ], + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '单页显示消息组的数量,默认值:20。'."\n" + ."\n" + .'取值范围:1~50。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'description' => '边缘转码任务ID。', - 'type' => 'string', - 'example' => '****20b48fb04483915d4f2cd8ac****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'GroupList' => [ + 'description' => '消息组列表。', + 'type' => 'array', + 'items' => [ + 'description' => '消息组详情。', + 'type' => 'object', + 'properties' => [ + 'AppId' => ['description' => '互动消息应用ID。', 'type' => 'string', 'example' => 'VKL3***'], + 'CreateTime' => ['description' => '消息组创建UTC时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1502280113'], + 'CreatorId' => ['description' => '创建人ID。', 'type' => 'string', 'example' => 'as****hs'], + 'Extension' => [ + 'description' => '拓展字段。', + 'type' => 'object', + 'additionalProperties' => ['type' => 'string', 'example' => 'test001', 'description' => '拓展字段。'], + ], + 'GroupId' => ['description' => '消息组ID。', 'type' => 'string', 'example' => 'AE35-****-T95F'], + 'Status' => ['description' => '消息组状态。默认值为**1**,表示消息组状态正常。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + ], + ], + ], + 'HasMore' => ['description' => '是否还有下一页,取值:'."\n" + ."\n" + .'- true:有下一页。'."\n" + ."\n" + .'- false:没有下一页。', 'type' => 'boolean', 'example' => 'false'], + 'Total' => ['description' => '消息组总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => '%s, please check and try again later.', - ], + 'title' => '查询指定用户下消息组(旧版)', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", + 'changeSet' => [ + ['createdAt' => '2022-12-05T02:25:52.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], + ['createdAt' => '2022-10-27T06:54:26.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-09-08T15:22:52.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMessageGroup'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'TemplateNotFound', - 'errorMessage' => '%s, please check and try again later.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ****20b48fb04483915d4f2cd8ac****\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', - 'title' => '创建边缘转码任务', - 'description' => '- 本接口用于创建边缘转码任务。'."\n" - ."\n" - .'- 用户需要具有访问边缘转码服务的权限,才能正常调用本接口。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"GroupList\\": [\\n {\\n \\"AppId\\": \\"VKL3***\\",\\n \\"CreateTime\\": 1502280113,\\n \\"CreatorId\\": \\"as****hs\\",\\n \\"Extension\\": {\\n \\"key\\": \\"test001\\"\\n },\\n \\"GroupId\\": \\"AE35-****-T95F\\",\\n \\"Status\\": 1\\n }\\n ],\\n \\"HasMore\\": false,\\n \\"Total\\": 5\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 5\\n false\\n \\n AE35-****-T95F\\n VKL3***\\n 1502280113\\n 1\\n as****hs\\n \\n test001\\n \\n \\n \\n","errorExample":""}]', ], - 'DeleteEdgeTranscodeJob' => [ - 'summary' => '删除边缘转码任务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListMessageGroupUser' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], [ - 'name' => 'ClusterId', - 'in' => 'query', - 'schema' => [ - 'description' => '机房ID。', - 'type' => 'string', - 'required' => true, - 'example' => '******3b-4d18-395c-8106-ff21a6******', - ], + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => ['description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], ], [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘转码任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => '****20b48fb04483915d4f2cd8ac****', - ], + 'name' => 'SortType', + 'in' => 'formData', + 'schema' => ['description' => '排列方式,取值:'."\n" + ."\n" + .'- 0:时间递增顺序。'."\n" + ."\n" + .'- 1:时间递减顺序。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageNum', + 'in' => 'formData', + 'schema' => ['description' => '页码,默认值:1。'."\n" + ."\n" + .'取值范围:1~100000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '单页显示消息组成员的数量,默认值:20。'."\n" + ."\n" + .'取值范围:1~50。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'HasMore' => ['description' => '是否还有下一页,取值:'."\n" + ."\n" + .'- true:有下一页。'."\n" + ."\n" + .'- false:没有下一页。', 'type' => 'boolean', 'example' => 'false'], + 'Total' => ['description' => '消息组用户总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'UserList' => [ + 'description' => '用户列表。', + 'type' => 'array', + 'items' => [ + 'description' => '用户列表。', + 'type' => 'object', + 'properties' => [ + 'JoinTime' => ['description' => '加入消息组的UTC时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '12**45'], + 'UserId' => ['description' => '用户UserId。', 'type' => 'string', 'example' => 'de1**a0,hu**9'], + ], + ], + ], + ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'JobNotFound', - 'errorMessage' => '%s, please check and try again later.', + 'title' => '查询消息组成员(旧版)', + 'summary' => '查询消息组成员。', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2022-11-24T09:12:47.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-09-08T15:22:52.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMessageGroupUser'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListMessageGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', - 'title' => '删除边缘转码任务', - 'description' => '- 本接口用于删除边缘转码任务。'."\n" - ."\n" - .'- 用户需要具有访问边缘转码服务的权限,才能正常调用本接口。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"HasMore\\": false,\\n \\"Total\\": 2,\\n \\"UserList\\": [\\n {\\n \\"JoinTime\\": 0,\\n \\"UserId\\": \\"de1**a0,hu**9\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 2\\n false\\n \\n de1**a0,hu**9\\n \\n \\n","errorExample":""}]', ], - 'ListEdgeTranscodeJob' => [ - 'summary' => '查询边缘转码任务列表。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListMessageGroupUserById' => [ + 'summary' => '调用ListMessageGroupUserById通过用户ID列表查询用户信息。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'ClusterId', - 'in' => 'query', - 'schema' => [ - 'description' => '机房ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'cluster-1', - ], - ], - [ - 'name' => 'Type', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘转码类型,枚举:'."\n" - .'- common,通用(普通+窄带高清1.0)。'."\n" - .'- nbhd-2,窄带高清2.0。'."\n" - .'- ultra-hd,超高清。'."\n" - ."\n" - .'> 该参数不填写时,会展示用户有对应转码类型权限的转码模板', - 'type' => 'string', - 'required' => false, - 'example' => 'common', - ], - ], - [ - 'name' => 'Status', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘转码任务状态,枚举:'."\n" - .'- 0 未启动。'."\n" - .'- 1 运行中。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], - ], - [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'description' => '当前页码。默认值为1.', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '分页大小,即每页显示条数。默认值为10,最大值为100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], [ - 'name' => 'SortBy', - 'in' => 'query', - 'schema' => [ - 'description' => '排序规则,按CreateTime排序。默认是desc,枚举:'."\n" - .'- desc 降序排序。'."\n" - .'- asc 升序排序。', - 'type' => 'string', - 'required' => false, - 'example' => 'desc', - ], + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => ['description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], ], [ - 'name' => 'Keyword', - 'in' => 'query', + 'name' => 'UserIdList', + 'in' => 'formData', + 'style' => 'simple', 'schema' => [ - 'description' => '搜索关键词,枚举:'."\n" - .'- 任务ID,任务ID支持精确匹配。'."\n" - .'- 任务名称,任务名称支持模糊搜索。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'description' => '用户列表。', + 'type' => 'array', + 'items' => ['description' => '用户ID。', 'type' => 'string', 'required' => false, 'example' => 'de1**a0'], + 'required' => true, ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'JobList' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'Job' => [ - 'description' => '边缘转码任务列表。', + 'HasMore' => ['description' => '是否还有下一页,取值:'."\n" + ."\n" + .'- true:有下一页。'."\n" + ."\n" + .'- false:没有下一页。', 'type' => 'boolean', 'example' => 'false'], + 'Total' => ['description' => '查询到的用户总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'UserList' => [ + 'description' => '用户列表信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'CreateTime' => [ - 'description' => '任务创建时间。', - 'type' => 'string', - 'example' => '2023-07-24T16:44:55Z', - ], - 'JobId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => '****20b48fb04483915d4f2cd8ac****', - ], - 'LastStartAt' => [ - 'description' => '任务上一次启动的时间。', - 'type' => 'string', - 'example' => '2023-07-25T02:48:58Z', - ], - 'LastStopAt' => [ - 'description' => '任务上一次停止的时间。', - 'type' => 'string', - 'example' => '2023-07-25T05:48:58Z', - ], - 'Name' => [ - 'description' => '任务名称。', - 'type' => 'string', - 'example' => 'my_job', - ], - 'Status' => [ - 'description' => '边缘转码任务状态,枚举:'."\n" - .'- 0 未启动。'."\n" - .'- 1 运行中。', - 'type' => 'string', - 'example' => '0', - ], - 'StreamInput' => [ - 'description' => '输入流地址。', - 'type' => 'string', - 'example' => 'rtmp://mydomain/app/stream1', - ], - 'StreamOutput' => [ - 'description' => '输出流地址。', - 'type' => 'string', - 'example' => 'rtmp://testdomain/app/stream2', - ], - 'TemplateId' => [ - 'description' => '任务使用的边缘转码模板ID。', - 'type' => 'string', - 'example' => '9b1571b513cb44f7a1ba6ae561ff****', - ], - 'TemplateName' => [ - 'description' => '任务使用的边缘转码模板名。', - 'type' => 'string', - 'example' => 'my_template', - ], - 'Type' => [ - 'description' => '边缘转码类型,枚举:'."\n" - .'- common,通用(普通+窄带高清1.0)。'."\n" - .'- nbhd-2,窄带高清2.0。'."\n" - .'- ultra-hd,超高清。', - 'type' => 'string', - 'example' => 'common', + 'IsMute' => ['description' => '用户是否被禁言。取值:'."\n" + ."\n" + .'- true:禁言。'."\n" + ."\n" + .'- false:没禁言。', 'type' => 'boolean', 'example' => 'true'], + 'MuteBy' => [ + 'description' => '禁言类型,取值:'."\n" + ."\n" + .'- group:消息组全员禁言。'."\n" + ."\n" + .'- user:单个用户禁言。', + 'type' => 'array', + 'items' => ['description' => '禁言类型,取值:'."\n" + ."\n" + .'- group:消息组全员禁言。'."\n" + ."\n" + .'- user:单个用户禁言。', 'type' => 'string', 'example' => 'user'], ], + 'UserAvatar' => ['description' => '用户头像地址。', 'type' => 'string', 'example' => '"http://www.aliyundoc.com/xxyy.png"'], + 'UserExtension' => ['description' => '用户信息自定义内容。', 'type' => 'string', 'example' => '12e'], + 'UserId' => ['description' => '用户ID。', 'type' => 'string', 'example' => 'ad***'], + 'UserNick' => ['description' => '用户昵称。', 'type' => 'string', 'example' => 'xxyy'], ], + 'description' => '', ], ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], - 'TotalCount' => [ - 'description' => '总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'MissingParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], ], 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobList\\": {\\n \\"Job\\": [\\n {\\n \\"CreateTime\\": \\"2023-07-24T16:44:55Z\\",\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"LastStartAt\\": \\"2023-07-25T02:48:58Z\\",\\n \\"LastStopAt\\": \\"2023-07-25T05:48:58Z\\",\\n \\"Name\\": \\"my_job\\",\\n \\"Status\\": \\"0\\",\\n \\"StreamInput\\": \\"rtmp://mydomain/app/stream1\\",\\n \\"StreamOutput\\": \\"rtmp://testdomain/app/stream2\\",\\n \\"TemplateId\\": \\"9b1571b513cb44f7a1ba6ae561ff****\\",\\n \\"TemplateName\\": \\"my_template\\",\\n \\"Type\\": \\"common\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TotalCount\\": 100\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 2023-07-24T16:44:55Z\\n ****20b48fb04483915d4f2cd8ac****\\n 2023-07-25T02:48:58Z\\n 2023-07-25T05:48:58Z\\n my_job\\n 0\\n rtmp://mydomain/app/stream1\\n rtmp://testdomain/app/stream2\\n 9b1571b513cb44f7a1ba6ae561ff****\\n my_template\\n common\\n \\n ******3B-0E1A-586A-AC29-742247******\\n 100\\n","errorExample":""}]', - 'title' => '查询边缘转码任务列表', - 'description' => '- 本接口用于查询边缘转码任务列表。'."\n" - ."\n" - .'- 用户需要具有访问边缘转码服务的权限,才能正常调用本接口。'."\n" - .'- 本接口只返回距今180天内的任务,且最后一次操作时间需要在这180天之内。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '## 请求参数使用说明'."\n" - .'- 本接口支持按转码类型(Type)、转码任务状态(Status)筛选查询结果。'."\n" - .'- 本接口支持按任务创建时间(CreateTime)对查询结果排序,默认为降序。'."\n" - .'- 本接口支持以任务ID(精确匹配)、任务名称(模糊查询)为关键字(Keyword)进行查询。 ', - ], - 'GetEdgeTranscodeJob' => [ - 'summary' => '查询边缘转码任务详情。', - 'methods' => [ - 'post', - 'get', + 'title' => '通过用户ID查询用户信息(旧版)', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2023-03-16T02:40:01.000Z', 'description' => '请求参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListMessageGroupUserById', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"HasMore\\": false,\\n \\"Total\\": 3,\\n \\"UserList\\": [\\n {\\n \\"IsMute\\": true,\\n \\"MuteBy\\": [\\n \\"user\\"\\n ],\\n \\"UserAvatar\\": \\"\\\\\\"http://www.aliyundoc.com/xxyy.png\\\\\\"\\",\\n \\"UserExtension\\": \\"12e\\",\\n \\"UserId\\": \\"ad***\\",\\n \\"UserNick\\": \\"xxyy\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 3\\n false\\n \\n ad***\\n xxyy\\n \\"http://www.aliyundoc.com/xxyy.png\\"\\n 12e\\n true\\n user\\n \\n \\n","errorExample":""}]', + ], + 'ListMuteGroupUser' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], [ - 'name' => 'ClusterId', - 'in' => 'query', - 'schema' => [ - 'description' => '机房ID。', - 'type' => 'string', - 'required' => true, - 'example' => '******3b-4d18-395c-8106-ff21a6******', - ], + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => ['description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], ], [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘转码任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => '****20b48fb04483915d4f2cd8ac****', - ], + 'name' => 'PageNum', + 'in' => 'formData', + 'schema' => ['description' => '页码,默认值:1。取值范围:1~100000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '单页显示用户的数量,默认值:20。取值范围:1~50。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20'], + ], + [ + 'name' => 'OperatorUserId', + 'in' => 'formData', + 'schema' => ['description' => '操作人用户UserId。该用户必须是群组的创建者。', 'type' => 'string', 'required' => false, 'example' => 'de1**a0'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Job' => [ - 'description' => '边缘转码任务。', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'CreateTime' => [ - 'description' => '任务创建时间。', - 'type' => 'string', - 'example' => '2023-07-24T16:44:55Z', - ], - 'JobId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => '****20b48fb04483915d4f2cd8ac****', - ], - 'LastStartAt' => [ - 'description' => '任务上一次启动的时间。', - 'type' => 'string', - 'example' => '2023-07-25T02:48:58Z', - ], - 'LastStopAt' => [ - 'description' => '任务上一次停止的时间。', - 'type' => 'string', - 'example' => '2023-07-25T05:48:58Z', - ], - 'Name' => [ - 'description' => '任务名称。', - 'type' => 'string', - 'example' => 'my_job', - ], - 'Status' => [ - 'description' => '转码任务状态,枚举:'."\n" - .'- 0 未启动。'."\n" - .'- 1 运行中。', - 'type' => 'string', - 'example' => '0', - ], - 'StreamInput' => [ - 'description' => '输入流地址。', - 'type' => 'string', - 'example' => 'rtmp://mydomain/app/stream1', - ], - 'StreamOutput' => [ - 'description' => '输出流地址。', - 'type' => 'string', - 'example' => 'rtmp://testdomain/app/stream2', - ], - 'TemplateId' => [ - 'description' => '任务使用的边缘转码模板ID。', - 'type' => 'string', - 'example' => '9b1571b513cb44f7a1ba6ae561ff****', - ], - 'TemplateName' => [ - 'description' => '任务使用的边缘转码模板名。', - 'type' => 'string', - 'example' => 'my_template', - ], - 'Type' => [ - 'description' => '边缘转码类型,枚举:'."\n" - .'- common,通用(普通+窄带高清1.0)。'."\n" - .'- nbhd-2,窄带高清2.0。'."\n" - .'- ultra-hd,超高清。', - 'type' => 'string', - 'example' => 'common', + 'HasMore' => ['description' => '是否还有下一页,取值:'."\n" + ."\n" + .'- true:有下一页。'."\n" + ."\n" + .'- false:没有下一页。', 'type' => 'boolean', 'example' => 'false'], + 'Total' => ['description' => '禁言成员总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'UserList' => [ + 'description' => '禁言用户列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UserId' => ['description' => '禁言用户ID。', 'type' => 'string', 'example' => '1sd***,yu***'], + ], + 'description' => '', + ], ], ], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => '%s, please check and try again later.', - ], + 'title' => '查询被禁言的消息组成员(旧版)', + 'summary' => '调用ListMuteGroupUser查询被禁言的消息组成员列表。', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMuteGroupUser'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'JobNotFound', - 'errorMessage' => '%s, please check and try again later.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListMuteGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Job\\": {\\n \\"CreateTime\\": \\"2023-07-24T16:44:55Z\\",\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"LastStartAt\\": \\"2023-07-25T02:48:58Z\\",\\n \\"LastStopAt\\": \\"2023-07-25T05:48:58Z\\",\\n \\"Name\\": \\"my_job\\",\\n \\"Status\\": \\"0\\",\\n \\"StreamInput\\": \\"rtmp://mydomain/app/stream1\\",\\n \\"StreamOutput\\": \\"rtmp://testdomain/app/stream2\\",\\n \\"TemplateId\\": \\"9b1571b513cb44f7a1ba6ae561ff****\\",\\n \\"TemplateName\\": \\"my_template\\",\\n \\"Type\\": \\"common\\"\\n },\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 2023-07-24T16:44:55Z\\n ****20b48fb04483915d4f2cd8ac****\\n 2023-07-25T02:48:58Z\\n 2023-07-25T05:48:58Z\\n my_job\\n 0\\n rtmp://mydomain/app/stream1\\n rtmp://testdomain/app/stream2\\n 9b1571b513cb44f7a1ba6ae561ff****\\n my_template\\n common\\n \\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', - 'title' => '查询边缘转码任务详情', - 'description' => '用户需要具有访问边缘转码服务的权限,才能正常调用本接口。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"HasMore\\": false,\\n \\"Total\\": 2,\\n \\"UserList\\": [\\n {\\n \\"UserId\\": \\"1sd***,yu***\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 2\\n false\\n \\n 1sd***,yu***\\n \\n \\n","errorExample":""}]', ], - 'UpdateEdgeTranscodeJob' => [ - 'summary' => '更新边缘转码任务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListPlaylist' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'ClusterId', - 'in' => 'query', - 'schema' => [ - 'description' => '机房ID。', - 'type' => 'string', - 'required' => true, - 'example' => '******3b-4d18-395c-8106-ff21a6******', - ], - ], - [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘转码任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => '****20b48fb04483915d4f2cd8ac****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => '任务名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'task1', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'TemplateId', + 'name' => 'ProgramId', 'in' => 'query', - 'schema' => [ - 'description' => '模板ID。', - 'type' => 'string', - 'required' => false, - 'example' => '****96e8864746a0b6f3****', - ], + 'schema' => ['description' => '节目单ID。如果填此参数,则返回该节目单信息。若不填,默认返回该用户所有节目单信息。'."\n" + .'如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', 'type' => 'string', 'required' => false, 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****'], ], [ - 'name' => 'StreamInput', + 'name' => 'Page', 'in' => 'query', - 'schema' => [ - 'description' => '输入流地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://mydomain/app/stream1', - ], + 'schema' => ['description' => '查询分页页数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'StreamOutput', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '输出流地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://testdomain/app/stream2', - ], + 'schema' => ['description' => '查询分页每页数量。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], ], 'responses' => [ @@ -49874,115 +38977,106 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'description' => '边缘转码任务ID。', - 'type' => 'string', - 'example' => '****20b48fb04483915d4f2cd8ac****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', + 'ProgramList' => [ + 'description' => '节目单信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => ['description' => '节目单对应导播台ID。可作为添加虚拟演播厅布局、删除虚拟演播厅布局、修改虚拟演播厅布局和查询虚拟演播厅布局的请求参数。', 'type' => 'string', 'example' => 'casdfasdfasfdasdflkasjdflaj****'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'ProgramId' => ['description' => '节目单ID。', 'type' => 'string', 'example' => 'c09f3d63-eacf-4fbf-bd48-a07a6ba7****'], + 'ProgramName' => ['description' => '节目单名称。', 'type' => 'string', 'example' => 'playlist1'], + 'RepeatNumber' => ['description' => '播放完后继续重复播放的次数。取值:'."\n" + .'- **0**(默认值):不重复播放。'."\n" + .'- **-1**:一直循环重复。'."\n" + .'- 其他正整数:播放完1遍后继续重复播放的次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Status' => ['description' => '节目单状态。取值:'."\n" + .'- **0**:停止。'."\n" + .'- **1**:运行。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + ], + 'description' => '', + ], ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****'], + 'Total' => ['description' => '节目单数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidPageSize.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PageSize无效,请检查后重试。'], + ['errorCode' => 'InvalidPageNum.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PageNum无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], ], - 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s, please check and try again later.', - ], + 404 => [ + ['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList不存在,请检查后重试。'], ], - [ - [ - 'errorCode' => 'TemplateNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'JobNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ****20b48fb04483915d4f2cd8ac****\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', - 'title' => '更新边缘转码任务', - 'description' => '- 本接口用于更新边缘转码任务。'."\n" + 'title' => '获取播放列表', + 'summary' => '查询节目单。', + 'description' => '先通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,再调用本接口查询节目单。'."\n" ."\n" - .'- 用户需要具有访问边缘转码服务的权限,且转码任务处于未启动状态,才能正常调用本接口。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'StartEdgeTranscodeJob' => [ - 'summary' => '启动边缘转码任务。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListPlaylist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramList\\": [\\n {\\n \\"CasterId\\": \\"casdfasdfasfdasdflkasjdflaj****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"ProgramId\\": \\"c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ProgramName\\": \\"playlist1\\",\\n \\"RepeatNumber\\": 1,\\n \\"Status\\": 1\\n }\\n ],\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\",\\n \\"Total\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n 1\\n 1\\n example.com\\n c09f3d63-eacf-4fbf-bd48-a07a6ba7****\\n casdfasdfasfdasdflkasjdflaj****\\n playlist1\\n\\n5c6a2a0d-f228-4a64-af62-20e91b96****\\n1\\n","errorExample":""}]', + ], + 'ListPlaylistItems' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ClusterId', + 'name' => 'ProgramId', 'in' => 'query', - 'schema' => [ - 'description' => '机房ID。', - 'type' => 'string', - 'required' => true, - 'example' => '******3b-4d18-395c-8106-ff21a6******', - ], + 'schema' => ['description' => '节目单ID。如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], [ - 'name' => 'JobId', + 'name' => 'ProgramItemIds', 'in' => 'query', - 'schema' => [ - 'description' => '边缘转码任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => '****20b48fb04483915d4f2cd8ac****', - ], + 'schema' => ['description' => '节目单项ID列表。用英文逗号(,)隔开。'."\n" + .'如果传该参数,则只返回指定节目单项的信息。若不传,则返回该节目单所有节目单项的信息。', 'type' => 'string', 'required' => false, 'example' => 'c10f3d63-eacf-4fbf-bd48-a07a6ba7****,c09f3d63-eacf-4fbf-bd48-a07a6ba7****'], ], ], 'responses' => [ @@ -49990,137 +39084,121 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'description' => '边缘转码任务ID。', - 'type' => 'string', - 'example' => '****20b48fb04483915d4f2cd8ac****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', + 'Total' => ['description' => '节目单项数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9****'], + 'ProgramItems' => [ + 'description' => '节目单列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Index' => ['description' => '编排索引。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ResourceType' => ['description' => '资源类型。', 'type' => 'string', 'example' => 'vod'], + 'ProgramItemId' => ['description' => '节目单项ID。', 'type' => 'string', 'example' => 'c10f3d63-eacf-4fbf-bd48-a07a6ba7****'], + 'ProgramId' => ['description' => '节目单ID。可作为编辑节目单,删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + 'ProgramItemName' => ['description' => '节目单项名称。', 'type' => 'string', 'example' => 'playlistItem1'], + 'ResourceValue' => ['description' => '资源ID。', 'type' => 'string', 'example' => 'asdfasdf8as9df8sa9df89****'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'UserTaskExceed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'UserQuotaExceed', - 'errorMessage' => 'Quota exceeded: %s.', - ], - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ProgramId无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], ], - [ - [ - 'errorCode' => 'JobNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + 404 => [ + ['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ****20b48fb04483915d4f2cd8ac****\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', - 'title' => '启动边缘转码任务', - 'description' => '- 本接口用于启动边缘转码任务。'."\n" + 'title' => '列出播放列表项', + 'summary' => '查询指定节目单下的节目单项。', + 'description' => '先通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,再调用本接口查询指定节目单下的节目单项。'."\n" ."\n" - .'- 用户需要具有访问边缘转码服务的权限,且转码任务处于未启动状态,才能正常调用本接口。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'StopEdgeTranscodeJob' => [ - 'summary' => '停止边缘转码任务。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListPlaylistItems'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListPlaylistItems', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 1,\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9****\\",\\n \\"ProgramItems\\": [\\n {\\n \\"Index\\": 1,\\n \\"ResourceType\\": \\"vod\\",\\n \\"ProgramItemId\\": \\"c10f3d63-eacf-4fbf-bd48-a07a6ba7****\\",\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"ProgramItemName\\": \\"playlistItem1\\",\\n \\"ResourceValue\\": \\"asdfasdf8as9df8sa9df89****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5c6a2a0d-f228-4a64-af62-20e91b9****\\n \\n playlistItem1\\n asdfasdf8as9df8sa9df89****\\n c10f3d63-eacf-4fbf-bd48-a07a6ba7****\\n 1\\n vod\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n \\n 1\\n","errorExample":""}]', + ], + 'ListRTCLiveRooms' => [ + 'path' => '', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveHVN9B2', - ], + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], + 'autoTest' => false, + 'notSupportAutoTestReason' => '需要前置客户端入会等操作', ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['title' => '应用AppID', 'description' => '应用AppID', 'type' => 'string', 'required' => true, 'example' => 'a494caec-***-695ef345db77'], ], [ - 'name' => 'ClusterId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '机房ID。', - 'type' => 'string', - 'required' => true, - 'example' => '******3b-4d18-395c-8106-ff21a6******', - ], + 'schema' => ['title' => '分页大小,取值【10,100】,默认50', 'description' => '分页大小,取值【10,100】,默认50', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '10', 'example' => '50', 'default' => '50'], ], [ - 'name' => 'JobId', + 'name' => 'PageNo', 'in' => 'query', - 'schema' => [ - 'description' => '边缘转码任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => '****20b48fb04483915d4f2cd8ac****', - ], + 'schema' => ['title' => '当前分页,从1开始', 'description' => '当前分页,从1开始', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'description' => '边缘转码任务ID。', - 'type' => 'string', - 'example' => '****20b48fb04483915d4f2cd8ac****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****'], + 'Total' => ['description' => '查询结果总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Rooms' => [ + 'title' => '活跃房间列表', + 'description' => '活跃房间列表', + 'type' => 'array', + 'items' => ['description' => '房间号', 'type' => 'string', 'example' => 'room1'], ], ], ], @@ -50128,82 +39206,88 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], ], 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], ], [ - [ - 'errorCode' => 'JobNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ****20b48fb04483915d4f2cd8ac****\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', - 'title' => '停止边缘转码任务', - 'description' => '- 本接口用于查停止边缘转码任务。'."\n" - ."\n" - .'- 用户需要具有访问边缘转码服务的权限,且转码任务处于运行中状态,才能正常调用本接口。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'EnableLiveRealtimeLogDelivery' => [ - 'summary' => '调用EnableLiveRealtimeLogDelivery开启域名实时日志投递。', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询ARTC在线频道列表', + 'summary' => '获取在线频道列表', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:ListRTCLiveRooms', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\",\\n \\"Total\\": 2,\\n \\"Rooms\\": [\\n \\"room1\\"\\n ]\\n}","type":"json"}]', + ], + 'ListRtcMPUEventSubRecord' => [ + 'summary' => '查询混流转推事件订阅记录。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', - ], + 'abilityTreeCode' => '225589', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '订阅的应用ID。'."\n" + .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourAppId'], ], [ - 'name' => 'DomainName', + 'name' => 'SubId', 'in' => 'query', - 'schema' => [ - 'description' => '开启实时日志投递服务播流域名。'."\n" - ."\n" - .'多个域名之间用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '订阅的回调ID。', 'type' => 'string', 'required' => false, 'example' => 'yourSubId'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '查询记录的开始时间。'."\n" + .'格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)', 'type' => 'string', 'required' => true, 'example' => '1970-01-01T00:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '查询记录的结束时间。'."\n" + .'格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)', 'type' => 'string', 'required' => true, 'example' => '1970-01-01T00:00:00Z'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '单页显示记录的数量,取值范围:1~100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20'], ], ], 'responses' => [ @@ -50211,88 +39295,114 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], + 'Count' => ['description' => '当前页返回的回调记录总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'HasMore' => ['description' => '是否有下一页。', 'type' => 'boolean', 'example' => 'false'], + 'Logs' => [ + 'description' => '回调记录。', + 'type' => 'array', + 'items' => [ + 'description' => '回调记录。', + 'type' => 'object', + 'properties' => [ + 'AppId' => ['description' => '订阅的应用ID。', 'type' => 'string', 'example' => 'yourAppId'], + 'SubId' => ['description' => '事件回调ID。', 'type' => 'string', 'example' => 'Sub-******9799B2C4500******'], + 'MsgId' => ['description' => '回调记录ID。', 'type' => 'string', 'example' => '42bba8b5-********-9b501dd6cb6e'], + 'Data' => ['description' => '回调内容,详见[创建混流转推事件回调](~~2804583~~)。', 'type' => 'string', 'example' => '{\\"EventType\\":1,\\"MsgId\\":\\"42bba8b5-94ab-468c-9dae-9b501dd6c***\\",\\"AppId\\":\\"rtcdev\\",\\"SubId\\":\\"Sub-9799B2C45009799B2C4***\\",\\"TaskId\\":\\"mpucallbacktest\\",\\"CallbackTs\\":1712656430***,\\"Payload\\":{\\"DstUrl\\":\\"rtmp://domain/app/stream?auth\\",\\"EventTs\\":1712656430***,\\"EventCode\\":1,\\"ErrorCode\\":0,\\"ErrorMessage\\":\\"\\"}}'], + 'Time' => ['description' => '回调调用时间。'."\n" + .'格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)', 'type' => 'string', 'example' => '1970-01-01T00:00:00Z'], + 'Cost' => ['description' => '回调时长,单位:毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '22'], + 'CallbackUrl' => ['description' => '回调地址。', 'type' => 'string', 'example' => 'http://testcallback***.com/callback'], + 'HTTPCode' => ['description' => '错误码,200为回调成功。', 'type' => 'string', 'example' => '200'], + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], + ['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId无效,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], ], - 404 => [ - [ - 'errorCode' => 'Domain.NotFound', - 'errorMessage' => 'Domain not found', - ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => '无权限,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', - 'title' => '开启域名实时日志投递', - 'description' => '目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)配置。'."\n" - .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)配置。'."\n" - ."\n\n" + 'title' => '查询混流转推事件订阅记录', + 'description' => '本接口用于查询混流转推事件订阅记录,查询范围为近7天的数据。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特定错误码'."\n" - .'| 错误代码 | HTTP状态码 | 含义 |'."\n" - .'|--------------------------|-------------------------------------------|-----------|'."\n" - .'| Unauthorized | 403 | 没有开启实时投递授权。 |', - ], - 'DisableLiveRealtimeLogDelivery' => [ - 'summary' => '调用DisableLiveRealtimeLogDelivery暂停域名实时日志投递。', - 'methods' => [ - 'get', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-07-04T06:14:36.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListRtcMPUEventSubRecord', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"Count\\": 1,\\n \\"HasMore\\": false,\\n \\"Logs\\": [\\n {\\n \\"AppId\\": \\"yourAppId\\",\\n \\"SubId\\": \\"Sub-******9799B2C4500******\\",\\n \\"MsgId\\": \\"42bba8b5-********-9b501dd6cb6e\\",\\n \\"Data\\": \\"{\\\\\\\\\\\\\\"EventType\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"MsgId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"42bba8b5-94ab-468c-9dae-9b501dd6c***\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"AppId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"rtcdev\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"SubId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Sub-9799B2C45009799B2C4***\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"TaskId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"mpucallbacktest\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CallbackTs\\\\\\\\\\\\\\":1712656430***,\\\\\\\\\\\\\\"Payload\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"DstUrl\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"rtmp://domain/app/stream?auth\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"EventTs\\\\\\\\\\\\\\":1712656430***,\\\\\\\\\\\\\\"EventCode\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"ErrorCode\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"ErrorMessage\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"\\\\\\\\\\\\\\"}}\\",\\n \\"Time\\": \\"1970-01-01T00:00:00Z\\",\\n \\"Cost\\": 22,\\n \\"CallbackUrl\\": \\"http://testcallback***.com/callback\\",\\n \\"HTTPCode\\": \\"200\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n 1\\n false\\n \\n yourAppId\\n Sub-******9799B2C4500******\\n 42bba8b5-********-9b501dd6cb6e\\n {\\\\\\"EventType\\\\\\":1,\\\\\\"MsgId\\\\\\":\\\\\\"42bba8b5-94ab-468c-9dae-9b501dd6c***\\\\\\",\\\\\\"AppId\\\\\\":\\\\\\"rtcdev\\\\\\",\\\\\\"SubId\\\\\\":\\\\\\"Sub-9799B2C45009799B2C4***\\\\\\",\\\\\\"TaskId\\\\\\":\\\\\\"mpucallbacktest\\\\\\",\\\\\\"CallbackTs\\\\\\":1712656430***,\\\\\\"Payload\\\\\\":{\\\\\\"DstUrl\\\\\\":\\\\\\"rtmp://domain/app/stream?auth\\\\\\",\\\\\\"EventTs\\\\\\":1712656430***,\\\\\\"EventCode\\\\\\":1,\\\\\\"ErrorCode\\\\\\":0,\\\\\\"ErrorMessage\\\\\\":\\\\\\"\\\\\\"}}\\n \\n 22\\n http://testcallback***.com/callback\\n 200\\n \\n","errorExample":""}]', + ], + 'ListRtcMPUTaskDetail' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', - ], + 'abilityTreeCode' => '226001', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '应用ID。'."\n" + .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourAppId'], ], [ - 'name' => 'DomainName', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '暂停实时日志投递的播流域名。'."\n" - .'多个域名之间用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '任务ID。'."\n" + ."\n\n" + .'>- 任务ID由大小写字母、数字、下划线、短划线(-)组成,最大55字符。'."\n" + .'- 指定任务ID时,优先按任务ID查询,返回结果为指定任务ID的旁路转推任务的参数明细。', 'type' => 'string', 'required' => false, 'example' => 'yourTaskId'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '单页显示记录的数量,取值范围:1~100。'."\n" + .'> 未指定任务ID时,需要指定PageSize与PageNo参数,此时会返回指定应用ID下所有旁路转推任务参数明细的分页查询结果。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '20'], ], ], 'responses' => [ @@ -50300,119 +39410,342 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], + 'MPUTasks' => [ + 'description' => '任务参数明细,参数明细格式与调用创建混流任务时的参数格式一致。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AppId' => ['description' => '应用ID。'."\n", 'type' => 'string', 'example' => 'yourAppId'], + 'ChannelId' => ['description' => '频道ID。', 'type' => 'string', 'example' => 'yourChannelId'], + 'TaskId' => ['description' => '任务ID,此ID为旁路转推任务的标识。', 'type' => 'string', 'example' => 'yourTaskId'], + 'MixMode' => ['description' => '混流模式。取值:'."\n" + .'- 0:单路转推,不混流转码,仅转推原始单路流,无需配置混流转码参数。'."\n" + .'- 1(默认值):混流转码转推。', 'type' => 'string', 'example' => '0'], + 'StreamURL' => ['description' => '直播推流地址。'."\n", 'type' => 'string', 'example' => 'rtmp://example.com/live/stream****'], + 'MultiStreamURL' => [ + 'description' => '多地址转推参数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'URL' => ['description' => '直播推流地址。', 'type' => 'string', 'example' => 'rtmp://example.com/live/stream****'], + 'IsAliCdn' => ['description' => '是否转推到阿里云CDN。'."\n" + .'- false为转推非阿里云CDN。'."\n" + .'- true为转推阿里云CDN。', 'type' => 'boolean', 'example' => 'false'], + ], + 'description' => '', + ], + ], + 'Region' => ['description' => '请求的混流服务所在区域。取值:'."\n" + .'- **CN-Shanghai(默认值)**:上海。'."\n" + .'- **AP-Singapore(默认值)**:新加坡。'."\n" + .'- **EMAA-Saudi**:沙特。', 'type' => 'string', 'example' => 'CN-Shanghai'], + 'MaxIdleTime' => ['description' => '空闲超时时间,单位:秒'."\n" + .'> 若设置了此参数,则会在任务处于空闲状态的时长大于 MaxIdleTime 时,自动停止该任务;若未设置此参数,则会在房间关闭后,立刻停止该任务。', 'type' => 'string', 'example' => '10'], + 'SingleSubParams' => [ + 'description' => '单流转推参数。', + 'type' => 'object', + 'properties' => [ + 'SourceType' => ['description' => '单流转推模式下视频输入流类型,当视频流(StreamType=2)时有效。取值:'."\n" + .'- camera(默认值):摄像头。'."\n" + .'- shareScreen:屏幕共享。', 'type' => 'string', 'example' => 'camera'], + 'StreamType' => ['description' => '单流转推模式下转推流类型。取值:'."\n" + .'- 0(默认值):转推原始流。'."\n" + .'- 1:仅转推音频流。'."\n" + .'- 2:仅转推视频流。', 'type' => 'string', 'example' => '0'], + 'UserId' => ['description' => '转推用户ID,一次只能转推一路流。', 'type' => 'string', 'example' => 'yourSubUserId'], + ], + ], + 'TranscodeParams' => [ + 'description' => '混流转码转推参数。', + 'type' => 'object', + 'properties' => [ + 'Background' => [ + 'description' => '混流全局背景图。', + 'type' => 'object', + 'properties' => [ + 'RenderMode' => ['description' => '子画面输出时的显示模式:'."\n" + .'- 0:缩放并显示黑底。'."\n" + .'- 1(默认):裁剪。', 'type' => 'string', 'example' => '1'], + 'URL' => ['description' => '全局背景图URL。', 'type' => 'string', 'example' => 'yourImageUrl'], + ], + ], + 'EncodeParams' => [ + 'description' => '转推输出的编码参数。', + 'type' => 'object', + 'properties' => [ + 'AudioOnly' => ['description' => '是否为纯音频,取值:'."\n" + .'- true:纯音频。'."\n" + .'- false(默认值):非纯音频。', 'type' => 'string', 'example' => 'false'], + 'AudioBitrate' => ['description' => '音频码率,单位:kbps。', 'type' => 'string', 'example' => '128'], + 'AudioChannels' => ['description' => '音频声道数,取值:1、2。', 'type' => 'string', 'example' => '2'], + 'AudioSampleRate' => ['description' => '音频采样率,单位:Hz。', 'type' => 'string', 'example' => '44100'], + 'VideoCodec' => ['description' => '视频编码格式。默认值H.264。', 'type' => 'string', 'example' => 'H.264'], + 'VideoBitrate' => ['description' => '视频码率,单位:kbps。', 'type' => 'string', 'example' => '3500'], + 'VideoFramerate' => ['description' => '视频帧率,单位:fps。', 'type' => 'string', 'example' => '25'], + 'VideoGop' => ['description' => '视频GOP。', 'type' => 'string', 'example' => '20'], + 'VideoHeight' => ['description' => '视频高,单位:px。', 'type' => 'string', 'example' => '1000'], + 'VideoWidth' => ['description' => '视频宽,单位:px。', 'type' => 'string', 'example' => '1920'], + 'EnhancedParam' => ['description' => '编码增强参数,JSON字符串,目前支持的可选配置包括profile与preset。'."\n" + .'- profile:编码级别。当视频编码格式为H.264时,profile支持的可选值包括:"baseline", "main", "high"。'."\n" + .'- preset:调节编码速度和质量的平衡。preset支持的可选值包括:"ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow" "placebo"。每个值代表了一种编码速度与输出视频质量的策略,从"ultrafast"(极快,编码速度优先)到"placebo"(追求极致质量,编码极慢)。', 'type' => 'string', 'example' => '{"profile": "high", "preset": "veryfast"}'], + ], + ], + 'Layout' => [ + 'description' => '视频布局信息。'."\n" + .'> 视频转码时所指定的视频布局信息,包括布局坐标(X,Y),布局窗格(Width,Height),叠放顺序(ZOrder);纯音频转码时,不包含视频布局信息。', + 'type' => 'object', + 'properties' => [ + 'UserPanes' => [ + 'description' => '混流用户窗格信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UserInfo' => [ + 'description' => '混流用户信息。'."\n", + 'type' => 'object', + 'properties' => [ + 'SourceType' => ['description' => '混流转码模模式下视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" + .'- camera(默认值):摄像头。'."\n" + .'- shareScreen:屏幕共享。', 'type' => 'string', 'example' => 'camera'], + 'ChannelId' => ['description' => '混流用户所在的频道ID。', 'type' => 'string', 'example' => 'yourChannelId'], + 'UserId' => ['description' => '混流用户ID。', 'type' => 'string', 'example' => 'yourSubUserId'], + ], + ], + 'Height' => ['description' => '窗格高,归一化百分比。', 'type' => 'string', 'example' => '0.2632'], + 'Width' => ['description' => '窗格宽,归一化百分比。', 'type' => 'string', 'example' => '0.3564'], + 'X' => ['description' => '坐标X,归一化百分比。', 'type' => 'string', 'example' => '0.2456'], + 'Y' => ['description' => '坐标Y,归一化百分比。', 'type' => 'string', 'example' => '0.3789'], + 'ZOrder' => ['description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。', 'type' => 'string', 'example' => '0'], + 'BackgroundImageUrl' => ['description' => '子画面的背景图URL。当用户关闭摄像头或未进入房间时,会在布局位置填充为此图片。', 'type' => 'string', 'example' => 'yourImageUrl'], + 'RenderMode' => ['description' => '子画面输出时的显示模式,取值:'."\n" + .'- 0:缩放并显示黑底。'."\n" + .'- 1(默认值):裁剪。', 'type' => 'string', 'example' => '1'], + ], + 'description' => '', + ], + ], + ], + ], + 'UserInfos' => [ + 'description' => '混流用户信息,不指定用户则所有用户混流。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ChannelId' => ['description' => '混流用户所在的频道ID。', 'type' => 'string', 'example' => 'yourChannelId'], + 'UserId' => ['description' => '混流用户ID。', 'type' => 'string', 'example' => 'yourSubUserId'], + 'SourceType' => ['description' => '混流转码模模式下视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" + .'- camera(默认值):摄像头'."\n" + .'- shareScreen:屏幕共享。', 'type' => 'string', 'example' => 'camera'], + 'StreamType' => ['description' => '混流转码模式下转推流类型。取值:'."\n" + .'- 0(默认值):转推原始流。'."\n" + .'- 1:仅转推音频流。'."\n" + .'- 2:仅转推视频流。', 'type' => 'string', 'example' => '0'], + ], + 'description' => '', + ], + ], + ], + ], + 'SeiParams' => [ + 'description' => 'SEI配置参数。', + 'type' => 'object', + 'properties' => [ + 'LayoutVolume' => [ + 'description' => '布局和音量SEI,该参数内容为空则表示携带默认的布局和音量SEI。', + 'type' => 'object', + 'properties' => [ + 'FollowIdr' => ['description' => '发送IDR关键帧时是否确保携带SEI,取值:'."\n" + .'- 0:不确保带SEI。'."\n" + .'- 1:确保带SEI。', 'type' => 'string', 'example' => '0'], + 'Interval' => ['description' => 'SEI发送间隔,单位:毫秒。', 'type' => 'string', 'example' => '1000'], + ], + ], + 'PassThrough' => [ + 'description' => '透传SEI。', + 'type' => 'object', + 'properties' => [ + 'FollowIdr' => ['description' => '发送IDR关键帧时是否确保携带SEI,取值:'."\n" + .'- 0:不确保带SEI。'."\n" + .'- 1:确保带SEI。', 'type' => 'string', 'example' => '0'], + 'Interval' => ['description' => 'SEI发送间隔,单位:毫秒。', 'type' => 'string', 'example' => '1000'], + 'PayloadContent' => ['description' => '透传SEI的payload内容。', 'type' => 'string', 'example' => 'yourPayloadContent'], + 'PayloadContentKey' => ['description' => '透传SEI的payload内容对应的key值。不设置时,key为默认值udd。', 'type' => 'string', 'example' => 'yourPayloadContentKey'], + ], + ], + 'PayloadType' => ['description' => 'SEI消息的自定义payload_type,取值范围100-254。不设置时,SEI的payload_type为默认值为5。', 'type' => 'string', 'example' => '100'], + ], + ], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], + ['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId无效,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], ], - 404 => [ - [ - 'errorCode' => 'Domain.NotFound', - 'errorMessage' => 'Domain not found', - ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => '无权限,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', - 'title' => '暂停域名实时日志投递', - 'description' => '先获取实时日志投递的播流域名,再调用本接口暂停域名实时日志投递。'."\n" - .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)配置。'."\n" - .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)配置。'."\n" + 'title' => '查询混流转推任务参数明细', + 'summary' => '查询混流转推任务参数明细。', + 'description' => '- 本接口用于查询混流转推任务的参数明细,仅可查询通过API创建的混流转推任务。'."\n" ."\n" + .'- 分页查询时,查询结果默认按照任务的更新时间倒序排列。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特定错误码'."\n" - ."\n" - .'| HttpCode | 错误码 | 描述 |'."\n" - .'|--------------------------|-----------------|---------------------------|'."\n" - .'| 403 | Unauthorized | 没有开启实时投递授权。 |', - ], - 'ModifyLiveRealtimeLogDelivery' => [ - 'summary' => '调用ModifyLiveRealtimeLogDelivery更改域名实时日志投递。', - 'methods' => [ - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-11-14T09:21:05.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-10-30T09:33:19.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-08-13T08:23:10.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-08-06T07:59:23.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-07-04T07:02:35.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListRtcMPUTaskDetail'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListRtcMPUTaskDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"MPUTasks\\": [\\n {\\n \\"AppId\\": \\"yourAppId\\",\\n \\"ChannelId\\": \\"yourChannelId\\",\\n \\"TaskId\\": \\"yourTaskId\\",\\n \\"MixMode\\": \\"0\\",\\n \\"StreamURL\\": \\"rtmp://example.com/live/stream****\\",\\n \\"MultiStreamURL\\": [\\n {\\n \\"URL\\": \\"rtmp://example.com/live/stream****\\",\\n \\"IsAliCdn\\": false\\n }\\n ],\\n \\"Region\\": \\"CN-Shanghai\\",\\n \\"MaxIdleTime\\": \\"10\\",\\n \\"SingleSubParams\\": {\\n \\"SourceType\\": \\"camera\\",\\n \\"StreamType\\": \\"0\\",\\n \\"UserId\\": \\"yourSubUserId\\"\\n },\\n \\"TranscodeParams\\": {\\n \\"Background\\": {\\n \\"RenderMode\\": \\"1\\",\\n \\"URL\\": \\"yourImageUrl\\"\\n },\\n \\"EncodeParams\\": {\\n \\"AudioOnly\\": \\"false\\",\\n \\"AudioBitrate\\": \\"128\\",\\n \\"AudioChannels\\": \\"2\\",\\n \\"AudioSampleRate\\": \\"44100\\",\\n \\"VideoCodec\\": \\"H.264\\",\\n \\"VideoBitrate\\": \\"3500\\",\\n \\"VideoFramerate\\": \\"25\\",\\n \\"VideoGop\\": \\"20\\",\\n \\"VideoHeight\\": \\"1000\\",\\n \\"VideoWidth\\": \\"1920\\",\\n \\"EnhancedParam\\": \\"{\\\\\\"profile\\\\\\": \\\\\\"high\\\\\\", \\\\\\"preset\\\\\\": \\\\\\"veryfast\\\\\\"}\\"\\n },\\n \\"Layout\\": {\\n \\"UserPanes\\": [\\n {\\n \\"UserInfo\\": {\\n \\"SourceType\\": \\"camera\\",\\n \\"ChannelId\\": \\"yourChannelId\\",\\n \\"UserId\\": \\"yourSubUserId\\"\\n },\\n \\"Height\\": \\"0.2632\\",\\n \\"Width\\": \\"0.3564\\",\\n \\"X\\": \\"0.2456\\",\\n \\"Y\\": \\"0.3789\\",\\n \\"ZOrder\\": \\"0\\",\\n \\"BackgroundImageUrl\\": \\"yourImageUrl\\",\\n \\"RenderMode\\": \\"1\\"\\n }\\n ]\\n },\\n \\"UserInfos\\": [\\n {\\n \\"ChannelId\\": \\"yourChannelId\\",\\n \\"UserId\\": \\"yourSubUserId\\",\\n \\"SourceType\\": \\"camera\\",\\n \\"StreamType\\": \\"0\\"\\n }\\n ]\\n },\\n \\"SeiParams\\": {\\n \\"LayoutVolume\\": {\\n \\"FollowIdr\\": \\"0\\",\\n \\"Interval\\": \\"1000\\"\\n },\\n \\"PassThrough\\": {\\n \\"FollowIdr\\": \\"0\\",\\n \\"Interval\\": \\"1000\\",\\n \\"PayloadContent\\": \\"yourPayloadContent\\",\\n \\"PayloadContentKey\\": \\"yourPayloadContentKey\\"\\n },\\n \\"PayloadType\\": \\"100\\"\\n }\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n \\n yourAppId\\n yourChannelId\\n yourTaskId\\n 0\\n rtmp://example.com/live/stream****\\n \\n rtmp://example.com/live/stream****\\n \\n CN-Shanghai\\n \\n camera\\n 0\\n yourSubUserId\\n \\n \\n \\n 1\\n yourImageUrl\\n \\n \\n false\\n 128\\n 2\\n 44100\\n H.264\\n 3500\\n 25\\n 20\\n 1000\\n 1920\\n {\\"profile\\": \\"high\\", \\"preset\\": \\"veryfast\\"}\\n \\n \\n \\n \\n camera\\n yourChannelId\\n yourSubUserId\\n \\n 0.2632\\n 0.3564\\n 0.2456\\n 0.3789\\n 0\\n yourImageUrl\\n 1\\n \\n \\n \\n yourChannelId\\n yourSubUserId\\n camera\\n 0\\n \\n \\n \\n \\n 0\\n 1000\\n \\n \\n 0\\n 1000\\n yourPayloadContent\\n yourPayloadContentKey\\n \\n 100\\n \\n \\n","errorExample":""}]', + ], + 'ModifyCasterComponent' => [ + 'summary' => '调用ModifyCasterComponent修改导播台组件。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Project', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '实时投递SLS的ProjectName。', - 'type' => 'string', - 'required' => true, - 'example' => 'project_example', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], [ - 'name' => 'Logstore', + 'name' => 'ComponentId', 'in' => 'query', - 'schema' => [ - 'description' => '实时投递日志服务(SLS)的LogStoreName。', - 'type' => 'string', - 'required' => true, - 'example' => 'logstore_example', - ], + 'schema' => ['description' => '组件ID。如果您通过[AddCasterComponent接口](~~2848030~~)添加导播台组件,请查看AddCasterComponent接口调用返回的参数ComponentId值。', 'type' => 'string', 'required' => true, 'example' => '05ab713c-676e-49c0-96ce-cc408da1****'], ], [ - 'name' => 'Region', + 'name' => 'ComponentName', 'in' => 'query', - 'schema' => [ - 'description' => '实时投递SLS的Region。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '组件名称,默认为组件ID。', 'type' => 'string', 'required' => false, 'example' => 'text01'], ], [ - 'name' => 'DomainName', + 'name' => 'ComponentType', 'in' => 'query', - 'schema' => [ - 'description' => '修改实时日志投递的主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '组件的类型。取值:'."\n" + .'- **text**:文字组件。如果ComponentType的取值为text,TextLayerContent参数才必传。'."\n" + .'- **image**:图片组件。如果ComponentType的取值为image,ImageLayerContent参数才必传。'."\n" + .'- **caption**:翻译字幕组件。如果ComponentType的取值为caption,CaptionLayerContent参数才必传。', 'type' => 'string', 'required' => false, 'example' => 'text'], + ], + [ + 'name' => 'Effect', + 'in' => 'query', + 'schema' => ['description' => '组件显示的特效。取值:'."\n" + ."\n" + .' - **none**(默认值):无。'."\n" + .' - **animateH**:水平滚动。'."\n" + .' - **animateV**:垂直滚动。 ', 'type' => 'string', 'required' => false, 'example' => 'animateV'], + ], + [ + 'name' => 'ComponentLayer', + 'in' => 'query', + 'schema' => ['description' => 'Layer的尺寸,布局等信息。格式为JSON。设置元素说明如下:'."\n" + .'- **HeightNormalized**:高度归一化比例值。'."\n" + .'- **WidthNormalized**:宽度归一化比例值。'."\n" + .'- **PositionNormalized**:layer 元素的位置归一化值。'."\n" + .'- **PositionRefer**:元素的位置参考坐标值。', 'type' => 'string', 'required' => false, 'example' => '{"HeightNormalized":"1","PositionRefer":"topRight","WidthNormalized":"0","PositionNormalized":["0.1","0.2"]}'], + ], + [ + 'name' => 'TextLayerContent', + 'in' => 'query', + 'schema' => ['description' => 'Layer元素属性。格式为JSON。元素属性说明如下:'."\n" + .'>当ComponentType取值为text时,本参数必传。'."\n" + .'>'."\n" + .'- **SizeNormalized**:字体归一化大小,字体设置大小为“font_size/output_height”,取值范围`[0,1]`,如果系统根据归一化方式反计算出来的字体大小大于1024,取1024。'."\n" + .'- **BorderWidthNormalized**:文字边框宽度归一化值,该归一化值是基于文字的size来计算的,即“BorderWidth/FontSize”,取值范围`[0,1]`,如果根据归一化方式反计算出来的值超过16,取16,默认0。'."\n" + .'- **FontName**:字体名称,取值请参见**导播台字体说明**,默认楷体,“KaiTi”。'."\n" + .'- **BorderColor**:文字边框色彩,取值“0x000000-0xffffff”,默认“”,表示无效。'."\n" + .'- **Text**:文本内容,默认“”。'."\n" + .'- **Color**:文字色彩,默认“0xff0000”,红色。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '{"BorderWidthNormalized":"1","SizeNormalized":"0.2","Color":"0x000000","FontName":"KaiTi","BorderColor":"0x000000","Text":"hello world!"}'], + ], + [ + 'name' => 'ImageLayerContent', + 'in' => 'query', + 'schema' => ['description' => 'Layer元素属性。格式为JSON。'."\n" + .'>当ComponentType为image时,本参数必传。'."\n" + .'>'."\n" + ."\n\n" + .'MaterialId为媒资库素材ID。'."\n", 'type' => 'string', 'required' => false, 'example' => '{"MaterialId":"6cf724c6ebfd4a59b5b3cec6f10d5ecf"}'], + ], + [ + 'name' => 'CaptionLayerContent', + 'in' => 'query', + 'schema' => ['description' => 'Layer元素属性。格式为JSON。元素属性说明如下:'."\n" + .'>当ComponentType为caption时,本参数必传。'."\n" + .'>'."\n" + .'- **SizeNormalized**:字体归一化大小,字体设置大小为“font_size/output_height”,取值范围`[0,1]`,如果系统根据归一化方式反计算出来的字体大小大于1024,取1024。'."\n" + .'- **BorderWidthNormalized**:文字边框宽度归一化值,该归一化值是基于文字的size来计算的,即“BorderWidth/FontSize”,取值范围`[0,1]`,如果根据归一化方式反计算出来的值超过16,取16,默认0。'."\n" + .'- **FontName**:字体名称,取值请参见**导播台字体说明**,默认楷体,“KaiTi”。'."\n" + .'- **BorderColor**:文字边框色彩,取值“0x000000-0xffffff”,默认“”,表示无效。'."\n" + .'- **LocationId**: 翻译源的channelId。'."\n" + .'- **SourceLan**: 视频源的原始音频语言。En-英文,cn-中文,es-西班牙文,ru-俄文,默认为cn-中文。'."\n" + .'- **TargetLan**:视频源的目标音频语言。不设置表示语音识别,设置表示翻译。取值:en-英文,cn-中文,es-西班牙文,ru-俄文,cn-中文。'."\n" + .'- **ShowSourceLan**:是否显示源语言。取值:true-显示,false-不显示,默认为false。'."\n" + .'- **Truncation**:字幕是否可以被截断。取值:true-可以被截断,false-不可以被截断,默认为false。'."\n" + .'- **SourceLanPerLineWordCount**:源语言每行字数,Truncation为true的时候生效, 默认20。'."\n" + .'- **TargetLanPerLineWordCount**:目标语言每行字数,Truncation为true的时候生效,默认20。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '{"BorderWidthNormalized":0.01,"SizeNormalized":0.05,"Color":"0x000000","LocationId":"RV01","SourceLan":"cn","FontName":"KaiTi","BorderColor":"0xffffff"}'], ], ], 'responses' => [ @@ -50420,126 +39753,153 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', - ], + 'ComponentId' => ['description' => '组件ID。可作为查询导播台组件列表的请求参数。', 'type' => 'string', 'example' => '05ab713c-676e-49c0-96ce-cc408da1****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidPositionNormalized.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PositionNormalized无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'Domain.NotFound', - 'errorMessage' => 'Domain not found', - ], - [ - 'errorCode' => 'LogstoreNotExist', - 'errorMessage' => 'Logstore does not exist', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '待操作的组件不存在,请检查后重试。'], + ['errorCode' => 'CanvasNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Canvas不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', - 'title' => '更改域名实时日志投递', - 'description' => '- 调用本接口更改域名实时日志投递。一个域名同时仅支持投递单个logstore。'."\n" - .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)配置。'."\n" - .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)配置。'."\n" - ."\n" - .'- 您可调用[DescribeLiveDomainRealtimeLogDelivery](~~2848121~~)查询Project、Logstore、Region参数信息。'."\n" + 'title' => '修改导播台组件', + 'description' => '调用本接口修改导播台组件。本接口目前支持的组件类型为文字组件、图片组件和翻译字幕组件。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '## 导播台字体说明'."\n" + .'|字体|FontName取值|'."\n" + .'|-----|-----|'."\n" + .'|楷体|KaiTi|'."\n" + .'|阿里巴巴普惠体-常规|AlibabaPuHuiTi-Regular|'."\n" + .'|阿里巴巴普惠体-粗体|AlibabaPuHuiTi-Bold|'."\n" + .'|阿里巴巴普惠体-细体|AlibabaPuHuiTi-Light|'."\n" + .'|思源黑体-常规|NotoSansHans-Regular|'."\n" + .'|思源黑体-粗体|NotoSansHans-Bold|'."\n" + .'|思源黑体-细体|NotoSansHans-Light|', 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特定错误码'."\n" - ."\n" - .'|HttpCode | 错误码 |描述 |'."\n" - .'|--------------------------|-------------------------------------------|-----------|'."\n" - .'| 403 | LogstoreNotExist | 未找到对应Logstore 信息。 |'."\n" - .'| 404 | Domain.NotFound | 域名未开通实时日志投递服务。 |', - ], - 'CreateLiveRealTimeLogDelivery' => [ - 'summary' => '调用CreateLiveRealTimeLogDelivery创建域名实时日志投递。', - 'methods' => [ - 'get', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyCasterComponent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ComponentId\\": \\"05ab713c-676e-49c0-96ce-cc408da1****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 05ab713c-676e-49c0-96ce-cc408da1****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'ModifyCasterEpisode' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'ComponentId', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', + 'description' => '组件列表。'."\n" + .'按照元素顺序由下而上排列,组件将与视频源同步切换。'."\n" + ."\n" + .'- 当EpisodeType取值为**Component**视频源时,本参数才有用且必传。'."\n" + .'- 当EpisodeType取值为**Resource**组件时,表示组件与视频源绑定并同步切换。'."\n" + .'> N表示第几个组件ID。例如:ComponentId.1表示传入第一个组件ID;ComponentId.2表示传入第2个组件ID。', + 'type' => 'array', + 'items' => ['description' => '组件列表。', 'type' => 'string', 'required' => false, 'example' => '["16A96B9A-F203-4EC5-8E43-CB92E68F****"]'], 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'example' => '["16A96B9A-F203-4EC5-8E43-CB92E68F****"]', + 'maxItems' => 10, ], ], [ - 'name' => 'Project', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '实时投递SLS的ProjectName。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_project', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], [ - 'name' => 'Logstore', + 'name' => 'EpisodeId', 'in' => 'query', - 'schema' => [ - 'description' => '实时投递SLS的LogStoreName。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_logstore', - ], + 'schema' => ['description' => '节目ID。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938623****'], ], [ - 'name' => 'Region', + 'name' => 'EpisodeName', 'in' => 'query', - 'schema' => [ - 'description' => '实时投递SLS的Region。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '节目名称。', 'type' => 'string', 'required' => false, 'example' => 'episode_name_1'], ], [ - 'name' => 'DomainName', + 'name' => 'ResourceId', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '视频源ID。 '."\n" + .' '."\n" + .'- 当EpisodeType取值为**Resource**视频源时,本参数才有用且必传。'."\n" + .'- 当EpisodeType取值为**Component**组件时,本参数不可用。', 'type' => 'string', 'required' => false, 'example' => '16A96B9A-F203-4EC5-8E43-CB92E683****'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T10:20:00Z'], + ], + [ + 'name' => 'SwitchType', + 'in' => 'query', + 'schema' => ['description' => '切换策略。 当EpisodeType取值为**Resource**视频源时有效。'."\n" + .' '."\n" + .'- **TimeFirst**:时间优先,直播类视频源只允许采用时间优先。 '."\n" + .'- **ContentFirst**:内容优先。', 'type' => 'string', 'required' => false, 'example' => 'TimeFirst'], ], ], 'responses' => [ @@ -50547,55 +39907,73 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F****', - ], + 'CasterId' => ['description' => '导播台ID。可作为复制导播台场景配置、更新导播场景配置、查询导播台场景列表、查询导播台场景音频配置、启动导播台场景和停止导播台场景的请求参数。', 'type' => 'string', 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], + 'EpisodeId' => ['description' => '节目ID。可作为删除导播台节目列表,创建或添加节目单项,删除节目单项,查询节目单项,编辑节目单,删除节目单,查询节目单,启动节目单,停止节目单的请求参数。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938623****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'SwitchTypeInvalid.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SwitchType无效,请检查后重试。'], + ['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数StartTime无效,请检查后重试。'], + ['errorCode' => 'IncorrectEndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数EndTime无效,请检查后重试。'], + ['errorCode' => 'IncorrectEpisodeStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '节目当前状态不可操作,请检查后重试。'], + ['errorCode' => 'EpisodeConflict.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '节目时间存在冲突,请检查后重试。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'LogstoreNotExist', - 'errorMessage' => 'Logstore does not exist', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], + ['errorCode' => 'InvalidEpisode.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '节目不存在,请检查后重试。'], + ['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '待操作的组件不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F32C57AA-7BF8-49AE-A2CC-9F42390F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n F32C57AA-7BF8-49AE-A2CC-9F42390F5A19\\r\\n","errorExample":""}]', - 'title' => '创建域名实时日志投递', - 'description' => '先获取播流域名,再调用本接口创建域名实时日志投递。'."\n" + 'title' => '修改导播台节目配置,节目类型不允许修改', + 'summary' => '修改导播台节目配置,节目类型不允许修改。', + 'description' => '调用本接口修改导播台节目配置,节目类型不允许修改。'."\n" + ."\n\n" ."\n" - .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)配置。'."\n" - .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)配置。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特定错误码'."\n" - ."\n" - .'| HttpCode| 错误码 | 描述 |'."\n" - .'|--------------------------|-------------------------------------------|-----------|'."\n" - .'| 403| Unauthorized | 没有开启实时投递授权。 |'."\n" - .'| 404| LogstoreNotExist | 未找到对应Logstore信息。 |'."\n", - ], - 'DeleteLiveRealtimeLogDelivery' => [ - 'summary' => '调用DeleteLiveRealtimeLogDelivery删除域名实时日志推送。', - 'methods' => [ - 'get', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyCasterEpisode'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyCasterEpisode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"EpisodeId\\": \\"a2b8e671-2fe5-4642-a2ec-bf938623****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n a2b8e671-2fe5-4642-a2ec-bf938623****\\n LIVEPRODUCER_POST-cn-0pp1czt****\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n}"}]', + ], + 'ModifyCasterLayout' => [ + 'summary' => '修改布局配置,传递修改项,非修改内容无需传递。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -50603,547 +39981,805 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'VideoLayer', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '播流域名。'."\n" - ."\n" - .'多个域名使用英文逗号(,)分隔。', - 'type' => 'string', + 'description' => '视频信息。', + 'type' => 'array', + 'items' => [ + 'description' => '视频信息。', + 'type' => 'object', + 'properties' => [ + 'FillMode' => ['description' => '元素填充方式。 '."\n" + ."\n" + .'- **none**(默认):不填充,以画面作为配置目标进行Layer设置。'."\n" + .'- **fit**:自适应,以填充区(框)作为配置目标进行Layer设置,此时画面会按照原始的宽高比缩放,长边对齐的自适应方式在填充区(框)内居中填充,若填充区宽高比和画面不一致,则短边两侧无填充(显示为下层Layer画面,若下层未配置Layer,默认为底图黑色)。', 'type' => 'string', 'required' => false, 'example' => 'fit'], + 'FixedDelayDuration' => ['description' => '该字段对视频进行固定延迟设置,可用于字幕同步。 单位:毫秒。默认值:**0**,取值范围:**0~5000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5000'], + 'HeightNormalized' => ['description' => 'layer元素的高度归一化比例值。 '."\n" + .' '."\n" + .'- 若采用不填充模式,元素的宽度会按照该高度来进行等比缩放,默认为**0**,表示按照画面的原始尺寸进行显示。'."\n" + .'- 若采用自适应方式时,该字段必传且大于**0**,表示填充区(框)高度归一化比例值。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1'], + 'PositionNormalized' => [ + 'description' => 'layer 元素的位置归一化值`[x,y]`。默认值为`[0,0]`。'."\n" + ."\n" + .'>注意x,y需要进行归一化计算。', + 'type' => 'array', + 'items' => ['description' => 'layer 元素的位置归一化值`[x,y]`。默认值为`[0,0]`。'."\n" + ."\n" + .'>注意x,y需要进行归一化计算。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.5'], + 'required' => false, + 'example' => '0.3', + 'maxItems' => 2, + ], + 'PositionRefer' => ['description' => '元素的position参考坐标值。取值:'."\n" + .'- **topLeft**(默认值):左上。'."\n" + .'- **topRight**:右上。'."\n" + .'- **bottomLeft**:左下。'."\n" + .'- **bottomRight**:右下。'."\n" + .'- **center**:中间。'."\n" + .'- **topCenter**:中上。'."\n" + .'- **bottomCenter**:中下。'."\n" + .'- **leftCenter**:左中。'."\n" + .'- **rightCenter**:右中。', 'type' => 'string', 'required' => false, 'example' => 'topLeft'], + 'WidthNormalized' => ['description' => 'layer元素的宽度归一化比例值。 '."\n" + ."\n" + .'- 若采用不填充模式,元素的高度会按照该宽度来进行等比缩放,默认值为**0**,表示按照画面的原始尺寸进行显示。'."\n" + .'- 若采用自适应方式时,该字段必传且大于**0**,表示填充区(框)宽度归一化比例值。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1'], + ], + 'required' => false, + ], 'required' => true, - 'example' => 'example.com,example.aliyundoc.com', + 'maxItems' => 12, ], ], [ - 'name' => 'Project', + 'name' => 'AudioLayer', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '实时投递SLS的ProjectName。', - 'type' => 'string', + 'description' => '音频信息。', + 'type' => 'array', + 'items' => [ + 'description' => '音频信息。', + 'type' => 'object', + 'properties' => [ + 'FixedDelayDuration' => ['description' => '该字段对音频进行固定延迟设置,可用于字幕同步。 单位:毫秒。默认值:**0**。取值范围:**0~5000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5000'], + 'ValidChannel' => ['description' => '确定哪些声道可以作为音量输入。取值:'."\n" + .'- **leftChannel**:左声道。'."\n" + .'- **rightChannel**:右声道。'."\n" + .'- **all**(默认值):双声道。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'all'], + 'VolumeRate' => ['description' => 'layer元素的高度归一化比例值,其中元素的宽度会按照该高度来进行等比缩放。 '."\n" + ."\n" + .'默认值为**0**,表示按照元素的原始尺寸进行显示。 ', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1'], + ], + 'required' => false, + ], 'required' => true, - 'example' => 'project_example', + 'maxItems' => 12, ], ], [ - 'name' => 'Logstore', + 'name' => 'BlendList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '实时投递SLS的LogStoreName。', - 'type' => 'string', + 'description' => '元素为视频资源的位置ID,即LocationId。'."\n" + ."\n" + .'LocationId参见[添加视频源](~~2848020~~),与VideoLayers元素顺序对应。', + 'type' => 'array', + 'items' => ['description' => '元素为视频资源的位置ID,即LocationId。'."\n" + ."\n" + .'LocationId参见[添加视频源](~~2848020~~),与VideoLayers元素顺序对应。', 'type' => 'string', 'required' => false, 'example' => 'RV02'], 'required' => true, - 'example' => 'logstore_example', + 'example' => 'RV02', + 'maxItems' => 12, ], ], [ - 'name' => 'Region', + 'name' => 'MixList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '实时投递SLS的Region。', - 'type' => 'string', + 'description' => '元素为音频资源的位置ID,即LocationId。'."\n" + ."\n" + .'LocationId参见[添加视频源](~~2848020~~),与AudioLayers元素顺序对应。', + 'type' => 'array', + 'items' => ['description' => '元素为音频资源的位置ID,即LocationId。'."\n" + ."\n" + .'LocationId参见[添加视频源](~~2848020~~),与AudioLayers元素顺序对应。', 'type' => 'string', 'required' => false, 'example' => 'RV02'], 'required' => true, - 'example' => 'cn-hangzhou', + 'example' => 'RV02', + 'maxItems' => 12, ], ], - ], - 'responses' => [ - 200 => [ + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], + ], + [ + 'name' => 'LayoutId', + 'in' => 'query', + 'schema' => ['description' => '布局ID。如果您通过[AddCasterLayout接口](~~2848025~~)添加导播台布局,请查看AddCasterLayout接口调用返回的参数LayoutId值。', 'type' => 'string', 'required' => true, 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', - ], + 'LayoutId' => ['description' => '布局ID。可作为查询导播台布局列表的请求参数。', 'type' => 'string', 'example' => '21926b36-7dd2-4fde-ae25-51b5bc8e****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidLayoutId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidVideoLayersAndBlendListSize.Mismatch', 'errorMessage' => '%s, please check and try again later.', 'description' => 'VideoLayers的大小与BlendList的大小不匹配,请检查后重试。'], + ['errorCode' => 'InvalidAudioLayersAndMixListSize.Mismatch', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AudioLayers的大小与MixList的大小不匹配,请检查后重试。'], + ['errorCode' => 'InvalidPositionNormalized.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PositionNormalized无效,请检查后重试。'], + ['errorCode' => 'InvalidBlendList.ExceedNorm', 'errorMessage' => '%s, please check and try again later.', 'description' => 'BlendList大小超过规格,请检查后重试。'], + ['errorCode' => 'InvalidMixList.ExceedNorm', 'errorMessage' => '%s, please check and try again later.', 'description' => 'MixList大小超过规格,请检查后重试。'], + ['errorCode' => 'InvalidHeightOrWidthNormalized', 'errorMessage' => '%s, please check and try again later.', 'description' => 'HeightNormalized或者WidthNormalized参数无效,请检查后重试。'], + ['errorCode' => 'InvalidVideoLayersConfig', 'errorMessage' => '%s, please check and try again later.', 'description' => 'VideoLayers的大小与BlendList的大小不匹配,请检查后重试。'], + ['errorCode' => 'InvalidAudioLayersConfig', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AudioLayers的大小与MixList的大小不匹配,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'LogstoreNotExist', - 'errorMessage' => 'Logstore does not exist', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', - 'title' => '删除域名实时日志推送', - 'description' => '- 目前仅支持配置播流域名,如需配置上行实时日志(即配置推流域名),请[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)配置。目前仅支持配置播流域名,如需配置上行实时日志(即配置推流域名),请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)配置。'."\n" - ."\n" - .'- 您可调用[DescribeLiveDomainRealtimeLogDelivery](~~2848121~~)查询Project、Logstore、Region参数信息。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"LayoutId\\": \\"21926b36-7dd2-4fde-ae25-51b5bc8e52d8\\"\\n}"}]', + 'title' => '修改导播台布局', + 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口修改布局配置,传递修改项,非修改内容无需传递。本接口目前支持的元素填充方式为默认和自适应。'."\n" + ."\n\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '> 请求参数中的N表示第几个的意思。例如:VideoLayer.N.FillMode表示传入第几个元素的填充方式。VideoLayer.1.FillMode表示传入第1个元素的填充方式,VideoLayer.2.FillMode表示传入第2个元素的填充方式。'."\n" + .' '."\n", 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特定错误码'."\n" - ."\n" - .'| HttpCode| 错误码 | 描述 |'."\n" - .'|--------------------------|-------------------------------------------|-----------|'."\n" - .'| 403| Unauthorized | 没有开启实时投递授权。 |'."\n" - .'| 404| LogstoreNotExist | 未找到对应Logstore信息。 |', - ], - 'DescribeLiveDomainRealtimeLogDelivery' => [ - 'summary' => '调用DescribeLiveDomainRealtimeLogDelivery查询域名实时日志投递信息。', - 'methods' => [ - 'get', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyCasterLayout', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + ], + 'ModifyCasterProgram' => [ + 'summary' => '修改导播台节目单。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107035', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DomainName', + 'name' => 'Episode', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', + 'description' => '节目信息。', + 'type' => 'array', + 'items' => [ + 'description' => '节目信息。', + 'type' => 'object', + 'properties' => [ + 'ComponentId' => [ + 'description' => '组件列表。按照元素顺序由下而上排列,组件将与视频源同步切换'."\n" + ."\n" + .'- 当节点类型为**Component**时,本参数才有用且必传。'."\n" + .'- 当节点类型为**Resource**时,表示组件与视频源绑定并同步切换。', + 'type' => 'array', + 'items' => ['description' => '组件列表。按照元素顺序由下而上排列,组件将与视频源同步切换'."\n" + ."\n" + .'- 当节点类型为**Component**时,本参数才有用且必传。'."\n" + .'- 当节点类型为**Resource**时,表示组件与视频源绑定并同步切换。', 'type' => 'string', 'required' => false, 'example' => '["a2b8e671-2fe5-4642-a2ec-bf93888****" ]'], + 'required' => false, + 'example' => '["a2b8e671-2fe5-4642-a2ec-bf93888****" ]', + 'maxItems' => 10, + ], + 'EndTime' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T10:04:00Z'], + 'EpisodeId' => ['description' => '节目ID。如果您通过[AddCasterEpisode接口](~~2848068~~)添加导播台节目,请查看AddCasterEpisode接口调用返回的参数EpisodeId值。', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938887****'], + 'EpisodeName' => ['description' => '节目名称。', 'type' => 'string', 'required' => false, 'example' => 'program_name_2'], + 'EpisodeType' => ['description' => '节目类型。取值:'."\n" + ."\n" + .'- **Resource**:视频源。'."\n" + .'- **Component**:组件。', 'type' => 'string', 'required' => false, 'example' => 'Resource'], + 'ResourceId' => ['description' => '视频源ID。 如果您通过[AddCasterVideoResource接口](~~2848020~~)添加导播台视频源,请查看AddCasterVideoResource接口调用返回的参数ResourceId值。', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf938887****'], + 'StartTime' => ['description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T09:02:00Z'], + 'SwitchType' => ['description' => '切换策略。 节点类型为**Resource**视频源时有效。'."\n" + .' '."\n" + .'- **TimeFirst**:时间优先,直播类视频源只允许采用时间优先。 '."\n" + .'- **ContentFirst**:内容优先。', 'type' => 'string', 'required' => false, 'example' => 'TimeFirst'], + ], + 'required' => false, + ], 'required' => true, - 'example' => 'example.com', + 'maxItems' => 100, ], ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '域名实时投递状态。取值:'."\n" - ."\n" - .'- online:开启实时投递。'."\n" - .'- offline:未开启实时投递。', - 'type' => 'string', - 'example' => 'online', - ], - 'Logstore' => [ - 'description' => '实时投递SLS的LogStoreName。', - 'type' => 'string', - 'example' => 'logstore_example', - ], - 'Project' => [ - 'description' => '实时投递SLS的ProjectName。', - 'type' => 'string', - 'example' => 'project_example', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '2F8F3852-912F-42AC-80EB-F1CF4284DE93', - ], - 'Region' => [ - 'description' => '实时投递SLS的Region。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], + 'CasterId' => ['description' => '导播台ID。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'SwitchTypeInvalid.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SwitchType无效,请检查后重试。'], + ['errorCode' => 'IncorrectStartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数StartTime无效,请检查后重试。'], + ['errorCode' => 'IncorrectEndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数EndTime无效,请检查后重试。'], + ['errorCode' => 'IncorrectEpisodeStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '节目当前状态不可操作,请检查后重试。'], + ['errorCode' => 'EpisodeConflict.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '节目时间存在冲突,请检查后重试。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 404 => [ - [ - 'errorCode' => 'Domain.NotFound', - 'errorMessage' => 'Domain not found', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], + ['errorCode' => 'InvalidEpisode.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '节目不存在,请检查后重试。'], + ['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '待操作的组件不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": \\"online\\",\\n \\"Logstore\\": \\"logstore_example\\",\\n \\"Project\\": \\"project_example\\",\\n \\"RequestId\\": \\"2F8F3852-912F-42AC-80EB-F1CF4284DE93\\",\\n \\"Region\\": \\"cn-shanghai\\"\\n}","errorExample":""},{"type":"xml","example":"\\n online\\n logstore_example\\n project_example\\n 2F8F3852-912F-42AC-80EB-F1CF4284DE93\\n cn-shanghai\\n","errorExample":""}]', - 'title' => '查询域名实时日志投递信息', - 'description' => '调用本接口查询域名实时日志投递状态,无其他特殊使用说明,调用时请保证参数设置符合要求。'."\n" + 'title' => '修改导播台节目单', + 'description' => '先通过[AddCasterProgram接口](~~2848074~~)添加导播台节目单,再调用本接口修改导播台节目单。本接口目前支持的节目类型为视频源和组件。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', + .'本接口的单用户QPS限制为4次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '请求参数必须传一个要修改的节目内容,即至少一个Episode属性。'."\n" + .' > 请求参数中的N表示第几个的意思。例如:
Episode.N.EpisodeName表示传入第几个节目名称。Episode.1.EpisodeName表示传入第1个节目名称,Episode.2.EpisodeName表示传入第2个节目名称。', 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特定错误码'."\n" - ."\n" - .'| HttpCode| 错误码 | 描述 |'."\n" - .'|--------------------------|-------------------------------------------|-----------|'."\n" - .'| 404 | Domain.NotFound | 域名未开通实时日志投递服务。 |', - ], - 'ListLiveRealtimeLogDelivery' => [ - 'summary' => '调用ListLiveRealtimeLogDelivery查询用户下所有实时日志投递。', - 'methods' => [ - 'get', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyCasterProgram'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyCasterProgram', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n a2b8e671-2fe5-4642-a2ec-bf93880e****\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'ModifyCasterVideoResource' => [ + 'summary' => '修改导播台视频资源。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'LiveOpenapiReserve', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '该参数暂无实际意义。', - 'type' => 'string', - 'required' => false, - 'example' => '无', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster](~~2848009~~)接口创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => ['description' => '资源ID。如果您通过[AddCasterVideoResource](~~2848020~~)接口添加导播台视频源,请查看AddCasterVideoResource接口调用返回的参数ResourceId值。', 'type' => 'string', 'required' => true, 'example' => '05ab713c-676e-49c0-96ce-cc408da1****'], + ], + [ + 'name' => 'ResourceName', + 'in' => 'query', + 'schema' => ['description' => '视频源名称。', 'type' => 'string', 'required' => false, 'example' => 'test001'], + ], + [ + 'name' => 'LiveStreamUrl', + 'in' => 'query', + 'schema' => ['description' => '直播流地址。'."\n" + ."\n" + .'>当视频源类型为直播流时,本参数才可用且必传。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'rtmp://guide.aliyundoc.com/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-ac8c628078541d7055a170ec59a5****'], + ], + [ + 'name' => 'MaterialId', + 'in' => 'query', + 'schema' => ['description' => '素材ID。', 'type' => 'string', 'required' => false, 'example' => 'f080575eb5f4427684fc0715159a****'], + ], + [ + 'name' => 'VodUrl', + 'in' => 'query', + 'schema' => ['description' => '点播文件地址。'."\n" + .'>当视频源类型为文件视频且视频文件未导入素材库时,本参数才可用。'."\n" + .'>'."\n" + .'>点播文件仅限MP4、FLV、TS格式。', 'type' => 'string', 'required' => false, 'example' => 'http://developer.aliyundoc.com/AppName/StreamName.flv'], + ], + [ + 'name' => 'BeginOffset', + 'in' => 'query', + 'schema' => ['description' => '视频文件起始偏移值。单位:毫秒。'."\n" + ."\n" + .'>当视频源类型为文件视频时,本参数才有用。'."\n" + .'>'."\n" + ."\n" + .'>大于0,表示从相对于首帧的偏差时间作为开始读取的位置。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'EndOffset', + 'in' => 'query', + 'schema' => ['description' => '仅对文件视频有效。单位:毫秒。 '."\n" + .' '."\n" + .'- 大于**0**时,表示从相对于首帧的偏差时间为结束读取的位置。'."\n" + .'- 小于**0**时,表示相对于最后一帧的偏差时间作为结束读取的位置。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10000'], + ], + [ + 'name' => 'RepeatNum', + 'in' => 'query', + 'schema' => ['description' => '仅对文件视频有效,表示播放完后重复继续播放的次数。 '."\n" + .' '."\n" + .'- **0**(默认值):表示不重复播放。'."\n" + .'- **-1**:表示一直循环重复。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '60', 'minimum' => '-1', 'example' => '0'], + ], + [ + 'name' => 'PtsCallbackInterval', + 'in' => 'query', + 'schema' => ['description' => 'PTS回调间隔。单位:毫秒,仅对点播素材有效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '0', 'example' => '2000'], + ], + [ + 'name' => 'ImageId', + 'in' => 'query', + 'schema' => ['description' => '媒资库图片素材ID。'."\n" + .'>当视频源类型为图片时,本参数才可用且必须传入。', 'type' => 'string', 'required' => false, 'example' => 'a089175eb5f4427684fc0715159a****'], + ], + [ + 'name' => 'ImageUrl', + 'in' => 'query', + 'schema' => ['description' => '图片素材URL。'."\n" + .'>当视频源类型为图片且图片文件未导入素材库时,本参数才可用。支持上传jpg、png格式图片,最大文件不可超过10M。', 'type' => 'string', 'required' => false, 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '实时日志投递信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '30559C03-86C9-4EEC-B840-0DC5F5A2189B', - ], - 'Content' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RealtimeLogDeliveryInfo' => [ - 'description' => '实时日志投递信息。', - 'type' => 'array', - 'items' => [ - 'description' => '实时日志投递信息。', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '日志服务状态。取值:'."\n" - ."\n" - .'- **online**:正在服务。'."\n" - .'- **offline**:停止服务。', - 'type' => 'string', - 'example' => 'online', - ], - 'DmId' => [ - 'description' => '域名ID。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1001010', - ], - 'Region' => [ - 'description' => '实时投递SLS的Region。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'Logstore' => [ - 'description' => '实时投递SLS的LogStoreName。', - 'type' => 'string', - 'example' => 'logstore_example', - ], - 'Project' => [ - 'description' => '实时投递SLS的ProjectName。', - 'type' => 'string', - 'example' => 'project_example', - ], - 'DomainName' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - ], - ], - ], + 'CasterId' => ['description' => '导播台ID。可作为查询导播台视频源、添加导播台布局、查询导播台布局列表的请求参数。', 'type' => 'string', 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7'], + 'ResourceId' => ['description' => '资源ID。', 'type' => 'string', 'example' => '98461064-1c94-4dc1-85ce-94098764****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidResourceId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ResourceId无效,请检查后重试。'], + ['errorCode' => 'InvalidLiveStreamUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数LiveStreamUrl无效,请检查后重试。'], + ['errorCode' => 'InvalidMaterialId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数MaterialId无效,请检查后重试。'], + ['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数VodUrl无效,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"30559C03-86C9-4EEC-B840-0DC5F5A2189B\\",\\n \\"Content\\": {\\n \\"RealtimeLogDeliveryInfo\\": [\\n {\\n \\"Status\\": \\"online\\",\\n \\"DmId\\": 1001010,\\n \\"Region\\": \\"cn-hangzhou\\",\\n \\"Logstore\\": \\"logstore_example\\",\\n \\"Project\\": \\"project_example\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 30559C03-86C9-4EEC-B840-0DC5F5A2189B\\n \\n \\n online\\n cn-hangzhou-corp\\n example.com\\n 1001010\\n project_example\\n logstore_example\\n \\n \\n online\\n cn-hangzhou\\n example.com\\n 101010101\\n project_example\\n logstore_example\\n \\n \\n","errorExample":""}]', - 'title' => '查询用户下所有实时日志投递', - 'description' => '您可调用本接口查询用户下所有实时日志投递,无其他特殊使用说明,调用时请保证参数设置符合要求。'."\n" - ."\n" + 'title' => '修改导播台视频源', + 'description' => '先通过[CreateCaster](~~2848009~~)接口创建导播台,再调用本接口修改导播台视频资源。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特定错误码'."\n" - .'| HttpCode| 错误码 | 错误信息|描述 |'."\n" - .'|--------------------------|----------------------|---------------------|-----------|'."\n" - .'| 403| Unauthorized |RealtimeLogDelivery Service Not Authorized | 没有开启实时投递授权。|', - ], - 'ListLiveRealtimeLogDeliveryDomains' => [ - 'summary' => '调用ListLiveRealtimeLogDeliveryDomains查询实时日志投递服务下所有直播域名。', - 'methods' => [ - 'get', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-03-31T11:03:01.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2023-03-31T08:26:54.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyCasterVideoResource', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"LIVEPRODUCER_POST-cn-0pp1czt****\\",\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"ResourceId\\": \\"98461064-1c94-4dc1-85ce-94098764****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n LIVEPRODUCER_POST-cn-0pp1czt****\\n 98461064-1c94-4dc1-85ce-94098764****\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', + ], + 'ModifyLiveAIStudio' => [ + 'summary' => '本接口用于修改指定的虚拟演播模板。', + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107178', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', - ], + 'abilityTreeCode' => '250887', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'StudioName', + 'in' => 'query', + 'schema' => ['description' => '虚拟演播模板名称,与创建接口中的入参StudioName相同', 'type' => 'string', 'required' => true, 'example' => 'stu02'], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => '自定义描述信息。', 'type' => 'string', 'required' => false, 'example' => 'custom'], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => ['description' => '预览画面宽度,单位:px', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1920'], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => ['description' => '预览画面高度,单位:px'."\n" + ."\n" + .'预览画面宽度x高度仅支持以下规格:'."\n" + ."\n" + .'- 横屏流畅 360P 640x360'."\n" + .'- 竖屏流畅 360P 360x640'."\n" + .'- 横屏标清 480P 854x480'."\n" + .'- 竖屏标清 480P 480x854'."\n" + .'- 横屏高清 720P 1280x720'."\n" + .'- 竖屏高清 720P 720x1280'."\n" + .'- 横屏超清 1080P 1920x1080'."\n" + .'- 竖屏超清 1080P 1080x1920', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1080'], + ], + [ + 'name' => 'BackgroundType', + 'in' => 'query', 'schema' => [ - 'description' => '地域ID。', + 'description' => '背景素材类型:'."\n" + .'- VOD 点播视频'."\n" + .'- PIC 图片'."\n" + .'- LIVE 直播流', 'type' => 'string', 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'enumValueTitles' => ['VOD' => '点播视频', 'PIC' => '图片', 'LIVE' => '直播流'], + 'example' => 'VOD'."\n", + 'enum' => ['VOD', 'LIVE', 'PIC'], ], ], [ - 'name' => 'Project', + 'name' => 'BackgroundResourceId', 'in' => 'query', 'schema' => [ - 'description' => '实时投递SLS的ProjectName。', + 'description' => '背景素材的点播资源id,从点播控制台获取', 'type' => 'string', - 'required' => true, - 'example' => 'project_example', + 'required' => false, + 'example' => 'd0eb493192c771efba644531858c0102', + 'enum' => [], ], ], [ - 'name' => 'Logstore', + 'name' => 'BackgroundResourceUrl', 'in' => 'query', 'schema' => [ - 'description' => '实时投递SLS的LogStoreName。', + 'description' => '背景素材的资源访问url', 'type' => 'string', - 'required' => true, - 'example' => 'logstore_example', + 'required' => false, + 'example' => 'https://xxx.com/2.mp4'."\n", + 'enum' => [], ], ], [ - 'name' => 'Region', + 'name' => 'MediaType', + 'in' => 'query', + 'schema' => [ + 'description' => '多媒体素材类型:'."\n" + .'- VOD 点播视频'."\n" + .'- PIC 图片'."\n" + .'- LIVE 直播流', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => ['VOD' => '点播视频', 'PIC' => '图片', 'LIVE' => '直播流'], + 'example' => 'VOD', + 'enum' => ['VOD', 'LIVE', 'PIC'], + ], + ], + [ + 'name' => 'MediaResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => '多媒体素材的点播资源id,从点播控制台获取', + 'type' => 'string', + 'required' => false, + 'example' => 'd0eb493192c771efba644531858c01102', + 'enum' => [], + ], + ], + [ + 'name' => 'MediaResourceUrl', + 'in' => 'query', + 'schema' => [ + 'description' => '多媒体素材的资源访问url,与资源id二选一传入', + 'type' => 'string', + 'required' => false, + 'example' => 'https://xxx.com/1.mp4'."\n", + 'enum' => [], + ], + ], + [ + 'name' => 'MediaLayout', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '多媒体素材的位置布局信息', + 'type' => 'object', + 'properties' => [ + 'PositionX' => ['description' => '位置参数,坐标x。取值:**0~1**。素材位置以左上角为基准点。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0'], + 'PositionY' => ['description' => '位置参数,坐标y。取值:**0~1**。素材位置以左上角为基准点。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0'], + 'HeightNormalized' => ['description' => '素材的高度归一化值。即素材与背景的高度比。取值:**0~1**。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.5'], + ], + 'required' => false, + ], + ], + [ + 'name' => 'MattingType', 'in' => 'query', 'schema' => [ - 'description' => '实时投递SLS的Region。', + 'description' => '抠图类型:'."\n" + .'- green 绿幕抠图'."\n" + .'- blue 蓝幕抠图'."\n" + .'- complex 实景抠图', 'type' => 'string', 'required' => true, - 'example' => 'cn-hangzhou', + 'enumValueTitles' => ['green' => '绿幕抠图', 'blue' => '蓝幕抠图', 'complex' => '实景抠图'], + 'example' => 'complex', + 'enum' => ['green', 'blue', 'complex'], + ], + ], + [ + 'name' => 'MattingLayout', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '源流抠图后的布局位置信息', + 'type' => 'object', + 'properties' => [ + 'PositionX' => ['description' => '位置参数,坐标x。取值:**0~1**。素材位置以左上角为基准点。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0'], + 'PositionY' => ['description' => '位置参数,坐标y。取值:**0~1**。素材位置以左上角为基准点。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0'], + 'HeightNormalized' => ['description' => '高度归一化值。即抠出的人像与背景的高度比。取值:**0~1**。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.5'], + ], + 'required' => true, ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '响应结构体', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '95D5B69F-8AEC-419B-8F3A-612B35032B0D', - ], - 'Content' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Domains' => [ - 'description' => '域名详情。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '日志服务状态。取值:'."\n" - ."\n" - .'- **online**:正在服务。'."\n" - .'- **offline**:停止服务。', - 'type' => 'string', - 'example' => 'online', - ], - 'DomainName' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求id', 'type' => 'string', 'example' => '0BA6B3C4-525A-5381-A2B0-5351323F31C5'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', - ], + ['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '直播服务未开通,请检查后重试。'], + ['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PurchaseTime无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ExpireTime无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType仅支持后付费,请检查后重试。'], + ['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterTemplate无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '时间间隔无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ClientToken无效,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态有误,请检查后重试。'], ], - 404 => [ - [ - 'errorCode' => 'LogstoreNotExist', - 'errorMessage' => 'Logstore does not exist', - ], + [ + ['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台数量超限,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '访问拒绝,请检查后重试。'], + ], + [ + ['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数NormType无效,请检查后重试。'], + ['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ], + 408 => [ + ['errorCode' => 'ModifyLiveAIStudio.Timeout', 'errorMessage' => '%s, please try again later.', 'description' => '调用ModifyLiveAIStudio超时,请稍后重试。'], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"95D5B69F-8AEC-419B-8F3A-612B35032B0D\\",\\n \\"Content\\": {\\n \\"Domains\\": [\\n {\\n \\"Status\\": \\"online\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 95D5B69F-8AEC-419B-8F3A-612B35032B0D\\n \\n online\\n example.com\\n \\n","errorExample":""}]', - 'title' => '查询实时日志投递服务下所有直播域名', - 'description' => '- 调用本接口查询实时日志投递服务下所有直播域名,返回的日志服务状态分为正在服务和停止服务。'."\n" - ."\n" - .'- 您可调用[DescribeLiveDomainRealtimeLogDelivery](~~2848121~~)查询Project、Logstore、Region参数信息。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特定错误码'."\n" - .'| HttpCode| 错误码 | 错误信息 | 描述 |'."\n" - .'|--------------------------|--------------------------|-----------------|-----------|'."\n" - .'| 403| Unauthorized | RealtimeLogDelivery Service Not Authorized|没有开启实时投递授权。 |'."\n" - .'| 404| LogstoreNotExist |Logstore does not exist| 未找到对应Logstore信息。 |', - ], - 'ListLiveRealtimeLogDeliveryInfos' => [ - 'summary' => '调用ListLiveRealtimeLogDeliveryInfo查询所有实时日志投递服务信息。', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0BA6B3C4-525A-5381-A2B0-5351323F31C5\\"\\n}","type":"json"}]', + 'title' => '修改虚拟演播模板', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveAIStudio'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveAIStudio', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ModifyLiveDomainSchdmByProperty' => [ + 'summary' => '修改直播域名加速区域。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', - ], + 'abilityTreeCode' => '107191', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'LiveOpenapiReserve', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '该参数暂无实际意义。', - 'type' => 'string', - 'required' => false, - 'example' => '无', - ], + 'schema' => ['description' => '需修改加速区域的直播域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'Property', + 'in' => 'query', + 'schema' => ['description' => '修改加速区域。'."\n" + .'{“coverage”:“overseas”} 指的是该配置面向的是海外区域。下面是对三个支持的coverage值的说明:'."\n" + .'- domestic:中国内地。'."\n" + .'- overseas:海外及港澳台加速。'."\n" + .'- global:全球加速。', 'type' => 'string', 'required' => true, 'example' => '{"coverage":"global"}'], ], ], 'responses' => [ @@ -51151,1014 +40787,692 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '95D5B69F-8AEC-419B-8F3A-612B35032B0D', - ], - 'Content' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RealtimeLogDeliveryInfos' => [ - 'description' => '日志投递服务信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Logstore' => [ - 'description' => '实时投递SLS的LogStoreName。', - 'type' => 'string', - 'example' => 'logstore_example', - ], - 'Project' => [ - 'description' => '实时投递SLS的ProjectName。', - 'type' => 'string', - 'example' => 'project_example', - ], - 'Region' => [ - 'description' => '实时投递SLS的Region。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', + ['errorCode' => 'Schedule.NotFound', 'errorMessage' => 'there is no schedule domain found by the targeted coverage value', 'description' => ''], + ['errorCode' => 'DomainTraffic.ExceedThreshold', 'errorMessage' => 'not allowed to do this operation because the last day traffic exceeds the threshold', 'description' => ''], + ['errorCode' => 'Domain.BeianInvalid', 'errorMessage' => 'not allowed to do this operation because the domain registration record invalid in China main land', 'description' => '不执行该操作因为域名下的注册信息在中国大陆为无效的'], + ['errorCode' => 'Schedule.ChangeFail', 'errorMessage' => 'change domain failed', 'description' => ''], + ['errorCode' => 'LockFail', 'errorMessage' => 'The domain name is being used by another operation, please try again later.', 'description' => '域名正被其他操作占用中,请稍后重试'], + ], + ], + 'title' => '修改直播域名加速区域', + 'description' => '### QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveDomainSchdmByProperty', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"95D5B69F-8AEC-419B-8F3A-612B35032B0D\\",\\n \\"Content\\": {\\n \\"RealtimeLogDeliveryInfos\\": [\\n {\\n \\"Logstore\\": \\"logstore_example\\",\\n \\"Project\\": \\"project_example\\",\\n \\"Region\\": \\"cn-hangzhou\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n95D5B69F-8AEC-419B-8F3A-612B35032B0D\\n\\n \\n project_example\\n logstore_example\\n cn-hangzhou\\n \\n\\n","errorExample":""}]', - 'title' => '查询所有实时日志投递服务信息', - 'description' => '您可调用本接口所有实时日志投递服务信息,无其他特殊使用说明,调用时请保证参数设置符合要求。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特定错误码'."\n" - .'| HttpCode| 错误码 | 错误信息 | 描述 |'."\n" - .'|--------------------------|----------------|---------------------------|-----------|'."\n" - .'| 403| Unauthorized | RealtimeLogDelivery Service Not Authorized | 没有开启实时投递授权。 |', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 15C66C7B-671A-4297-9187-2C4477247A74\\n","errorExample":""}]', ], - 'DescribeLivePushProxyLog' => [ - 'summary' => '通过DescribeLivePushProxyLog,获取直播转推离线日志下载地址。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyLiveMessageAppAudit' => [ + 'summary' => '修改互动消息应用安全审核设置。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', - ], - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', + 'in' => 'query', + 'schema' => ['description' => '需要修改信息的互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], + ], + [ + 'name' => 'AuditType', 'in' => 'query', 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', + 'title' => '安全审核方式:0为不进行安全审核,1为内置安全审核, 2为自定义安全审核', + 'description' => '安全审核方式。取值:'."\n" + .'- 0:不进行安全审核'."\n" + .'- 1:内置安全审核'."\n" + .'- 2:自定义安全审核', + 'type' => 'integer', + 'format' => 'int32', 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'example' => '2', + 'enum' => ['0', '1', '2'], ], ], [ - 'name' => 'DomainName', + 'name' => 'AuditUrl', 'in' => 'query', - 'schema' => [ - 'description' => '推流域名。不支持多域名查询。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['title' => '如果是自定义安全审核,则需要提供安全审核的地址', 'description' => '如果是自定义安全审核(AuditType=2),则需要提供安全审核的地址。安全审核地址以http://或https://开头,不包含私有IP,不允许带端口号。', 'type' => 'string', 'required' => false, 'example' => 'http://example.aliyundoc.com/exampleaudit'], ], [ - 'name' => 'PageSize', + 'name' => 'DataCenter', 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '分页大小。取值范围:\\[1, 1000\\],默认值为300。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '300', - 'default' => '300', + 'title' => 'Schema of Response', + 'description' => '返回参数。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '4C4E8440-3838-1831-9BDE-AFC15803****'], + 'AppId' => ['description' => '需要修改的互动消息应用ID。', 'type' => 'string', 'example' => 'demo'], + 'AppSign' => ['description' => '互动消息应用签名,互动消息服务SDK需要该信息。', 'type' => 'string', 'example' => '**************************************************************************'], + 'AuditType' => ['description' => '安全审核方式。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'AuditUrl' => ['description' => 'AuditType为2时提供的安全审核地址。', 'type' => 'string', 'example' => 'http: //example.aliyundoc.com/exampleaudit'], + 'AuditNeedAuthentication' => ['description' => '调用鉴权。如果是自定义安全审核,则默认为true开启调用鉴权。', 'type' => 'boolean', 'example' => 'true'], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ['errorCode' => 'ErrorInvalidAuditUrl', 'errorMessage' => '%s.', 'description' => 'AuditUrl无效,请检查后重新尝试。'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '修改直播互动应用鉴权信息', + 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-02-02T01:46:06.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageAppAudit'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveMessageAppAudit', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4C4E8440-3838-1831-9BDE-AFC15803****\\",\\n \\"AppId\\": \\"demo\\",\\n \\"AppSign\\": \\"**************************************************************************\\",\\n \\"AuditType\\": 2,\\n \\"AuditUrl\\": \\"http: //example.aliyundoc.com/exampleaudit\\",\\n \\"AuditNeedAuthentication\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 4C4E8440-3838-1831-9BDE-AFC15803****\\n demo\\n **************************************************************************\\n 2\\n http: //example.aliyundoc.com/exampleaudit\\n true\\n","errorExample":""}]', + ], + 'ModifyLiveMessageAppCallback' => [ + 'summary' => '修改互动消息应用回调信息。', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], + 'parameters' => [ [ - 'name' => 'PageNumber', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '分页的页数,默认值为1。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '2', - 'default' => '1', - ], + 'schema' => ['description' => '需要修改的互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'StartTime', + 'name' => 'EventCallbackUrl', 'in' => 'query', - 'schema' => [ - 'description' => '获取日志起始时间。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2023-09-20T08:00:00Z', - ], + 'schema' => ['description' => '用户登录、登出、加入、离开群组等事件回调地址。若为空则不开启回调。事件回调地址以http://或https://开头,不包含私有IP,不允许带端口号。', 'type' => 'string', 'required' => false, 'example' => 'http://example.aliyundoc.com/examplecallback'], ], [ - 'name' => 'EndTime', + 'name' => 'DataCenter', 'in' => 'query', - 'schema' => [ - 'description' => '获取日志结束时间。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2023-09-20T09:00:00Z', - ], + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回数据。', + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'DomainLogDetails' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DomainLogDetail' => [ - 'description' => 'DomainLogDetail组成的数据。', - 'type' => 'array', - 'items' => [ - 'description' => 'DomainLogDetail组成的数据。', - 'type' => 'object', - 'properties' => [ - 'LogCount' => [ - 'description' => '本页返回的总条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'LogInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LogInfoDetail' => [ - 'description' => 'LogInfoDetail组成的数据。'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'LogInfoDetail组成的数据。', - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。'."\n" - ."\n" - .'格式时间戳', - 'type' => 'string', - 'example' => '1695189600', - ], - 'LogName' => [ - 'description' => '日志名称。', - 'type' => 'string', - 'example' => 'example.com'."\n" - .'_2023_09_20_160000_170000.****.gz', - ], - 'LogPath' => [ - 'description' => '日志路径。'."\n", - 'type' => 'string', - 'example' => '****.aliyuncs.com/push_proxy/****/example.com/2023_09_20/1600/example.com'."\n" - .'_2023_09_20_160000_170000.****.gz', - ], - 'LogSize' => [ - 'description' => '日志大小。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '512', - ], - 'StartTime' => [ - 'description' => '起始时间。'."\n" - ."\n" - .'格式时间戳', - 'type' => 'string', - 'example' => '1695193200', - ], - ], - ], - ], - ], - ], - 'PageInfos' => [ - 'description' => 'PageInfoDetail组成的数据。', - 'type' => 'object', - 'properties' => [ - 'PageIndex' => [ - 'description' => '返回数据的页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '分页大小。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'Total' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - ], - ], - ], - ], - ], - ], - ], - 'DomainName' => [ - 'description' => '推流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '1F0FFEAD-B7D5-1D4A-A6B9-8C63ADF6****'], + 'AppId' => ['description' => '修改回调的互动消息应用ID。', 'type' => 'string', 'example' => 'demo'], + 'AppSign' => ['description' => '互动消息应用签名,互动消息服务SDK需要该信息。', 'type' => 'string', 'example' => '**************************************************************************'], + 'EventCallbackUrl' => ['description' => '用户登录、登出、加入、离开群组等事件回调地址。若为空则不返回。', 'type' => 'string', 'example' => 'http://example.aliyundoc.com/examplecallback'], + 'EventCallbackNeedAuthentication' => ['description' => '事件回调是否需要鉴权。默认为true。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'Specified StartTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter StartTime is not supported.', - ], - [ - 'errorCode' => 'Invalid Parameter', - 'errorMessage' => 'The specified Invalid Parameter', - ], - [ - 'errorCode' => 'Internal Error', - 'errorMessage' => 'Internal Error contact admin', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ['errorCode' => 'ErrorInvalidEventCallbackUrl', 'errorMessage' => '%s.', 'description' => 'EventCallbackUrl无效,请检查后重新尝试。'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainLogDetails\\": {\\n \\"DomainLogDetail\\": [\\n {\\n \\"LogCount\\": 10,\\n \\"LogInfos\\": {\\n \\"LogInfoDetail\\": [\\n {\\n \\"EndTime\\": \\"1695189600\\",\\n \\"LogName\\": \\"example.com\\\\n_2023_09_20_160000_170000.****.gz\\",\\n \\"LogPath\\": \\"****.aliyuncs.com/push_proxy/****/example.com/2023_09_20/1600/example.com\\\\n_2023_09_20_160000_170000.****.gz\\",\\n \\"LogSize\\": 512,\\n \\"StartTime\\": \\"1695193200\\"\\n }\\n ]\\n },\\n \\"PageInfos\\": {\\n \\"PageIndex\\": 1,\\n \\"PageSize\\": 20,\\n \\"Total\\": 20\\n }\\n }\\n ]\\n },\\n \\"DomainName\\": \\"example.com\\",\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n example.com\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n \\n 10\\n \\n 1695189600\\n 512\\n 1695193200\\n example.com\\n_2023_09_20_160000_170000.****.gz\\n ****.aliyuncs.com/push_proxy/****/example.com/2023_09_20/1600/example.com\\n_2023_09_20_160000_170000.****.gz\\n \\n \\n 1\\n 20\\n 20\\n \\n \\n","errorExample":""}]', - 'title' => '查询转推离线日志下载地址', - 'description' => '- 查询数据时间粒度:1小时。'."\n" - .'- 最大查询范围:最近31天的数据。'."\n" - .'- 如果不指定StartTime和EndTime,该接口默认读取过去24小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteLiveRealTimeLogLogstore' => [ - 'summary' => '调用DeleteLiveRealTimeLogLogstore删除实时日志推送的logstore。', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '修改直播互动应用回调信息', + 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-02-02T01:46:07.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageAppCallback'], + ], ], - 'security' => [ + 'ramActions' => [ [ - 'AK' => [], + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveMessageAppCallback', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1F0FFEAD-B7D5-1D4A-A6B9-8C63ADF6****\\",\\n \\"AppId\\": \\"demo\\",\\n \\"AppSign\\": \\"**************************************************************************\\",\\n \\"EventCallbackUrl\\": \\"http://example.aliyundoc.com/examplecallback\\",\\n \\"EventCallbackNeedAuthentication\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 1F0FFEAD-B7D5-1D4A-A6B9-8C63ADF6****\\n demo\\n **************************************************************************\\n http://example.aliyundoc.com/examplecallback\\n true\\n","errorExample":""}]', + ], + 'ModifyLiveMessageAppDisable' => [ + 'summary' => '修改App禁用。', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], ], ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Project', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '实时投递SLS的ProjectName。', - 'type' => 'string', - 'required' => true, - 'example' => 'project_example', - ], + 'schema' => ['description' => '需要修改信息的互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'Logstore', + 'name' => 'Disable', 'in' => 'query', - 'schema' => [ - 'description' => '实时投递SLS的LogStoreName。', - 'type' => 'string', - 'required' => true, - 'example' => 'logstore_example', - ], + 'schema' => ['description' => '是否禁用互动消息应用。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'Region', + 'name' => 'DataCenter', 'in' => 'query', - 'schema' => [ - 'description' => '实时投递SLS的Region。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9732E117-8A37-49FD-A36F-ABBB*******', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '6AA1AE11-EA78-1FD4-A966-6BA84307****'], + 'AppId' => ['description' => '需要修改信息的互动消息应用ID。', 'type' => 'string', 'example' => 'demo'], + 'AppSign' => ['description' => '互动消息应用签名,互动消息服务SDK需要该信息。', 'type' => 'string', 'example' => '********************'], + 'Disable' => ['description' => '该互动消息应用是否禁用。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], ], - 404 => [ - [ - 'errorCode' => 'LogstoreNotExist', - 'errorMessage' => 'Logstore does not exist', - ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB*******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', - 'title' => '删除实时日志推送的logstore', - 'description' => '- 您可调用本接口删除实时日志推送的logstore,无其他特殊使用说明,调用时请保证参数设置符合要求。'."\n" - ."\n" - .'- 您可调用[DescribeLiveDomainRealtimeLogDelivery](~~2848121~~)查询Project、Logstore、Region参数信息。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '## 特定错误码'."\n" - .'| HttpCode| 错误码 | 错误信息|描述 |'."\n" - .'|--------------------------|----------------------|---------------------|-----------|'."\n" - .'| 403| Unauthorized | RealtimeLogDelivery Service Not Authorized | 没有开启实时投递授权。 |'."\n" - .'| 404| LogstoreNotExist | Logstore does not exist | 未找到对应Logstore信息。 |', - ], - 'DescribeLiveDomainLog' => [ - 'summary' => '获取直播指定域名的原始访问日志的下载地址。', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '修改直播互动应用禁用信息', + 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageAppDisable'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveMessageAppDisable', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6AA1AE11-EA78-1FD4-A966-6BA84307****\\",\\n \\"AppId\\": \\"demo\\",\\n \\"AppSign\\": \\"********************\\",\\n \\"Disable\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 6AA1AE11-EA78-1FD4-A966-6BA84307****\\n demo\\n ********************\\n true\\n","errorExample":""}]', + ], + 'ModifyLiveMessageGroup' => [ + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '107021', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', - ], - ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'DomainName', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '播流域名或推流域名。'."\n" - .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。'."\n" - .'> - 只支持单个域名查询。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '群组ID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], [ - 'name' => 'PageSize', + 'name' => 'ModifyAdmin', 'in' => 'query', - 'schema' => [ - 'description' => '分页大小。取值:'."\n" - ."\n" - .'- **1~1000**之间的任意整数。'."\n" - .'- 默认值为**300**。'."\n" - .'- 最大值为**1000**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '20', - 'default' => '300', - ], + 'schema' => ['description' => '是否修改群组管理员。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'PageNumber', + 'name' => 'AdminList', 'in' => 'query', + 'style' => 'simple', 'schema' => [ - 'description' => '当前页码。'."\n" - .'>若不指定PageNumber查询,将默认返回第一页数据。', - 'type' => 'integer', - 'format' => 'int64', + 'description' => '修改后的管理员列表。多个用半角逗号(,)隔开,最多不超过3个。', + 'type' => 'array', + 'items' => ['description' => '管理员用户ID,由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'required' => false, 'example' => 'uid1'], 'required' => false, - 'example' => '1', - 'default' => '1', ], ], [ - 'name' => 'StartTime', + 'name' => 'ModifyInfo', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2016-10-20T04:00:00Z', - ], + 'schema' => ['description' => '是否修改群组扩展信息。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'EndTime', + 'name' => 'GroupInfo', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'结束时间需大于起始时间。起始时间和结束时间,间隔不超过31天。', - 'type' => 'string', - 'required' => false, - 'example' => '2016-10-20T05:00:00Z', - ], + 'schema' => ['description' => '修改后的群组扩展信息,长度不超过32KB。', 'type' => 'string', 'required' => false, 'example' => 'newmeta'], + ], + [ + 'name' => 'DataCenter', + 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => '播流域名或推流域名。'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'DomainLogDetails' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DomainLogDetail' => [ - 'description' => 'DomainLogDetail组成的数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'LogCount' => [ - 'description' => '本页返回的总条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'LogInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LogInfoDetail' => [ - 'description' => 'LogInfoDetail组成的数据。'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。'."\n", - 'type' => 'string', - 'example' => '2016-10-20T05:00:00Z', - ], - 'LogSize' => [ - 'description' => '日志大小。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'StartTime' => [ - 'description' => '起始时间。'."\n", - 'type' => 'string', - 'example' => '2016-10-20T04:00:00Z', - ], - 'LogName' => [ - 'description' => '日志名称。', - 'type' => 'string', - 'example' => 'developer.aliyundoc.com_2016_10_20_040000_050000.gz', - ], - 'LogPath' => [ - 'description' => '日志路径。'."\n", - 'type' => 'string', - 'example' => 'learn.aliyundoc.com/developer.aliyundoc.com/2016_10_20/example.aliyundoc.com_2016_10_20_040000_050000.gz?Expires=1522659931&OSSAccessKeyId=LTAI******eo4ZEuA&Signature=C01p%2BtA%******KP9Sru2Oxwy7Do0%3D', - ], - ], - ], - ], - ], - ], - 'PageInfos' => [ - 'description' => '页面信息。', - 'type' => 'object', - 'properties' => [ - 'PageIndex' => [ - 'description' => '返回数据的页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '分页大小。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'Total' => [ - 'description' => '总日志条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****'], ], ], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"DomainLogDetails\\": {\\n \\"DomainLogDetail\\": [\\n {\\n \\"LogCount\\": 10,\\n \\"LogInfos\\": {\\n \\"LogInfoDetail\\": [\\n {\\n \\"EndTime\\": \\"2016-10-20T05:00:00Z\\",\\n \\"LogSize\\": 10,\\n \\"StartTime\\": \\"2016-10-20T04:00:00Z\\",\\n \\"LogName\\": \\"developer.aliyundoc.com_2016_10_20_040000_050000.gz\\",\\n \\"LogPath\\": \\"learn.aliyundoc.com/developer.aliyundoc.com/2016_10_20/example.aliyundoc.com_2016_10_20_040000_050000.gz?Expires=1522659931&OSSAccessKeyId=LTAI******eo4ZEuA&Signature=C01p%2BtA%******KP9Sru2Oxwy7Do0%3D\\"\\n }\\n ]\\n },\\n \\"PageInfos\\": {\\n \\"PageIndex\\": 1,\\n \\"PageSize\\": 20,\\n \\"Total\\": 20\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\nexample.com\\n\\n \\n 10\\n \\n \\n 10\\n 2016-10-20T05:00:00Z\\n 2016-10-20T04:00:00Z\\n developer.aliyundoc.com_2016_10_20_040000_050000.gz\\n learn.aliyundoc.com/developer.aliyundoc.com/2016_10_20/example.aliyundoc.com_2016_10_20_040000_050000.gz?Expires=1522659931&OSSAccessKeyId=LTAI******eo4ZEuA&Signature=C01p%2BtA%******KP9Sru2Oxwy7Do0%3D\\n \\n \\n \\n 20\\n 20\\n 1\\n \\n \\n\\n","errorExample":""}]', - 'title' => '查询日志下载地址', - 'description' => '- 调用一次API仅支持查询单个域名的离线日志。'."\n" - .'- 可选参数StartTime和EndTime需要同时指定,指定起止时间后查询指定时间范围内的日志。'."\n" - .'- 不指定StartTime和EndTime时,默认读取过去24小时的日志数据。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '修改直播互动群组信息', + 'summary' => '调用ModifyLiveMessageGroup修改互动消息群组信息。', + 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateLiveStreamMonitor' => [ - 'summary' => '创建监播室。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageGroup'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', + ], + 'ModifyLiveMessageGroupBand' => [ + 'summary' => '修改用户禁言状态。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '106895', - 'abilityTreeNodes' => [ - 'FEATUREliveSM955S', - ], - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free'], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'MonitorName', - 'in' => 'query', - 'schema' => [ - 'description' => '监播名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveMonitor****', - ], - ], - [ - 'name' => 'OutputTemplate', - 'in' => 'query', - 'schema' => [ - 'description' => '监播输出模版。类型取值:'."\n" - ."\n" - .'- **lp_ld**:流畅。'."\n" - .'- **lp_sd**:标清。'."\n" - .'- **lp_hd**:高清。'."\n" - .'- **lp_ud**:超清。', - 'type' => 'string', - 'required' => true, - 'example' => 'lp_ud', - ], - ], - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '监播域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], - ], - [ - 'name' => 'App', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '监播输出流的App。'."\n" - .'名称可自取,不传默认用**monitor**作为AppName名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'monitor****', - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'Stream', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '监播输出流名,不传则系统随机生成。', - 'type' => 'string', - 'required' => false, - 'example' => 'monitorStream****', - ], + 'schema' => ['description' => '群组ID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], [ - 'name' => 'InputList', + 'name' => 'BannedAll', 'in' => 'query', - 'schema' => [ - 'description' => '监控流输入列表。具体内容,请参考下表**InputConfig**。', - 'type' => 'string', - 'required' => true, - 'example' => 'InputConfig', - ], + 'schema' => ['title' => '是否全员禁言', 'description' => '是否全员禁言。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'MonitorConfig', + 'name' => 'BannnedUsers', 'in' => 'query', + 'style' => 'simple', 'schema' => [ - 'description' => '监播告警阈值设置,JSON格式,具体内容,请参考下表MonitorConfig。', - 'type' => 'string', + 'title' => '被禁言的用户', + 'description' => '被禁言的用户列表。多个用半角逗号(,)隔开,最多不超过30个。', + 'type' => 'array', + 'items' => ['description' => '被禁言的用户。', 'type' => 'string', 'required' => false, 'example' => 'uid1'], 'required' => false, - 'example' => '"{\\"fpsLowThres\\": 0.6,\\"brLowThres\\": 1.1,\\"eofDurationThresSec\\": 10}"', ], ], [ - 'name' => 'CallbackUrl', + 'name' => 'ExceptUsers', 'in' => 'query', + 'style' => 'simple', 'schema' => [ - 'description' => '支持输入HTTP(S)格式的回调地址。', - 'type' => 'string', + 'title' => '不被禁言的用户', + 'description' => '当开启全员禁言时不被禁言的用户列表。多个用半角逗号(,)隔开,最多不超过30个。', + 'type' => 'array', + 'items' => ['description' => '当开启全员禁言时不被禁言的用户。', 'type' => 'string', 'required' => false, 'example' => 'uid3'], 'required' => false, - 'example' => 'http://guide.aliyundoc.com/notify', ], ], [ - 'name' => 'DingTalkWebHookUrl', + 'name' => 'DataCenter', 'in' => 'query', - 'schema' => [ - 'description' => '监播钉钉告警通过钉群机器人进行告警信息的通知,请先设置钉群机器人,并在此输入机器人的HTTP(S)地址。详情请参见[自定义机器人接入](https://open.dingtalk.com/document/robots/custom-robot-access)。'."\n" - ."\n" - .'> 配置钉群机器人自定义关键词为“告警”,否则消息无法接收。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****', - ], + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'MonitorId' => [ - 'description' => '监播室ID。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'StreamMonitorExist', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], ], - 404 => [ - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MonitorId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\n445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', - 'title' => '创建监播室', - 'description' => '调用本接口创建监播室,调用时请保证参数设置符合要求。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '修改用户禁言状态', + 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '**InputConfig**'."\n" - .'|名称|类型|描述|示例值|'."\n" - .'|----|----|------|-----|'."\n" - .'|Index|Integer|索引,前端使用。|1|'."\n" - .'|LayoutId|Integer|布局ID,必须从1开始。|1|'."\n" - .'|StreamName|String|监播流的显示名称。|monitorStream****|'."\n" - .'|InputUrl|String|输入流地址。|demo.aliyundoc.com|'."\n" - .'|LayoutConfig|LayoutConfig|布局信息。|参考下表**LayoutConfig**|'."\n" - .'|PlayConfig|PlayConfig|播放配置。|参考下表**PlayConfig**|'."\n" - ."\n" - .'**LayoutConfig**'."\n" - .'|名称|类型|描述|示例值|'."\n" - .'|----|----|------|-----|'."\n" - .'|FillMode|String|填充类型,前端填none即可。|none|'."\n" - .'|PositionRefer|String|设置元素的position参考坐标值,取值:topLeft(左上),topRight(右上),bottomLeft(左下),bottomRight(右下)。|topLeft|'."\n" - .'|PositionNormalized|Float|表示该Layer元素填充区位置归一化值[x,y]。
x和y的取值范围为0~1。
例如[0.1,0.1] 代表左上角水平偏移10%, 垂直偏移10%。|[0.1, 0.1]|'."\n" - .'|SizeNormalized|Float|表示该Layer元素需要填充的尺寸大小[w,h]。
w和h取值范围为0~1,宽高都是进行了归一化计算。
例如 [0.2,0.3]代表水平占比20%,垂直占比30%。|[0.2, 0.3]|'."\n" - ."\n" - .'**PlayConfig**'."\n" - .'|名称|类型|描述|示例值|'."\n" - .'|----|----|------|-----|'."\n" - .'|VolumeRate|Float|音量。取值0~1之间,精确小数点后2位。|0.50|'."\n" - ."\n" - .'**MonitorConfig**'."\n" - .'|名称|类型|描述|示例值|'."\n" - .'|----|----|------|-----|'."\n" - .'|fpsLowThres|Float|视频帧率告警阈值。此阈值为比例系数,取值范围(0.0,1.0],默认值0.7。当监播流的视频帧率<帧率告警阈值*直播流原始帧率,则会报警。|0.7|'."\n" - .'|brHighThres|Float|音视频码率告警阈值。此阈值为比例系数,取值范围(0.0,100],默认值1.0。当监播流的音视频码率>码率告警阈值*直播流原始码率,则会报警。|1.0|'."\n" - .'|eofDurationThresSec|Float|断流时长检测阈值,表示当前监播流断流超过多少时间(单位:秒)才会报警。取值范围(0,65535],默认值0。- 由于断流后连接不断,系统会有内部收包超时时间(5秒)来判断断流。因此如果设置此参数时间<=5s,实际检测时间仍为5s;如果设置该项时间>5s,实际检测时间为设置值,只是前5s为内部收包超时,剩余时间为持续等待流没有恢复时间。 - 如果断流后没达到此超时时间流自动恢复,则不会报警。如果断流未超时,此时修改了监播地址,对前流也不会继续检测超时和报警。|10|'."\n", - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdateLiveStreamMonitor' => [ - 'summary' => '更新监播室配置。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageGroupBand'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveMessageGroupBand', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', + ], + 'ModifyLiveMessageUserInfo' => [ + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '107285', - 'abilityTreeNodes' => [ - 'FEATUREliveSM955S', - ], + 'abilityTreeCode' => '198649', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '需要修改用户信息的互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'MonitorId', + 'name' => 'UserId', 'in' => 'query', - 'schema' => [ - 'description' => '监播室ID。'."\n" - .'>通过查看[CreateLiveStreamMonitor](~~2848129~~)接口的返回参数获取MonitorId值。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['description' => '需要修改的用户ID。', 'type' => 'string', 'required' => true, 'example' => 'uid2'], ], [ - 'name' => 'MonitorName', + 'name' => 'UserMetaInfo', 'in' => 'query', - 'schema' => [ - 'description' => '监播室名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveMonitor****', - ], + 'schema' => ['description' => '修改后的用户扩展信息,长度不超过512字节。', 'type' => 'string', 'required' => false, 'example' => 'uid2meta2'], ], [ - 'name' => 'Domain', + 'name' => 'DataCenter', 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '监播输出域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'demo.aliyundoc.com', + 'title' => 'Schema of Response', + 'description' => '返回参数。如果修改用户信息成功,或用户不存在,则接口返回成功。', + 'type' => 'object', + 'properties' => [ + 'FailList' => [ + 'description' => '对象数组。', + 'type' => 'array', + 'items' => [ + 'description' => '对象数组。', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '错误码。', 'type' => 'integer', 'format' => 'int32', 'example' => '440'], + 'GroupId' => ['description' => '用户所在的群组ID。若修改失败,则在查询群组用户列表时用户信息不会同步更新。可根据失败原因检查后重新尝试。', 'type' => 'string', 'example' => 'grouptest2'], + 'Reason' => ['description' => '群组修改失败的原因。', 'type' => 'string', 'example' => 'group not exists or already deleted'], + 'Success' => ['description' => '群组修改失败。', 'type' => 'boolean', 'example' => 'false'], + ], + ], + ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '3271ACD2-F143-1204-AFDB-9A87C131****'], + 'SuccessList' => [ + 'description' => '对象数组。', + 'type' => 'array', + 'items' => [ + 'description' => '对象数组。', + 'type' => 'object', + 'properties' => [ + 'GroupId' => ['description' => '用户所在的群组ID。若修改成功,则在查询群组用户列表时用户信息会同步更新。', 'type' => 'string', 'example' => 'grouptest1'], + 'Success' => ['description' => '群组修改成功。', 'type' => 'boolean', 'example' => 'true'], + ], + ], + ], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], [ - 'name' => 'App', - 'in' => 'query', - 'schema' => [ - 'description' => '监播输出流的App。'."\n" - .'名称可自取,不传默认用**monitor**作为AppName名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'monitor****', - ], + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '修改用户信息', + 'summary' => '修改用户信息。', + 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-05-10T02:46:38.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageUserInfo'], ], + ], + 'ramActions' => [ [ - 'name' => 'Stream', - 'in' => 'query', - 'schema' => [ - 'description' => '监播输出流名。', - 'type' => 'string', - 'required' => false, - 'example' => 'monitorStream****', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveMessageUserInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"FailList\\": [\\n {\\n \\"Code\\": 440,\\n \\"GroupId\\": \\"grouptest2\\",\\n \\"Reason\\": \\"group not exists or already deleted\\",\\n \\"Success\\": false\\n }\\n ],\\n \\"RequestId\\": \\"3271ACD2-F143-1204-AFDB-9A87C131****\\",\\n \\"SuccessList\\": [\\n {\\n \\"GroupId\\": \\"grouptest1\\",\\n \\"Success\\": true\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 3271ACD2-F143-1204-AFDB-9A87C131****\\n \\n grouptest1\\n true\\n \\n \\n grouptest2\\n false\\n group not exists or already deleted\\n 440\\n \\n","errorExample":""}]', + ], + 'ModifyLiveRealtimeLogDelivery' => [ + 'summary' => '调用ModifyLiveRealtimeLogDelivery更改域名实时日志投递。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'OutputTemplate', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElive066BXV'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '监播输出模版。类型取值:'."\n" - ."\n" - .'- **lp_ld**:流畅。'."\n" - .'- **lp_sd**:标清。'."\n" - .'- **lp_hd**:高清。'."\n" - .'- **lp_ud**:超清。', - 'type' => 'string', - 'required' => false, - 'example' => 'lp_ud', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'InputList', + 'name' => 'Project', 'in' => 'query', - 'schema' => [ - 'description' => '监控流输入列表。具体内容,请参考下表**InputConfig**。', - 'type' => 'string', - 'required' => true, - 'example' => 'InputConfig', - ], + 'schema' => ['description' => '实时投递SLS的ProjectName。', 'type' => 'string', 'required' => true, 'example' => 'project_example'], ], [ - 'name' => 'MonitorConfig', + 'name' => 'Logstore', 'in' => 'query', - 'schema' => [ - 'description' => '监播告警阈值设置,JSON格式,具体内容,请参考下表MonitorConfig。', - 'type' => 'string', - 'required' => false, - 'example' => '"{\\"fpsLowThres\\": 0.6,\\"brLowThres\\": 1.1,\\"eofDurationThresSec\\": 10}"', - ], + 'schema' => ['description' => '实时投递日志服务(SLS)的LogStoreName。', 'type' => 'string', 'required' => true, 'example' => 'logstore_example'], ], [ - 'name' => 'CallbackUrl', + 'name' => 'Region', 'in' => 'query', - 'schema' => [ - 'description' => '支持输入HTTP(S)格式的回调地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://guide.aliyundoc.com/notify', - ], + 'schema' => ['description' => '实时投递SLS的Region。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'DingTalkWebHookUrl', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '监播钉钉告警通过钉群机器人进行告警信息的通知,请先设置钉群机器人,并在此输入机器人的HTTP(S)地址。详情请参见[自定义机器人接入](https://open.dingtalk.com/document/robots/custom-robot-access)。'."\n" - ."\n" - .'> 配置钉群机器人自定义关键词为“告警”,否则消息无法接收。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****', - ], + 'schema' => ['description' => '修改实时日志投递的主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -52166,192 +41480,121 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidMonitorId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery Service Not Authorized', 'description' => ''], ], 404 => [ - [ - 'errorCode' => 'InvalidDomainName.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'StreamMonitorNotExist', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'Domain.NotFound', 'errorMessage' => 'Domain not found', 'description' => ''], + ['errorCode' => 'LogstoreNotExist', 'errorMessage' => 'Logstore does not exist', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', - 'title' => '更新监播室', - 'description' => '此接口针对监播室配置进行更新,监播室在启动状态下对输入源配置更新可实时生效。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '**InputConfig**'."\n" - .'|名称|类型|描述|示例值|'."\n" - .'|----|----|------|-----|'."\n" - .'|Index|Integer|索引,前端使用。|1|'."\n" - .'|LayoutId|Integer|布局ID,必须从1开始。|1|'."\n" - .'|StreamName|String|监播流的显示名称。|monitorStream****|'."\n" - .'|InputUrl|String|输入流地址。|demo.aliyundoc.com|'."\n" - .'|LayoutConfig|LayoutConfig|布局信息。|参考下表**LayoutConfig**|'."\n" - .'|PlayConfig|PlayConfig|播放配置。|参考下表**PlayConfig**|'."\n" - ."\n" - .'**LayoutConfig**'."\n" - .'|名称|类型|描述|示例值|'."\n" - .'|----|----|------|-----|'."\n" - .'|FillMode|String|填充类型,前端填none即可。|none|'."\n" - .'|PositionRefer|String|设置元素的position参考坐标值,取值:TopLeft(左上),TopRight(右上),BottomLeft(左下),BottomRight(右下)。|TopLeft|'."\n" - .'|PositionNormalized|Float|表示该Layer元素填充区位置归一化值[x,y]。
x和y的取值范围为0~1。
例如[0.1,0.1] 代表左上角水平偏移10%, 垂直偏移10%。|[0.1, 0.1]|'."\n" - .'|SizeNormalized|Float|表示该Layer元素需要填充的尺寸大小[w,h]。
w和h取值范围为0~1,宽高都是进行了归一化计算。
例如 [0.2,0.3]代表水平占比20%,垂直占比30%。|[0.2, 0.3]|'."\n" + 'title' => '更改域名实时日志投递', + 'description' => '- 调用本接口更改域名实时日志投递。一个域名同时仅支持投递单个logstore。'."\n" + .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder.console.aliyun.com/console.htm#/ticket/add?productCode=live&commonQuestionId=4545&isSmart=true&iatraceid=1608439120675-2a5c48de0b84805313c708&channel=selfservice)配置。'."\n" + .'目前仅支持配置播流域名,如需推送上行实时日志(即配置推流域名),请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.12818093.nav-right.dticket.6cb216d07otFWR#/ticket/createIndex)配置。'."\n" ."\n" - .'**PlayConfig**'."\n" - .'|名称|类型|描述|示例值|'."\n" - .'|----|----|------|-----|'."\n" - .'|VolumeRate|Float|音量。取值0~1之间,精确小数点后2位。|0.50|'."\n" + .'- 您可调用[DescribeLiveDomainRealtimeLogDelivery](~~2848121~~)查询Project、Logstore、Region参数信息。'."\n" ."\n" - .'**MonitorConfig**'."\n" - .'|名称|类型|描述|示例值|'."\n" - .'|----|----|------|-----|'."\n" - .'|fpsLowThres|Float|视频帧率告警阈值。此阈值为比例系数,取值范围(0.0,1.0],默认值0.7。当监播流的视频帧率<帧率告警阈值*直播流原始帧率,则会报警。|0.7|'."\n" - .'|brHighThres|Float|音视频码率告警阈值。此阈值为比例系数,取值范围(0.0,100],默认值1.0。当监播流的音视频码率>码率告警阈值*直播流原始码率,则会报警。|1.0|'."\n" - .'|eofDurationThresSec|Float|断流时长检测阈值,表示当前监播流断流超过多少时间(单位:秒)才会报警。取值范围(0,65535],默认值0。 - 由于断流后连接不断,系统会有内部收包超时时间(5秒)来判断断流。因此如果设置此参数时间<=5s,实际检测时间仍为5s;如果设置该项时间>5s,实际检测时间为设置值,只是前5s为内部收包超时,剩余时间为持续等待流没有恢复时间。 - 如果断流后没达到此超时时间流自动恢复,则不会报警。如果断流未超时,此时修改了监播地址,对前流也不会继续检测超时和报警。|10|', + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveStreamMonitorList' => [ - 'summary' => '查询已创建的监播室列表。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 特定错误码'."\n" + ."\n" + .'|HttpCode | 错误码 |描述 |'."\n" + .'|--------------------------|-------------------------------------------|-----------|'."\n" + .'| 403 | LogstoreNotExist | 未找到对应Logstore 信息。 |'."\n" + .'| 404 | Domain.NotFound | 域名未开通实时日志投递服务。 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9732E117-8A37-49FD-A36F-ABBB87556CA7\\n","errorExample":""}]', + ], + 'ModifyShowList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveSM955S', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'MonitorId', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '监播室ID。'."\n" - .'>通过查看[CreateLiveStreamMonitor](~~2848129~~)接口的返回参数获取MonitorId值。若参数为空,默认返回所有监播室合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], [ - 'name' => 'PageNum', + 'name' => 'ShowId', 'in' => 'query', - 'schema' => [ - 'description' => '当前页数值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['description' => '需要被修改顺序的节目ID。'."\n" + .'>通过查看[AddShowIntoShowList](~~2848051~~)或[DescribeShowList](~~2848054~~)接口的返回参数获取ShowId值。', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], [ - 'name' => 'PageSize', + 'name' => 'RepeatTimes', 'in' => 'query', - 'schema' => [ - 'description' => '每页监播室数值个数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => '节目单整体播放的循环次数。'."\n" + ."\n" + .'> - RepeatTimes为重复次数,示例:**0**表示重复**0**次(实际播放**1**次),**1**表示重复**1**次(实际播放**2**次),以此类推。'."\n" + .'> - 另外,取值为**-1**时,表示可无限重复。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5'], ], [ - 'name' => 'Status', + 'name' => 'Spot', 'in' => 'query', - 'schema' => [ - 'description' => '监播室内状态。取值:'."\n" - ."\n" - .'- 1:监播中。'."\n" - .'- 0:未监播。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '播放列表的位置。将需要被修改顺序的节目ID放到**Spot**的位置。'."\n" + .'>取值需大于等于0且小于等于当前节目单总数值。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'OrderRule', + 'name' => 'HighPriorityShowId', 'in' => 'query', - 'schema' => [ - 'description' => '启动时间顺序。取值:'."\n" - ."\n" - .'- 0:默认(按启动状态倒序,启动时间不参与排序)。'."\n" - .'- 1:启动时间倒序。'."\n" - .'- 2:启动时间正序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '最高优先级节目。'."\n" + ."\n" + .'> 此配置只能在节目单未开始启动前设置。', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + ], + [ + 'name' => 'HighPriorityShowStartTime', + 'in' => 'query', + 'schema' => ['description' => '最高优先级节目播放时间,格式为:yyyy-MM-dd\'T\'HH:mm:ss。'."\n" + .'> 此配置只能在节目单未开始启动前设置。
配置完成,节目单会在最高优先级播放时间进行切播,开始播放最高优先级节目(从当前正在播放的节目切播到最高级优先节目)。', 'type' => 'string', 'required' => false, 'example' => '2021-11-23T12:30:00'], ], ], 'responses' => [ @@ -52359,248 +41602,113 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Total' => [ - 'description' => '数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '2234baba-a586-46ea-8bd4-c8f7891abcdef', - ], - 'LiveStreamMonitorList' => [ - 'description' => '监播室列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'MonitorConfig' => [ - 'description' => '监播告警阈值设置。参数字段如下:'."\n" - .'- fpsLowThres:视频帧率告警阈值,Float类型。'."\n" - .'- brHighThres:音视频码率告警阈值,Float类型。'."\n" - .'- eofDurationThresSec:断流时长检测阈值,Float类型。', - 'type' => 'string', - 'example' => '"{\\"fpsLowThres\\": 0.6,\\"brLowThres\\": 1.1,\\"eofDurationThresSec\\": 10}"', - ], - 'Status' => [ - 'description' => '监播室内状态。取值:'."\n" - ."\n" - .'- 1:监播中。'."\n" - .'- 0:未监播。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'MonitorId' => [ - 'description' => '监播室ID。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - 'Domain' => [ - 'description' => '监播输出域名。', - 'type' => 'string', - 'example' => 'demo.aliyundoc.com', - ], - 'CallbackUrl' => [ - 'description' => '监播告警通知回调地址。', - 'type' => 'string', - 'example' => 'http://guide.aliyundoc.com/notify', - ], - 'AudioFrom' => [ - 'description' => '布局声音来源。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'DingTalkWebHookUrl' => [ - 'description' => '钉群机器人URL。', - 'type' => 'string', - 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****', - ], - 'MonitorName' => [ - 'description' => '监播室名称。', - 'type' => 'string', - 'example' => 'liveMonito****', - ], - 'StopTime' => [ - 'description' => '停止监播时间,UTC格式。', - 'type' => 'string', - 'example' => '2017-01-11T12:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始监播时间,UTC格式。', - 'type' => 'string', - 'example' => '2017-01-11T12:00:00Z', - ], - 'OutputTemplate' => [ - 'description' => '监播输出分辨率模板。类型取值:'."\n" - ."\n" - .'- **lp_ld**:流畅。'."\n" - .'- **lp_sd**:标清。'."\n" - .'- **lp_hd**:高清。'."\n" - .'- **lp_ud**:超清。', - 'type' => 'string', - 'example' => 'lp_ud', - ], - 'Region' => [ - 'description' => '地区。取值:'."\n" - ."\n" - .'- cn-shanghai:上海。'."\n" - .'- cn-beijing:北京。'."\n" - .'- ap-southeast-1:新加坡。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'InputList' => [ - 'description' => '监控流输入列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Index' => [ - 'description' => '索引,前端使用。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'InputUrl' => [ - 'description' => '输入流地址。', - 'type' => 'string', - 'example' => 'demo.aliyundoc.com', - ], - 'LayoutId' => [ - 'description' => '布局ID,必须从1开始。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'StreamName' => [ - 'description' => '监播流的显示名称。', - 'type' => 'string', - 'example' => 'monitorStream****', - ], - 'LayoutConfig' => [ - 'description' => '布局信息。', - 'type' => 'object', - 'properties' => [ - 'FillMode' => [ - 'description' => '填充类型,前端填none即可。', - 'type' => 'string', - 'example' => 'none', - ], - 'PositionRefer' => [ - 'description' => '设置元素的position参考坐标值,取值:'."\n" - ."\n" - .'- topLeft'."\n" - .'- topRight'."\n" - .'- bottomLeft'."\n" - .'- bottomRight'."\n" - ."\n", - 'type' => 'string', - 'example' => 'topLeft', - ], - 'PositionNormalized' => [ - 'description' => '位置归一化值[unk][x,y][unk],默认为[unk][0,0][unk]。>x,y需要进行归一化计算。', - 'type' => 'array', - 'items' => [ - 'description' => '表示该Layer元素填充区位置\\[x,y],x和y归一化百分比。
例如\\[0.1,0.1]代表左上角水平偏移10%, 垂直偏移10%。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.1', - ], - ], - 'SizeNormalized' => [ - 'description' => '字幕文件大小,单位为字节。', - 'type' => 'array', - 'items' => [ - 'description' => 'Layer元素需要填充的尺寸大小\\[w,h],w和h归一化百分比。
例如\\[0.2,0.3]代表水平占比20%,垂直占比30%。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.3', - ], - ], - ], - ], - 'PlayConfig' => [ - 'description' => '播放配置。', - 'type' => 'object', - 'properties' => [ - 'VolumeRate' => [ - 'description' => '音量。取值0~1之间,精确小数点后2位。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.50', - ], - ], - ], - ], - ], - ], - 'OutputUrls' => [ - 'description' => '监播输出地址。', - 'type' => 'object', - 'properties' => [ - 'FlvUrl' => [ - 'description' => 'FLV输出地址。', - 'type' => 'string', - 'example' => 'http://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****.flv', - ], - 'RtmpUrl' => [ - 'description' => 'RTMP输出地址。', - 'type' => 'string', - 'example' => 'rtmp://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidVodUrl.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数VodUrl无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态有误,请检查后重试。'], ], [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Total\\": 1,\\n \\"RequestId\\": \\"2234baba-a586-46ea-8bd4-c8f7891abcdef\\",\\n \\"LiveStreamMonitorList\\": [\\n {\\n \\"MonitorConfig\\": \\"\\\\\\"{\\\\\\\\\\\\\\"fpsLowThres\\\\\\\\\\\\\\": 0.6,\\\\\\\\\\\\\\"brLowThres\\\\\\\\\\\\\\": 1.1,\\\\\\\\\\\\\\"eofDurationThresSec\\\\\\\\\\\\\\": 10}\\\\\\"\\",\\n \\"Status\\": 1,\\n \\"MonitorId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"Domain\\": \\"demo.aliyundoc.com\\",\\n \\"CallbackUrl\\": \\"http://guide.aliyundoc.com/notify\\",\\n \\"AudioFrom\\": 1,\\n \\"DingTalkWebHookUrl\\": \\"https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****\\",\\n \\"MonitorName\\": \\"liveMonito****\\",\\n \\"StopTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"StartTime\\": \\"2017-01-11T12:00:00Z\\",\\n \\"OutputTemplate\\": \\"lp_ud\\",\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"InputList\\": [\\n {\\n \\"Index\\": 1,\\n \\"InputUrl\\": \\"demo.aliyundoc.com\\",\\n \\"LayoutId\\": 1,\\n \\"StreamName\\": \\"monitorStream****\\",\\n \\"LayoutConfig\\": {\\n \\"FillMode\\": \\"none\\",\\n \\"PositionRefer\\": \\"topLeft\\",\\n \\"PositionNormalized\\": [\\n 0.1\\n ],\\n \\"SizeNormalized\\": [\\n 0.3\\n ]\\n },\\n \\"PlayConfig\\": {\\n \\"VolumeRate\\": 0.5\\n }\\n }\\n ],\\n \\"OutputUrls\\": {\\n \\"FlvUrl\\": \\"http://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****.flv\\",\\n \\"RtmpUrl\\": \\"rtmp://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****\\"\\n }\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n2234baba-a586-46ea-8bd4-c8f7891abcdef\\n1\\n\\n 1\\n 1\\n lp_ud\\n 2017-01-11T12:00:00Z\\n liveMonito****\\n cn-shanghai\\n demo.aliyundoc.com\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 2017-01-11T12:00:00Z\\n \\n monitorStream****\\n 1\\n 1\\n demo.aliyundoc.com\\n \\n none\\n topLeft\\n 0.1\\n 0.3\\n \\n \\n 0.50\\n \\n \\n \\n http://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****.flv\\n rtmp://demo.aliyundoc.com/monitor/445409ec-7eaa-461d-8f29-4bec2eb9****\\n \\n\\n","errorExample":""}]', - 'title' => '查询监播室列表', - 'description' => '先[创建监播室](~~2848129~~)后再调用本接口查询监播室列表,调用时请保证参数设置符合要求。'."\n" + 'title' => '修改播单属性', + 'summary' => '修改播单属性。', + 'description' => '此接口支持修改单个节目在播单中的位置、播单的整体播放次数以及最高优先级节目的播放固定时间点。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'StartLiveStreamMonitor' => [ - 'summary' => '开启监播。', - 'methods' => [ - 'post', - 'get', + 'extraInfo' => '## 代码示例'."\n" + ."\n" + .'```'."\n" + .' public static DefaultAcsClient initClient(String accessKeyId, String accessKeySecret) throws ClientException {'."\n" + .' String regionId = "cn-shanghai"; '."\n" + .' DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);'."\n" + .' DefaultAcsClient client = new DefaultAcsClient(profile);'."\n" + .' return client;'."\n" + .' }'."\n" + ."\n\n" + .'private static CommonResponse ModfiyShowList(DefaultAcsClient client, String casterId, String showId, Integer repeatTimes, Integer spot,'."\n" + .' String highPriorityShowId, String highPriorityShowStartTime) throws ClientException {'."\n" + ."\n" + .' CommonRequest modfiyShowListRequest = new CommonRequest();'."\n" + .' modfiyShowListRequest.setSysDomain("live.aliyuncs.com");'."\n" + .' modfiyShowListRequest.setSysVersion("2016-11-01");'."\n" + .' modfiyShowListRequest.setSysAction("ModifyShowList");'."\n" + .' if (casterId != null) {'."\n" + .' modfiyShowListRequest.putQueryParameter("CasterId", casterId);'."\n" + .' }'."\n" + .' if (showId != null) {'."\n" + .' modfiyShowListRequest.putQueryParameter("ShowId", showId);'."\n" + .' }'."\n" + .' if (repeatTimes != null) {'."\n" + .' modfiyShowListRequest.putQueryParameter("RepeatTimes", repeatTimes.toString());'."\n" + .' }'."\n" + .' if (spot != null) {'."\n" + .' modfiyShowListRequest.putQueryParameter("Spot", spot.toString());'."\n" + .' }'."\n" + .' if (highPriorityShowId != null) {'."\n" + .' modfiyShowListRequest.putQueryParameter("HighPriorityShowId", highPriorityShowId.toString());'."\n" + .' }'."\n" + .' if (highPriorityShowStartTime != null) {'."\n" + .' modfiyShowListRequest.putQueryParameter("HighPriorityShowStartTime", highPriorityShowStartTime.toString());'."\n" + .' }'."\n" + .' CommonResponse modfiyShowListResponse = client.getCommonResponse(modfiyShowListRequest);'."\n" + .' System.out.println("修改showList成功,返回值:" + JSON.toJSONString(modfiyShowListResponse));'."\n" + .' return modfiyShowListResponse;'."\n" + ."\n" + .' }'."\n" + ."\n" + .'public void modifyShowList() throws ClientException {'."\n" + .' DefaultAcsClient client = initClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET);'."\n" + .' String showId= "";'."\n" + .' Integer repeatTimes=10;'."\n" + .' String highPriorityShowId="";'."\n" + .' String highPriorityShowStartTime = "2021-11-23T12:30:00";'."\n" + .' modfiyShowList(client,testCasterId, showId,repeatTimes,0,highPriorityShowId, highPriorityShowStartTime);'."\n" + .' }'."\n" + .'```', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyShowList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":" \\r\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\r\\n ","errorExample":""}]', + ], + 'ModifyStudioLayout' => [ + 'summary' => '修改虚拟演播厅布局。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -52610,145 +41718,74 @@ 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeNodes' => [ - 'FEATUREliveSM955S', - ], + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'MonitorId', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '监播室ID。'."\n" - .'>通过查看[CreateLiveStreamMonitor](~~2848129~~)接口的返回参数获取MonitorId值。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidMonitorId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'StreamMonitorAlreadyStarted', - 'errorMessage' => '%s, please check and try again later.', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'>需要提前创建好,必须是虚拟演播厅类型的导播台。'."\n" + .'>'."\n" + ."\n\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'UserQuotaExceed', - 'errorMessage' => 'Quota exceeded: %s.', - ], + 'name' => 'LayoutId', + 'in' => 'query', + 'schema' => ['description' => '布局ID。如果您通过[AddStudioLayout接口](~~2848062~~)添加虚拟演播厅的布局设置,请查看AddStudioLayout接口调用返回的参数LayoutId值。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], [ - [ - 'errorCode' => 'StreamMonitorNotExist', - 'errorMessage' => '%s, please check and try again later.', - ], + 'name' => 'LayoutName', + 'in' => 'query', + 'schema' => ['description' => '演播厅布局名称。', 'type' => 'string', 'required' => false, 'example' => 'Test layout'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + [ + 'name' => 'CommonConfig', + 'in' => 'query', + 'schema' => ['description' => '通用布局配置。格式为JSON字符串,请参见**CommonConfig**。'."\n" + .'>当LayoutType取值为common时,本参数才必填。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => '{ "ChannelId":"RV01" }'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', - 'title' => '开启监播', - 'description' => '先通过[CreateLiveStreamMonitor](~~2848129~~)创建监播室,由接口返回参数获取**MonitorId**后开启监播。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'StopLiveStreamMonitor' => [ - 'summary' => '停止监播。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'BgImageConfig', + 'in' => 'query', + 'schema' => ['description' => '背景资源配置。格式为JSON字符串,请参见**BgImageConfig**。'."\n" + ."\n" + .'>当LayoutType取值为studio时,本参数才必填。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => '{ "Id":"k12kj31****", "MaterialId":"f080575eb5f4427684fc0715159a****" }'], ], - ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveSM955S', + [ + 'name' => 'ScreenInputConfigList', + 'in' => 'query', + 'schema' => ['description' => '抠像输入设置。格式为JSON字符串,请参见**ScreenInputConfig**。'."\n" + ."\n" + .'>当LayoutType取值为studio时,本参数才必填。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => '[ { "Index":"1", "ChannelId":"RV01", "Color":"green", "PositionX":"0.1", "PositionY":"0.2", "HeightNormalized":"0.4" } ]'], ], - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'MediaInputConfigList', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '多媒体输入资源设置。格式为JSON字符串,请参见**MediaInputConfig**。'."\n" + ."\n" + .'>当LayoutType取值为studio时,本参数才有效,且为选填。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => '[ { "Id":"k12kj31****", "Index":"1", "ChannelId":"RV01", "FillMode":"none", "PositionRefer":"topLeft", "WidthNormalized":"0.4", "HeightNormalized":"0.4", "PositionNormalized":"[0.1, 0.2]" }, { "Id":"k12kj31****", "Index":"2", "ImageMaterialId":"lkajsdfsa8fd89asd8****", "FillMode":"none", "PositionRefer":"topLeft", "WidthNormalized":"0.6", "HeightNormalized":"0.4", "PositionNormalized":"[0.1, 0.2]" } ]'], ], [ - 'name' => 'MonitorId', + 'name' => 'LayerOrderConfigList', 'in' => 'query', - 'schema' => [ - 'description' => '监播室ID。'."\n" - .'>可查看[CreateLiveStreamMonitor](~~2848129~~)接口返回参数值获取**MonitorId**。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['description' => '图层顺序设置。格式为JSON字符串,请参见**layerOrderConfig**。'."\n" + .'支持背景素材、多媒体素材排序,暂不支持抠像层。越排在前面,越在底层。', 'type' => 'string', 'required' => false, 'example' => '[ { "Type":"media", "Id":"k12kj31****" }, { "Type":"media", "Id":"k12kj31****" } ]'], ], ], 'responses' => [ @@ -52756,185 +41793,108 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidMonitorId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'StreamMonitorAlreadyStop', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidPositionNormalized.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PositionNormalized无效,请检查后重试。'], + ['errorCode' => 'InvalidHeightOrWidthNormalized', 'errorMessage' => '%s, please check and try again later.', 'description' => 'HeightNormalized或者WidthNormalized参数无效,请检查后重试。'], ], [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], - 403 => [ - [ - 'errorCode' => 'UserQuotaExceed', - 'errorMessage' => 'Quota exceeded: %s.', - ], - ], - [ - [ - 'errorCode' => 'StreamMonitorNotExist', - 'errorMessage' => '%s, please check and try again later.', - ], + 404 => [ + ['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId不存在,请检查后重试。'], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', - 'title' => '停止监播', - 'description' => '由创建监播室[CreateLiveStreamMonitor](~~2848129~~)接口返回参数获取**MonitorId**后开启监播,再调用本接口停止监播。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + 'title' => '修改虚拟演播厅布局', + 'description' => '调用本接口修改虚拟演播厅布局。修改布局设置时,仅需传入要修改的参数。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', + 'requestParamsDescription' => '## CommonConfig'."\n" + .'| 名称 | 类型 | 示例 | 描述 |'."\n" + .'| --------------- | ------ | --------------------- | -------------------------- |'."\n" + .'| ChannelId | String | RV01 | 视频资源绑定的通道位置ID。 |'."\n" + ."\n" + .'## BgImageConfig'."\n" + .'> 其中ImageUrl和MaterialId仅能输入一个。'."\n" + .'| 名称 | 类型 | 示例 | 描述 |'."\n" + .'| --------------- | ------ | --------------------- | -------------------------- |'."\n" + .'| Id | String | k12kj31**** | 该背景素材唯一ID。 |'."\n" + .'| ImageUrl | String | http://aliyundoc.com | 素材地址URL。 |'."\n" + .'| MaterialId | String | f080575eb5f4427684fc0715159a**** | 点播素材ID。 |'."\n" + ."\n" + .'## ScreenInputConfig'."\n" + .'| 名称 | 类型 | 示例 | 描述 |'."\n" + .'| ---------------- | ------- | ------------------------------------ | ------------------------------------------------------------ |'."\n" + .'| Index | Integer | 1 | 抠像源编号。前端展示使用,无逻辑作用,要求取正整数(>0)。 |'."\n" + .'| ChannelId | String | RV01 | 视频资源绑定的通道位置ID。 |'."\n" + .'| Color | String | green | 抠像色域。取值:
**blue**:蓝幕背景。
**green**:绿幕背景。
**auto**:自动识别。
**complex**:实景抠像。 |'."\n" + .'| PositionX | Float | 0.1 | 位置参数,坐标x。取值:[0,1]。
素材位置以左上角为基准点。 |'."\n" + .'| PositionY | Float | 0.2 | 位置参数,坐标y。取值:[0,1]。
素材位置以左上角为基准点。 |'."\n" + .'| HeightNormalized | Float | 0.4 | 高度归一化值。即抠出的人像与背景的高度比。取值:[0,1]。 |'."\n" + ."\n" + .'## MediaInputConfig'."\n" + .'- 当多媒体素材是视频源,ChannelId。'."\n" + .'- 当多媒体素材是图片,传入ImageMeterialId。'."\n" + .'- ChannelId和ImageMeterialId是互斥的,两者选填一项。'."\n" + ."\n" + .'| 名称 | 类型 | 示例 | 描述 |'."\n" + .'| ------------------ | ------- | ------------------------------------ | ------------------------------------------------------------ |'."\n" + .'| Id | String | k12kj31**** | 该多媒体素材唯一ID。 |'."\n" + .'| Index | Integer | 1 | 多媒体素材编号。前端展示使用,无逻辑作用,要求取正整数(>0)。 |'."\n" + .'| ChannelId | String | RV01 | 视频资源绑定的通道位置ID。 |'."\n" + .'| ImageMaterialId | String | lkajsdfsa8fd89asd8**** | 点播图片素材ID。 |'."\n" + .'| FillMode | String | none | 填充类型。填**none**即可。 |'."\n" + .'| PositionRefer | String | topLeft | 素材的位置参考坐标值。填**topLeft**即可,表示位置设置以左上角为基准点。 |'."\n" + .'| WidthNormalized | Float | 0.4 | 素材的宽度归一化值。即素材与背景的宽度比。取值:[0,1]。 |'."\n" + .'| HeightNormalized | Float | 0.4 | 素材的高度归一化值。即素材与背景的高度比。取值:[0,1]。 |'."\n" + .'| PositionNormalized | Float | [0.1, 0.2] | 素材的填充区位置归一化值[x,y]。x、y的取值范围分别为[0,1]。
例如[0.1,0.2] 代表左上角水平偏移10%,垂直偏移20%。 |'."\n" + ."\n" + .'## layerOrderConfig'."\n" + .'| 名称 | 类型 | 示例 | 描述 |'."\n" + .'| ---- | ------ | ----------- | ------------------------------------------------------------ |'."\n" + .'| Id | String | k12kj31**** | 该资源的唯一ID。 |'."\n" + .'| Type | String | media | 资源配置的类型。
background:背景素材。
media:多媒体素材。 |', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteLiveStreamMonitor' => [ - 'summary' => '删除监播室。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveSM955S', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyStudioLayout'], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], + 'ramActions' => [ [ - 'name' => 'MonitorId', - 'in' => 'query', - 'schema' => [ - 'description' => '监播室ID。'."\n" - .'>可查看[CreateLiveStreamMonitor](~~2848129~~)接口返回参数值获取**MonitorId**。', - 'type' => 'string', - 'required' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3', - ], + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyStudioLayout', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidMonitorId.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'StreamMonitorNotExist', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', - 'title' => '删除监播室', - 'description' => '通过创建监播室[CreateLiveStreamMonitor](~~2848129~~)接口返回参数获取**MonitorId**,再调用本接口删除监播室。'."\n" - .'>启动状态下的监播室不可以删除,删除时返回400报错。'."\n" - .'>'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'GetMessageToken' => [ - 'summary' => '调用GetMessageToken获取长连接建连Token,客户端可以用此Token通过LWP协议和各个原子能力进行长连接通信。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'MuteAllGroupUser' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -52942,66 +41902,33 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'AppId', 'in' => 'formData', - 'schema' => [ - 'title' => '应用ID', - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a494caec-***-695ef345db77', - ], + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], [ - 'name' => 'DeviceId', + 'name' => 'GroupId', 'in' => 'formData', - 'schema' => [ - 'title' => '终端设备ID', - 'description' => '终端设备ID,唯一代表一个用户终端设备,用户自定义。小写英文、数字、下划线(_)和短横线(-)组成,最大长度64个字符。不同终端设备需要使用不同的DeviceId,建议从终端设备获取并传入给服务端。', - 'type' => 'string', - 'required' => true, - 'example' => 'a494caec-***-695ef345db77', - ], + 'schema' => ['description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], ], [ - 'name' => 'DeviceType', + 'name' => 'OperatorUserId', 'in' => 'formData', - 'schema' => [ - 'title' => '终端设备类型', - 'description' => '终端设备类型,取值:'."\n" - ."\n" - .'- ios'."\n" - ."\n" - .'- android'."\n" - ."\n" - .'- web'."\n" - ."\n" - .'- pc'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'android', - ], + 'schema' => ['description' => '操作人用户UserId。该用户必须是群组的创建者。', 'type' => 'string', 'required' => true, 'example' => 'de1**a0'], ], [ - 'name' => 'UserId', + 'name' => 'BroadCastType', 'in' => 'formData', - 'schema' => [ - 'title' => '用户UserId,在AppId下单独唯一', - 'description' => '用户UserId,用户自定义,在AppId下单独唯一。小写英文、数字、下划线(_)和小数点(.)组成,最大长度32个字符。不同的用户需要使用不同的UserId。', - 'type' => 'string', - 'required' => true, - 'example' => 'de1**a0', - ], + 'schema' => ['description' => '系统消息扩散类型,取值:'."\n" + ."\n" + .'- 0:不扩散。'."\n" + ."\n" + .'- 1:扩散到指定人。'."\n" + ."\n" + .'- 2:扩散到群组。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], ], ], 'responses' => [ @@ -53011,72 +41938,54 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], 'Result' => [ 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'AccessToken' => [ - 'title' => '用于长连接建连的token', - 'description' => '用于长连接建连的Token。', - 'type' => 'string', - 'example' => 'oauth_cloud_key:***-b0YY5Gy6Q', - ], - 'AccessTokenExpiredTime' => [ - 'title' => '登录token过期时间(毫秒)', - 'description' => '登录Token过期时间,单位:毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '86400000', - ], - 'RefreshToken' => [ - 'title' => '更新Token,若AccessToken过期,则可以使用RefreshToken再次获取新Token', - 'description' => '更新Token,若AccessToken过期,则可以使用RefreshToken再次获取新Token。', - 'type' => 'string', - 'example' => 'oauth_cloud_key:****-Q62xggOTdgk3gw=', - ], + 'Success' => ['description' => '禁言是否成功,取值:'."\n" + ."\n" + .'- true:成功。'."\n" + ."\n" + .'- false:不成功。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvaildParameter', - 'errorMessage' => 'Invalid Parameter', - ], + 'title' => '禁言消息组全员(旧版)', + 'summary' => '调用MuteAllGroupUser对消息组禁言,即开启全员禁言。', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2023-04-04T06:09:59.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-12-08T09:05:53.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'MuteAllGroupUser'], ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:MuteAllGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AccessToken\\": \\"oauth_cloud_key:***-b0YY5Gy6Q\\",\\n \\"AccessTokenExpiredTime\\": 86400000,\\n \\"RefreshToken\\": \\"oauth_cloud_key:****-Q62xggOTdgk3gw=\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n oauth_cloud_key:***-b0YY5Gy6Q\\n oauth_cloud_key:****-Q62xggOTdgk3gw=\\n 86400000\\n \\n","errorExample":""}]', - 'title' => '获取长连接建连Token(旧版)', - 'description' => '## 使用说明'."\n" - .'先获取客户端UserId、DeviceId、DeviceType信息,然后传入到服务端,服务端使用该接口获取鉴权Token,并返回给客户端。不同的用户需要使用不同的UserId,不同的终端设备需要使用不同的DeviceId。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', ], - 'CreateMessageApp' => [ - 'summary' => '调用CreateMessageApp创建互动消息应用。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'MuteGroupUser' => [ + 'summary' => '调用MuteGroupUser批量禁言消息组内成员。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -53084,49 +41993,52 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'AppName', + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], + ], + [ + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => ['description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], + ], + [ + 'name' => 'MuteUserList', 'in' => 'formData', + 'style' => 'simple', 'schema' => [ - 'description' => '互动消息应用名称,长度2~16个字符。', - 'type' => 'string', + 'description' => '禁言详情。', + 'type' => 'array', + 'items' => ['description' => '禁言用户ID列表。', 'type' => 'string', 'required' => false, 'example' => 'qu***,yu1***'], 'required' => true, - 'example' => 'test', ], ], [ - 'name' => 'AppConfig', + 'name' => 'MuteTime', 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '应用配置。', - 'type' => 'object', - 'required' => false, - 'additionalProperties' => [ - 'type' => 'string', - 'description' => '应用的配置信息,用户自定义内容。', - 'example' => '"appAlias":"localApp"', - ], - ], + 'schema' => ['description' => '禁言的时间,单位:秒。'."\n" + ."\n" + .'>如果不传或者传0则采用默认禁言时间(86400秒)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3600'], ], [ - 'name' => 'Extension', + 'name' => 'OperatorUserId', 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '拓展字段。', - 'type' => 'object', - 'required' => false, - 'additionalProperties' => [ - 'type' => 'string', - 'description' => '拓展字段,按需传递,需要额外记录的应用属性。', - 'example' => 'test001', - ], - ], + 'schema' => ['description' => '操作人用户UserId。'."\n" + .'> 该参数需填写且该用户必须是群组的创建者。', 'type' => 'string', 'required' => false, 'example' => 'de1**a0'], + ], + [ + 'name' => 'BroadCastType', + 'in' => 'formData', + 'schema' => ['description' => '系统消息扩散类型,取值:'."\n" + ."\n" + .'- 0:不扩散。'."\n" + ."\n" + .'- 1:扩散到指定人。'."\n" + ."\n" + .'- 2:扩散到群组。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], ], ], 'responses' => [ @@ -53136,300 +42048,347 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], 'Result' => [ 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'AppId' => [ - 'title' => '用于长连接建连的token', - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'example' => 'VKL3***', - ], + 'Success' => ['description' => '禁言是否成功,取值:'."\n" + ."\n" + .'- true:成功。'."\n" + ."\n" + .'- false:不成功。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AppId\\": \\"VKL3***\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 7m***q\\n \\n","errorExample":""}]', - 'title' => '创建互动消息应用(旧版)', + 'title' => '批量禁言消息组内成员(旧版)', 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", - ], - 'UpdateMessageApp' => [ - 'summary' => '调用UpdateMessageApp更新互动消息应用信息。', - 'methods' => [ - 'post', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'MuteGroupUser'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:MuteGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', + ], + 'OpenLiveShift' => [ + 'summary' => '调用OpenLiveShift为指定域名(应用、直播流)开启时移服务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREliveGDJYFA'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'AppName', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'testApp', - ], + 'in' => 'query', + 'schema' => ['description' => '直播流所属应用名称。支持通配符*,代表该域名下所有的AppName。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ - 'name' => 'AppConfig', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '应用配置。', - 'type' => 'object', - 'required' => false, - 'additionalProperties' => [ - 'type' => 'string', - 'description' => '应用的配置信息,用户自定义内容。', - 'example' => '"appAlias":"localApp"', - ], - ], + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流流名称。支持通配符*,代表该AppName下所有的StreamName。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], ], [ - 'name' => 'Extension', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '拓展字段。', - 'type' => 'object', - 'required' => false, - 'additionalProperties' => [ - 'type' => 'string', - 'description' => '拓展字段,按需传递,需要额外记录的应用属性。', - 'example' => 'test001', - ], - ], + 'name' => 'Duration', + 'in' => 'query', + 'schema' => ['description' => 'HLS的ts切片的长度。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3'], + ], + [ + 'name' => 'Vision', + 'in' => 'query', + 'schema' => ['description' => '表示数据保留时长。默认保留7天,单位:天。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'IgnoreTranscode', + 'in' => 'query', + 'schema' => ['description' => '是否忽略对应转码流生成时移。取值:'."\n" + ."\n" + .'- **true**:转码流不生成时移。'."\n" + ."\n" + .'- **false**:转码流生成时移。'."\n" + ."\n" + .'默认选择为true。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'Success' => [ - 'description' => '更新是否成功,取值:'."\n" - ."\n" - .'- true:成功。'."\n" - ."\n" - .'- false:不成功。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', - 'title' => '更新互动消息应用信息(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'ListMessageApp' => [ - 'summary' => '调用ListMessageApp查询互动消息应用列表。', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], + ], + 404 => [ + ['errorCode' => 'InvalidDataNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '数据不存在,请检查后重试。'], + ], + 409 => [ + ['errorCode' => 'InvalidStreamNum', 'errorMessage' => '%s, please check and try again later.', 'description' => '流数量异常,请检查后重试。'], + ], + ], + 'title' => '开启时移服务', + 'description' => '直播时移和延迟转码目前暂不支持同时配置。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '### 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" + .'|------------|--------|---------|------|'."\n" + .'| InvalidParam | param error|400| 用户参数错误。|'."\n" + .'| InvalidDataNotFound | data not found |404| 用户数据未找到。|', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'OpenLiveShift'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:OpenLiveShift', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'PlayChoosenShow' => [ + 'summary' => '手动切换节目。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'SortType', - 'in' => 'formData', - 'schema' => [ - 'description' => '排列方式,取值:'."\n" - ."\n" - .'- 0:时间递增顺序。'."\n" - ."\n" - .'- 1:时间递减顺序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'PageNum', - 'in' => 'formData', - 'schema' => [ - 'description' => '页码,默认值:1。取值范围:1~100000。'."\n" - .'> 此页码为当前展示页。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '单页显示应用的数量,默认值:20。取值范围:1~50。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '20', - ], + 'name' => 'ShowId', + 'in' => 'query', + 'schema' => ['description' => '需要播放切换的节目ID。'."\n" + .'>通过查看[AddShowIntoShowList](~~2848051~~)或[DescribeShowList](~~2848054~~)接口的返回参数获取ShowId值。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'AppList' => [ - 'description' => '应用列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'AppConfig' => [ - 'description' => '应用配置。', - 'type' => 'object', - 'additionalProperties' => [ - 'type' => 'string', - 'description' => '应用的配置。', - 'example' => '"appAlias":"localApp"', - ], - ], - 'AppId' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'example' => 'VKL3***', - ], - 'AppName' => [ - 'description' => '互动消息应用名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'CreateTime' => [ - 'description' => '应用创建的UTC时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '502280113', - ], - 'Extension' => [ - 'description' => '拓展字段。', - 'type' => 'object', - 'additionalProperties' => [ - 'type' => 'string', - 'example' => 'test001', - 'description' => '拓展字段。', - ], - ], - 'Status' => [ - 'description' => '互动消息应用状态。取值为**1**表示应用状态正常。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - ], - ], - ], - 'HasMore' => [ - 'description' => '是否还有下一页,取值:'."\n" - ."\n" - .'- true:有下一页。'."\n" - ."\n" - .'- false:没有下一页。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Total' => [ - 'description' => '互动消息应用总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'ShowId' => ['description' => '节目ID。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态有误,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList不存在,请检查后重试。'], + ['errorCode' => 'InvalidShow.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Show不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\"\\n}","errorExample":""},{"type":"xml","example":" \\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\na2b8e671-2fe5-4642-a2ec-bf93880e****\\n ","errorExample":""}]', + 'title' => '手动切换节目', + 'description' => '添加节目完成开启直播后,可调用本接口切换节目。使用API添加节目,请参见[添加一个节目到节目单](~~2848051~~)。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PlayChoosenShow'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:PlayChoosenShow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AppList\\": [\\n {\\n \\"AppConfig\\": {\\n \\"key\\": \\"\\\\\\"appAlias\\\\\\":\\\\\\"localApp\\\\\\"\\"\\n },\\n \\"AppId\\": \\"VKL3***\\",\\n \\"AppName\\": \\"test\\",\\n \\"CreateTime\\": 502280113,\\n \\"Extension\\": {\\n \\"key\\": \\"test001\\"\\n },\\n \\"Status\\": 1\\n }\\n ],\\n \\"HasMore\\": false,\\n \\"Total\\": 15\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 15\\n false\\n \\n VKL3***\\n test\\n 502280113\\n 1\\n \\n \\"appAlias\\":\\"localApp\\"\\n \\n \\n test001\\n \\n \\n \\n","errorExample":""}]', - 'title' => '查询互动消息应用列表(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', ], - 'GetMessageApp' => [ - 'summary' => '调用GetMessageApp获取指定互动消息应用详情。', - 'methods' => [ - 'post', + 'PublishLiveStagingConfigToProduction' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名。', 'type' => 'string', 'required' => true, 'example' => 'developer.aliyundoc.com'], + ], + [ + 'name' => 'FunctionName', + 'in' => 'query', + 'schema' => ['description' => '功能名称。获取功能名称,请参见[DescribeLiveDomainStagingConfig](~~297374~~)。', 'type' => 'string', 'required' => true, 'example' => 'aliauth'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'StagingConfig.Failed', 'errorMessage' => 'The rules for the staging environment are being configured. Try again later.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'StagingConfig.NotFound', 'errorMessage' => 'The staging configuration does not exist.', 'description' => ''], + ], + ], + 'title' => '将灰度配置转为生产配置', + 'summary' => '调用PublishLiveStagingConfigToProduction将灰度配置转为生产配置。', + 'description' => '## 使用说明'."\n" + .'先通过[DescribeLiveDomainStagingConfig接口](~~297374~~)获取功能名称,再调用本接口将灰度配置转为生产配置。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PublishLiveStagingConfigToProduction'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:PublishLiveStagingConfigToProduction', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n04F0F334-1335-436C-A1D7-6C044FE73368\\r\\n","errorExample":""}]', + ], + 'QueryLiveDomainMultiStreamList' => [ + 'summary' => '查询双流灾备在线记录。', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -53441,20 +42400,45 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'abilityTreeCode' => '250498', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'name' => 'Domain', + 'in' => 'query', + 'schema' => ['description' => '主播放域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流名称。用于做过滤,精确搜索。', 'type' => 'string', 'required' => false, 'example' => 'teststream'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '查询范围的起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'StartTime和EndTime时间间隔在 7 天内。', 'type' => 'string', 'required' => false, 'example' => '2024-12-01T01:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'结束时间需大于起始时间。起止时间和结束时间,间隔不超过 7 天。'."\n" + .'默认最近 24 小时。', 'type' => 'string', 'required' => false, 'example' => '2024-12-02T01:00:00Z'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '当前页码。默认值为**1**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '单页显示的数量,默认值:10。'."\n" + ."\n" + .'取值范围:1~100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '10', 'default' => '10'], ], ], 'responses' => [ @@ -53464,58 +42448,67 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'AppConfig' => [ - 'description' => '应用配置。', - 'type' => 'object', - 'additionalProperties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A5****'], + 'PageNumber' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'TotalCount' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '19'], + 'OnlineStreams' => [ + 'description' => '在线记录数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Domain' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'play.***.com'], + 'AppName' => ['description' => '应用名称。', 'type' => 'string', 'example' => 'apptest'], + 'StreamName' => ['description' => '直播流名称。', 'type' => 'string', 'example' => 'teststream'], + 'OptimalMode' => [ + 'description' => '功能开关。取值:'."\n" + .'- **on**:开启'."\n" + .'- **off**:关闭', 'type' => 'string', - 'example' => '"appAlias":"localApp"', - 'description' => '应用的配置。', + 'enumValueTitles' => ['off' => 'off', 'on' => 'on'], + 'example' => 'on', ], - ], - 'AppId' => [ - 'title' => '应用ID。', - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'example' => 'VKL3***', - ], - 'AppName' => [ - 'title' => '应用名称。长度2~16位。', - 'description' => '互动消息应用名称。', - 'type' => 'string', - 'example' => 'testApp', - ], - 'CreateTime' => [ - 'description' => '应用创建的UTC时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '502280113', - ], - 'Extension' => [ - 'description' => '拓展字段。', - 'type' => 'object', - 'additionalProperties' => [ - 'type' => 'string', - 'description' => '拓展字段。', - 'example' => 'test001', + 'UpstreamList' => [ + 'description' => '表示所有备选的流。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UpstreamSequence' => ['description' => '推流唯一标识。', 'type' => 'string', 'example' => '***test_Alirewrite1'], + 'UpstreamIp' => ['description' => '推流客户端IP。', 'type' => 'string', 'example' => '1.1.1.1'], + 'UpstreamTime' => ['description' => '推流时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2024-11-13T09:20:47Z'], + 'MasterFlag' => [ + 'description' => '主备标记。'."\n" + .'> 用于标记当前合流分发的是哪个流。', + 'type' => 'boolean', + 'enumValueTitles' => ['true' => 'true', 'false' => 'false'], + 'example' => 'false', + ], + ], + 'description' => '', + ], + ], + 'ChangeLogs' => [ + 'description' => '切流记录。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ChangeTime' => ['description' => '切流时间。日期格式按照 ISO8601 表示法,并使用 UTC+0 时间,格式为 yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2024-11-13T09:20:47Z'], + 'ChangeReason' => ['description' => '切流原因'."\n" + .'* 用户手动切流 merge cut manually'."\n" + .'* 主流没有数据 master stream no data'."\n" + .'* 主流质量劣化 master stream low quality。', 'type' => 'string', 'example' => 'merge cut manually'], + 'MasterUpstream' => ['description' => '切流后实际使用的流。', 'type' => 'string', 'example' => 'rtmp://118.178.168.35:1936/wwMultitest/pull.livetest2.aliyunlive.com_wwMultitest428_AliRewrite_2?vhost=pull.livetest2.aliyunlive.com&live_rtmp_test=on'], + 'UpstreamSequence' => ['description' => '切流后的流标识。', 'type' => 'string', 'example' => '***test_AliRewrite_2'], + 'UpstreamIp' => ['description' => '切流后使用的ip。', 'type' => 'string', 'example' => '1.1.1.1'], + ], + 'description' => '', + ], ], ], - 'Status' => [ - 'description' => '互动消息应用状态。取值为1表示应用状态正常。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'description' => '', ], ], ], @@ -53523,27 +42516,43 @@ ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'InvalidParam.CodeIllegalDuration', 'errorMessage' => '%s.', 'description' => '开始时间应该小于结束时间。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A5****\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 19,\\n \\"OnlineStreams\\": [\\n {\\n \\"Domain\\": \\"play.***.com\\",\\n \\"AppName\\": \\"apptest\\",\\n \\"StreamName\\": \\"teststream\\",\\n \\"OptimalMode\\": \\"on\\",\\n \\"UpstreamList\\": [\\n {\\n \\"UpstreamSequence\\": \\"***test_Alirewrite1\\",\\n \\"UpstreamIp\\": \\"1.1.1.1\\",\\n \\"UpstreamTime\\": \\"2024-11-13T09:20:47Z\\",\\n \\"MasterFlag\\": false\\n }\\n ],\\n \\"ChangeLogs\\": [\\n {\\n \\"ChangeTime\\": \\"2024-11-13T09:20:47Z\\",\\n \\"ChangeReason\\": \\"merge cut manually\\",\\n \\"MasterUpstream\\": \\"rtmp://118.178.168.35:1936/wwMultitest/pull.livetest2.aliyunlive.com_wwMultitest428_AliRewrite_2?vhost=pull.livetest2.aliyunlive.com&live_rtmp_test=on\\",\\n \\"UpstreamSequence\\": \\"***test_AliRewrite_2\\",\\n \\"UpstreamIp\\": \\"1.1.1.1\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', + 'title' => '查询双流灾备在线记录', + 'changeSet' => [ + ['createdAt' => '2025-04-27T04:00:13.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryLiveDomainMultiStreamList'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:QueryLiveDomainMultiStreamList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"AppConfig\\": {\\n \\"key\\": \\"\\\\\\"appAlias\\\\\\":\\\\\\"localApp\\\\\\"\\"\\n },\\n \\"AppId\\": \\"VKL3***\\",\\n \\"AppName\\": \\"testApp\\",\\n \\"CreateTime\\": 502280113,\\n \\"Extension\\": {\\n \\"key\\": \\"test001\\"\\n },\\n \\"Status\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n VKL3***\\n testApp\\n 1\\n \\n \\"appAlias\\":\\"localApp\\"\\n \\n \\n test001\\n \\n \\n","errorExample":""}]', - 'title' => '获取指定互动消息应用详情(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', ], 'QueryMessageApp' => [ 'summary' => '调用QueryMessageApp按指定条件查询互动消息应用。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -53551,66 +42560,36 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'AppId', 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'VKL3***', - ], + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => false, 'example' => 'VKL3***'], ], [ 'name' => 'AppName', 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'testApp', - ], + 'schema' => ['description' => '互动消息应用名称。', 'type' => 'string', 'required' => false, 'example' => 'testApp'], ], [ 'name' => 'SortType', 'in' => 'formData', - 'schema' => [ - 'description' => '排列方式,取值:'."\n" - ."\n" - .'- 0:时间递增顺序。'."\n" - ."\n" - .'- 1:时间递减顺序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '排列方式,取值:'."\n" + ."\n" + .'- 0:时间递增顺序。'."\n" + ."\n" + .'- 1:时间递减顺序。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ 'name' => 'PageNum', 'in' => 'formData', - 'schema' => [ - 'description' => '页码,默认值:1。取值范围:1~100000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => '页码,默认值:1。取值范围:1~100000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], [ 'name' => 'PageSize', 'in' => 'formData', - 'schema' => [ - 'description' => '单页显示应用的数量,默认值:20。取值范围:1~50。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => '单页显示应用的数量,默认值:20。取值范围:1~50。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], ], 'responses' => [ @@ -53620,12 +42599,7 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], 'Result' => [ 'description' => '返回结果。', 'type' => 'array', @@ -53641,409 +42615,364 @@ 'AppConfig' => [ 'description' => '应用配置。', 'type' => 'object', - 'additionalProperties' => [ - 'type' => 'string', - 'description' => '应用的配置。', - 'example' => 'dawd', - ], - ], - 'AppId' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'example' => 'VKL3***', - ], - 'AppName' => [ - 'description' => '互动消息应用名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'CreateTime' => [ - 'description' => '应用创建的UTC时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '502280113', + 'additionalProperties' => ['type' => 'string', 'description' => '应用的配置。', 'example' => 'dawd'], ], + 'AppId' => ['description' => '互动消息应用ID。', 'type' => 'string', 'example' => 'VKL3***'], + 'AppName' => ['description' => '互动消息应用名称。', 'type' => 'string', 'example' => 'test'], + 'CreateTime' => ['description' => '应用创建的UTC时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '502280113'], 'Extension' => [ 'description' => '拓展字段。', 'type' => 'object', - 'additionalProperties' => [ - 'type' => 'string', - 'example' => 'test001', - 'description' => '拓展字段。', - ], - ], - 'Status' => [ - 'description' => '互动消息应用状态。取值为**1**表示应用状态正常。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', + 'additionalProperties' => ['type' => 'string', 'example' => 'test001', 'description' => '拓展字段。'], ], + 'Status' => ['description' => '互动消息应用状态。取值为**1**表示应用状态正常。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], + 'description' => '', ], ], - 'HasMore' => [ - 'description' => '是否还有下一页,取值:'."\n" - ."\n" - .'- true:有下一页。'."\n" - ."\n" - .'- false:没有下一页。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'TotalCount' => [ - 'description' => '查询到的总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], + 'HasMore' => ['description' => '是否还有下一页,取值:'."\n" + ."\n" + .'- true:有下一页。'."\n" + ."\n" + .'- false:没有下一页。', 'type' => 'boolean', 'example' => 'false'], + 'TotalCount' => ['description' => '查询到的总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '4'], ], + 'description' => '', ], ], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": [\\n {\\n \\"AppList\\": [\\n {\\n \\"AppConfig\\": {\\n \\"key\\": \\"dawd\\"\\n },\\n \\"AppId\\": \\"VKL3***\\",\\n \\"AppName\\": \\"test\\",\\n \\"CreateTime\\": 502280113,\\n \\"Extension\\": {\\n \\"key\\": \\"test001\\"\\n },\\n \\"Status\\": 1\\n }\\n ],\\n \\"HasMore\\": false,\\n \\"TotalCount\\": 4\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 4\\n false\\n \\n VKL3***\\n test\\n 502280113\\n 1\\n \\n dawd\\n \\n \\n test001\\n \\n \\n \\n","errorExample":""}]', 'title' => '按指定条件查询互动消息应用(旧版)', 'description' => '## QPS限制'."\n" .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DeleteMessageApp' => [ - 'summary' => '调用DeleteMessageApp删除互动消息应用。', - 'methods' => [ - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryMessageApp'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:QueryMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": [\\n {\\n \\"AppList\\": [\\n {\\n \\"AppConfig\\": {\\n \\"key\\": \\"dawd\\"\\n },\\n \\"AppId\\": \\"VKL3***\\",\\n \\"AppName\\": \\"test\\",\\n \\"CreateTime\\": 502280113,\\n \\"Extension\\": {\\n \\"key\\": \\"test001\\"\\n },\\n \\"Status\\": 1\\n }\\n ],\\n \\"HasMore\\": false,\\n \\"TotalCount\\": 4\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 4\\n false\\n \\n VKL3***\\n test\\n 502280113\\n 1\\n \\n dawd\\n \\n \\n test001\\n \\n \\n \\n","errorExample":""}]', + ], + 'QueryRtcAsrTasks' => [ + 'summary' => '查询当前已创建的实时语音转文字或翻译任务的状态信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '219787', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '需要删除的互动消息应用ID,仅支持配置单个应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => ['description' => '要查询的任务ID,不填写则查询用户uid下所有运行中的任务。', 'type' => 'string', 'required' => false, 'example' => 'asr-a6ac15e0-9118-4b4c-9e64-306163a0****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', + 'Description' => ['description' => '结果描述,为success时成功,失败则返回错误信息。', 'type' => 'string', 'example' => 'success'], + 'RequestId' => ['description' => '网关请求ID。', 'type' => 'string', 'example' => 'D8ADAB55-1BB8-5C01-8434-C45D353BB1FD'], + 'RetCode' => ['description' => '状态码。返回2000表示成功,返回其他表示异常。', 'type' => 'integer', 'format' => 'int64', 'example' => '2000'], + 'Tasks' => [ + 'description' => 'Task结果集合。', 'type' => 'object', - 'properties' => [ - 'Success' => [ - 'description' => '删除是否成功,取值:'."\n" - ."\n" - .'- true:成功删除。'."\n" - ."\n" - .'- false:删除失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], + 'additionalProperties' => ['type' => 'any', 'example' => '"asr-a7bdde0a-0939-4288-973e-170082aa****": { "createdAt": "2024-05-14T11:52:02+08:00", "updatedAt": "2024-05-14T11:52:03+08:00", "mode": "live", "taskId": "asr-a7bdde0a-0939-4288-973e-170082aa****", "language": "cn", "callbackUrl": "default", "autoTerminateDelay": "10", "streamUrl": "http://pull-lveditor.alivecdn.com/caster/9c6c26281a6f4da29af7d3ec84d2****.flv?auth_key=1715745062-0-0-fbc68f2ccebb4d46b5ab6d4801ed****", "status": 1, "reportInterval": "0", "aliUid": "1119309225474343", "tag": "" }', 'description' => 'Task结果集合。'], ], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', - 'title' => '删除互动消息应用(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'CreateMessageGroup' => [ - 'summary' => '调用CreateMessageGroup创建消息组。', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询实时语音转文字或翻译', + 'description' => '本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryRtcAsrTasks'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:QueryRtcAsrTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"D8ADAB55-1BB8-5C01-8434-C45D353BB1FD\\",\\n \\"RetCode\\": 2000,\\n \\"Tasks\\": {\\n \\"key\\": \\"\\\\\\"asr-a7bdde0a-0939-4288-973e-170082aa****\\\\\\": { \\\\\\"createdAt\\\\\\": \\\\\\"2024-05-14T11:52:02+08:00\\\\\\", \\\\\\"updatedAt\\\\\\": \\\\\\"2024-05-14T11:52:03+08:00\\\\\\", \\\\\\"mode\\\\\\": \\\\\\"live\\\\\\", \\\\\\"taskId\\\\\\": \\\\\\"asr-a7bdde0a-0939-4288-973e-170082aa****\\\\\\", \\\\\\"language\\\\\\": \\\\\\"cn\\\\\\", \\\\\\"callbackUrl\\\\\\": \\\\\\"default\\\\\\", \\\\\\"autoTerminateDelay\\\\\\": \\\\\\"10\\\\\\", \\\\\\"streamUrl\\\\\\": \\\\\\"http://pull-lveditor.alivecdn.com/caster/9c6c26281a6f4da29af7d3ec84d2****.flv?auth_key=1715745062-0-0-fbc68f2ccebb4d46b5ab6d4801ed****\\\\\\", \\\\\\"status\\\\\\": 1, \\\\\\"reportInterval\\\\\\": \\\\\\"0\\\\\\", \\\\\\"aliUid\\\\\\": \\\\\\"1119309225474343\\\\\\", \\\\\\"tag\\\\\\": \\\\\\"\\\\\\" }\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n success\\n D8ADAB55-1BB8-5C01-8434-C45D353BB1FD\\n 2000\\n \\n \\"asr-a7bdde0a-0939-4288-973e-170082aa****\\": { \\"createdAt\\": \\"2024-05-14T11:52:02+08:00\\", \\"updatedAt\\": \\"2024-05-14T11:52:03+08:00\\", \\"mode\\": \\"live\\", \\"taskId\\": \\"asr-a7bdde0a-0939-4288-973e-170082aa****\\", \\"language\\": \\"cn\\", \\"callbackUrl\\": \\"default\\", \\"autoTerminateDelay\\": \\"10\\", \\"streamUrl\\": \\"http://pull-lveditor.alivecdn.com/caster/9c6c26281a6f4da29af7d3ec84d2****.flv?auth_key=1715745062-0-0-fbc68f2ccebb4d46b5ab6d4801ed****\\", \\"status\\": 1, \\"reportInterval\\": \\"0\\", \\"aliUid\\": \\"1119309225474343\\", \\"tag\\": \\"\\" }\\n \\n","errorExample":""}]', + ], + 'QuerySnapshotCallbackAuth' => [ + 'summary' => '查询截图回调鉴权配置信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a494caec-***-695ef345db77', - ], - ], - [ - 'name' => 'CreatorId', - 'in' => 'formData', - 'schema' => [ - 'description' => '创建人ID,仅支持英文和数字,最大长度36位。', - 'type' => 'string', - 'required' => true, - 'example' => 'as****hs', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Extension', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '拓展字段。', - 'type' => 'object', - 'required' => false, - 'additionalProperties' => [ - 'type' => 'string', - 'description' => '拓展字段,按需传递,需要额外记录的消息组属性。', - 'example' => 'test001', - ], - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'Extension' => [ - 'description' => '拓展字段。', - 'type' => 'object', - 'example' => 'test001', - ], - 'GroupId' => [ - 'title' => '用于长连接建连的token', - 'description' => '消息组ID。', - 'type' => 'string', - 'example' => 'AE35-****-T95F', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD5'], + 'CallbackAuthKey' => ['description' => '回调鉴权密钥。', 'type' => 'string', 'example' => 'yourkey'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.aliyundoc.com'], + 'CallbackReqAuth' => ['description' => '回调鉴权开关。取值:'."\n" + ."\n" + .'- **yes**:开启。'."\n" + ."\n" + .'- **no**:关闭。', 'type' => 'string', 'example' => 'yes'], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Extension\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"GroupId\\": \\"AE35-****-T95F\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n AE35-****-T95F\\n \\n","errorExample":""}]', - 'title' => '创建消息组(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'UpdateMessageGroup' => [ - 'summary' => '调用UpdateMessageGroup更新消息组信息。', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], + ], + ], + 'title' => '查询截图回调鉴权配置', + 'description' => '您已完成配置截图回调鉴权,配置接口请参见[设置截图回调鉴权配置](~~2847907~~)。'."\n" + .'本接口支持查询主播流域名已配置的截图回调鉴权信息,调用时请保证参数设置符合要求。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySnapshotCallbackAuth'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:QuerySnapshotCallbackAuth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\",\\n \\"CallbackAuthKey\\": \\"yourkey\\",\\n \\"DomainName\\": \\"example.aliyundoc.com\\",\\n \\"CallbackReqAuth\\": \\"yes\\"\\n}","errorExample":""},{"type":"xml","example":" \\nyourkey\\nyes\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\nexample.aliyundoc.com\\n","errorExample":""}]', + ], + 'RealTimeRecordCommand' => [ + 'summary' => '按需完成手动录制。例如动态启动录制、动态停止录制。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREliveL04ZVK'], ], 'parameters' => [ [ - 'name' => 'GroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'AE35-****-T95F', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'name' => 'Command', + 'in' => 'query', + 'schema' => ['description' => '操作行为。取值:'."\n" + ."\n" + .'- **start**:强制启动录制。必须作为首次操作调用,不可在未停止前重复调用。'."\n" + .'- **stop**:强制暂停录制,断流延迟时间(默认180秒)到达后,生成录制文件。 仅可在 start 或 restart 后调用;调用后如需立即出文件,可以调用 cancel_delay。'."\n" + .'- **cancel_delay**:立即终止等待并生成录制文件,完全停止录制。需要在 stop 后调用以提前生成文件。'."\n" + .'- **restart**:强制重新开始录制。如果restart之前在录制,立即生成文件。仅可在任务启动或停止状态下调用。', 'type' => 'string', 'required' => true, 'example' => 'start'], ], [ - 'name' => 'Extension', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '拓展字段。', - 'type' => 'object', - 'required' => false, - 'additionalProperties' => [ - 'type' => 'string', - 'description' => '消息组拓展字段。', - 'example' => 'test01', - ], - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '播流名称。请确保StreamName正确,您可在[流管理](~~197397~~)页面查看StreamName。'."\n" + ."\n" + .'> 该接口仅支持单条流操作,不支持通配符。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'Success' => [ - 'description' => '更新是否成功,取值:'."\n" - ."\n" - .'- true:成功更新。'."\n" - ."\n" - .'- false:更新失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', - 'title' => '更新消息组(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'ListMessageGroupUser' => [ - 'summary' => '查询消息组成员。', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '存在无效参数,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'CodeConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ], + 409 => [ + ['errorCode' => 'StreamNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '流不存在,请检查后重试。'], + ['errorCode' => 'TaskAlreadyStarted', 'errorMessage' => '%s, please do not start again.', 'description' => '任务已启动,请勿重复启动。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], + ], + ], + 'title' => '实时录制指令', + 'description' => '- 请确保在使用该接口前,已充分了解直播录制的收费方式和价格。计费详情,请参见[直播录制费用](~~195287~~)。'."\n" + .'- 该接口前只能控制录制配置生效的直播流,需要先完成[添加录制配置](~~2847881~~)。'."\n" + ."\n" + .'- 如果某条直播流正在录制(自动录制或手动录制启动),您可以调用此接口停止该直播流的录制;但如果在启动时调用该接口尝试启动录制,则会返回 TaskAlreadyStarted 错误,表示任务已启动。'."\n" + ."\n" + .'- 手动启动录制的直播流如果发生断流,即会停止录制。如果没有配置自动录制,重新推流后不会自动启动录制。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '## 注意事项: '."\n" + .'- 视频直播支持触发拉流,当使用触发拉流域名对应的播放地址进行播放时,会自动触发阿里云视频直播服务进行拉流直播,无人播放时则不会回源站进行拉流。自动录制、按需录制、手动录制功能应用在触发拉流场景时,如果触发拉流无人播放,则不会回源站拉流,自动录制、按需录制、手动录制同样也不会进行录制。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RealTimeRecordCommand'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:RealTimeRecordCommand', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + ], + 'RecoverLiveMessageDeletedGroup' => [ + 'summary' => '调用RecoverLiveMessageDeletedGroup恢复已删除的互动消息群组。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '227785', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'in' => 'query', + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ 'name' => 'GroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'AE35-****-T95F', - ], + 'in' => 'query', + 'schema' => ['description' => '要恢复的群组ID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], [ - 'name' => 'SortType', - 'in' => 'formData', - 'schema' => [ - 'description' => '排列方式,取值:'."\n" - ."\n" - .'- 0:时间递增顺序。'."\n" - ."\n" - .'- 1:时间递减顺序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageNum', - 'in' => 'formData', - 'schema' => [ - 'description' => '页码,默认值:1。'."\n" - ."\n" - .'取值范围:1~100000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '单页显示消息组成员的数量,默认值:20。'."\n" - ."\n" - .'取值范围:1~50。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'name' => 'DataCenter', + 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)创建时的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ @@ -54053,143 +42982,103 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'HasMore' => [ - 'description' => '是否还有下一页,取值:'."\n" - ."\n" - .'- true:有下一页。'."\n" - ."\n" - .'- false:没有下一页。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Total' => [ - 'description' => '消息组用户总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'UserList' => [ - 'description' => '用户列表。', - 'type' => 'array', - 'items' => [ - 'description' => '用户列表。', - 'type' => 'object', - 'properties' => [ - 'JoinTime' => [ - 'description' => '加入消息组的UTC时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12**45', - ], - 'UserId' => [ - 'description' => '用户UserId。', - 'type' => 'string', - 'example' => 'de1**a0,hu**9', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****'], + 'GroupId' => ['description' => '已恢复的群组ID。', 'type' => 'string', 'example' => 'grouptest'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"HasMore\\": false,\\n \\"Total\\": 2,\\n \\"UserList\\": [\\n {\\n \\"JoinTime\\": 0,\\n \\"UserId\\": \\"de1**a0,hu**9\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 2\\n false\\n \\n de1**a0,hu**9\\n \\n \\n","errorExample":""}]', - 'title' => '查询消息组成员(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'ListMessageGroup' => [ - 'summary' => '调用ListMessageGroup查询指定用户下消息组列表。', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ['errorCode' => 'ErrorTooManyGroups', 'errorMessage' => '%s.', 'description' => '每个AppId,最多同时允许创建5000个群组'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '恢复已删除的互动消息群组', + 'description' => '- 调用[DeleteLiveMessageGroup](~~2848163~~)删除互动消息群组之后三十天内,可以调用本接口恢复已被删除的群组。'."\n" + .'- 群组恢复后,被删除之前存储的消息依旧可以查询。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-07-19T03:44:22.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RecoverLiveMessageDeletedGroup'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:RecoverLiveMessageDeletedGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\",\\n \\"GroupId\\": \\"grouptest\\"\\n}","errorExample":""},{"type":"xml","example":"\\n B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\n grouptest\\n","errorExample":""}]', + ], + 'RemoveLiveMessageGroupBand' => [ + 'summary' => '解除直播互动群组用户禁言', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '235211', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ - [ - 'name' => 'UserId', - 'in' => 'formData', - 'schema' => [ - 'description' => '用户UserId,用户自定义,在AppId下单独唯一。不同的用户需要使用不同的UserId。'."\n" - .'> 正确填写此参数内容,才能正常查询。', - 'type' => 'string', - 'required' => false, - 'example' => 'de1**a0', - ], - ], [ 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。'."\n" - .'> 正确填写此参数内容,才能正常查询。', - 'type' => 'string', - 'required' => false, - 'example' => 'VKL3***', - ], + 'in' => 'query', + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'SortType', - 'in' => 'formData', - 'schema' => [ - 'description' => '排列方式,取值:'."\n" - ."\n" - .'- 0:时间递增顺序。'."\n" - ."\n" - .'- 1:时间递减顺序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => ['description' => '群组ID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], [ - 'name' => 'PageNum', - 'in' => 'formData', + 'name' => 'UnbannedUsers', + 'in' => 'query', + 'style' => 'simple', 'schema' => [ - 'description' => '页码,默认值:1。取值范围:1~100000。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '移除被禁言的用户列表。多个用半角逗号(,)隔开,最多不超过30个。', + 'type' => 'array', + 'items' => ['description' => '移除被禁言的用户。'."\n" + .'- 传 "*"表示恢复所有的被禁言用户。', 'type' => 'string', 'required' => false, 'example' => 'uid1'], 'required' => true, - 'example' => '10', ], ], [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '单页显示消息组的数量,默认值:20。'."\n" - ."\n" - .'取值范围:1~50。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '20', - ], + 'name' => 'DataCenter', + 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致。'."\n" + .'> 当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ @@ -54199,322 +43088,208 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'GroupList' => [ - 'description' => '消息组列表。', - 'type' => 'array', - 'items' => [ - 'description' => '消息组详情。', - 'type' => 'object', - 'properties' => [ - 'AppId' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'example' => 'VKL3***', - ], - 'CreateTime' => [ - 'description' => '消息组创建UTC时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1502280113', - ], - 'CreatorId' => [ - 'description' => '创建人ID。', - 'type' => 'string', - 'example' => 'as****hs', - ], - 'Extension' => [ - 'description' => '拓展字段。', - 'type' => 'object', - 'additionalProperties' => [ - 'type' => 'string', - 'example' => 'test001', - 'description' => '拓展字段。', - ], - ], - 'GroupId' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'example' => 'AE35-****-T95F', - ], - 'Status' => [ - 'description' => '消息组状态。默认值为**1**,表示消息组状态正常。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - ], - ], - ], - 'HasMore' => [ - 'description' => '是否还有下一页,取值:'."\n" - ."\n" - .'- true:有下一页。'."\n" - ."\n" - .'- false:没有下一页。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Total' => [ - 'description' => '消息组总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"GroupList\\": [\\n {\\n \\"AppId\\": \\"VKL3***\\",\\n \\"CreateTime\\": 1502280113,\\n \\"CreatorId\\": \\"as****hs\\",\\n \\"Extension\\": {\\n \\"key\\": \\"test001\\"\\n },\\n \\"GroupId\\": \\"AE35-****-T95F\\",\\n \\"Status\\": 1\\n }\\n ],\\n \\"HasMore\\": false,\\n \\"Total\\": 5\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 5\\n false\\n \\n AE35-****-T95F\\n VKL3***\\n 1502280113\\n 1\\n as****hs\\n \\n test001\\n \\n \\n \\n","errorExample":""}]', - 'title' => '查询指定用户下消息组(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", - ], - 'GetMessageGroup' => [ - 'summary' => '调用GetMessageGroup获取消息组详情。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'GroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'AE35-****-T95F', - ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], ], [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'CreateTime' => [ - 'description' => '消息组创建UTC时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1502280113', - ], - 'CreatorId' => [ - 'description' => '创建人ID。', - 'type' => 'string', - 'example' => 'as****hs', - ], - 'Extension' => [ - 'description' => '扩展字段。', - 'type' => 'object', - 'example' => '1', - ], - 'GroupId' => [ - 'title' => '用于长连接建连的token', - 'description' => '消息组ID。', - 'type' => 'string', - 'example' => 'AE35-****-T95F', - ], - 'IsMuteAll' => [ - 'description' => '该消息组是否启用了全员禁言。'."\n" - ."\n" - .'- true:启动全员禁言。'."\n" - ."\n" - .'- false:未启动全员禁言。'."\n" - ."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Status' => [ - 'description' => '消息组状态。默认为**1**,表示消息组状态正常。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - ], - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '解除禁言用户', + 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveLiveMessageGroupBand'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:RemoveLiveMessageGroupBand', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"CreateTime\\": 1502280113,\\n \\"CreatorId\\": \\"as****hs\\",\\n \\"Extension\\": 1,\\n \\"GroupId\\": \\"AE35-****-T95F\\",\\n \\"IsMuteAll\\": true,\\n \\"Status\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n AE35-****-T95F\\n 1502280113\\n 1\\n as****hs\\n true\\n \\n","errorExample":""}]', - 'title' => '获取消息组详情(旧版)', - 'description' => '## 使用说明'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', ], - 'JoinMessageGroup' => [ - 'summary' => '加入消息组。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RemoveShowFromShowList' => [ + 'summary' => '删除节目单中的节目。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a494caec-***-695ef345db77', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'GroupId', - 'in' => 'formData', + 'name' => 'showIdList', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要加入的消息组ID,请确保传入的GroupId是存在的。', - 'type' => 'string', - 'required' => true, - 'example' => 'AE35-****-T95F', + 'description' => '需要删除的节目ID组。', + 'type' => 'array', + 'items' => ['description' => '需要删除的节目ID列表。', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'required' => false, + 'maxItems' => 80, ], ], [ - 'name' => 'UserId', - 'in' => 'formData', - 'schema' => [ - 'description' => '用户UserId,用户自定义,在AppId下单独唯一。小写英文、数字、下划线(_)和小数点(.)组成,最大长度32个字符。不同的用户需要使用不同的UserId。', - 'type' => 'string', - 'required' => true, - 'example' => 'de1**a0', - ], + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], [ - 'name' => 'BroadCastType', - 'in' => 'formData', - 'schema' => [ - 'description' => '系统消息扩散类型,取值:'."\n" - ."\n" - .'- 0(默认值):不扩散。'."\n" - ."\n" - .'- 1:扩散到指定人。'."\n" - ."\n" - .'- 2:扩散到群组。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'name' => 'ShowId', + 'in' => 'query', + 'schema' => ['description' => '节目ID。'."\n" + .'>通过查看[AddShowIntoShowList](~~2848051~~)接口的返回参数获取ShowId值。', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], [ - 'name' => 'BroadCastStatistics', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否扩散统计类消息,打开时在加入消息组后会广播消息组的统计信息,客户端可以接收处理该消息。取值:'."\n" - ."\n" - .'- true:扩散统计类消息。'."\n" - ."\n" - .'- false:不扩散统计类消息。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'name' => 'isBatchMode', + 'in' => 'query', + 'schema' => ['description' => '是否批量删除节目。取值:'."\n" + ."\n" + .'- true:批量删除。'."\n" + ."\n" + .'- false:单个删除。'."\n" + ."\n" + .'>该参数不填,取值为空时,也表示单个删除。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'Success' => [ - 'description' => '加入消息组是否成功,取值:'."\n" - ."\n" - .'- true:成功。'."\n" - ."\n" - .'- false:不成功。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + 'ShowId' => ['description' => '节目ID。', 'type' => 'string', 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + 'failedList' => ['description' => '删除失败的节目ID列表以及失败信息。', 'type' => 'string', 'example' => 'failedList[Show1, Show2...]'], + 'successfulShowIds' => ['description' => '成功删除的节目ID。', 'type' => 'string', 'example' => 'f1933f16-5467-4308-b3a9-e8d451a90999'], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', - 'title' => '加入消息组(旧版)', - 'description' => '本接口的单用户QPS限制为200次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'MuteAllGroupUser' => [ - 'summary' => '调用MuteAllGroupUser对消息组禁言,即开启全员禁言。', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidShowList.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ShowList不存在,请检查后重试。'], + ['errorCode' => 'InvalidShow.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Show不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'title' => '删除节目单中的节目', + 'description' => '先通过[AddShowIntoShowList](~~2848051~~)接口添加节目,再调用本接口删除节目单中的节目。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '## 代码示例'."\n" + .'```'."\n" + .' public static DefaultAcsClient initClient(String accessKeyId, String accessKeySecret) throws ClientException {'."\n" + .' String regionId = "cn-shanghai"; '."\n" + .' DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);'."\n" + .' DefaultAcsClient client = new DefaultAcsClient(profile);'."\n" + .' return client;'."\n" + .' }'."\n" + ."\n" + .'private static void removeShowFromShowList(DefaultAcsClient client, String casterId, String showId) throws ClientException {'."\n" + ."\n" + .' CommonRequest removeShowFromShowListFromShowList = new CommonRequest();'."\n" + .' removeShowFromShowListFromShowList.setSysDomain("live.aliyuncs.com");'."\n" + .' removeShowFromShowListFromShowList.setSysVersion("2016-11-01");'."\n" + .' removeShowFromShowListFromShowList.setSysAction("RemoveShowFromShowList");'."\n" + ."\n" + .' removeShowFromShowListFromShowList.putQueryParameter("ShowId", showId);'."\n" + .' removeShowFromShowListFromShowList.putQueryParameter("CasterId", casterId);'."\n" + ."\n" + .' CommonResponse removeShowFromShowListFromShowListResponse = client.getCommonResponse(removeShowFromShowListFromShowList);'."\n" + .' System.out.println("删除导播台节目,removeShowFromShowListFromShowListResponse:" + JSON.toJSONString(removeShowFromShowListFromShowListResponse));'."\n" + .' }'."\n" + ."\n\n" + .' public void removeShow() throws ClientException {'."\n" + .' String showId = "xxx";'."\n" + .' DefaultAcsClient client = initClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET);'."\n" + .' removeShowFromShowList(client, testCasterId, showId);'."\n" + .' }'."\n" + .'```', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveShowFromShowList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:RemoveShowFromShowList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"ShowId\\": \\"a2b8e671-2fe5-4642-a2ec-bf93880e****\\",\\n \\"failedList\\": \\"failedList[Show1, Show2...]\\",\\n \\"successfulShowIds\\": \\"f1933f16-5467-4308-b3a9-e8d451a90999\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 001A01C4-3023-57C1-9A82-1BF3DC690C0A\\n \\n 347436b8-c839-4469-a2c0-704c1ce5ce00\\n the showId does not exist in our showOrderList\\n \\n f1933f16-5467-4308-b3a9-e8d451a90999\\n 547436b8-c839-4469-a2c0-704c1ce5ce00\\n","errorExample":""}]', + ], + 'RemoveTerminals' => [ + 'summary' => '从频道中踢出指定终端用户。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -54523,54 +43298,39 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '178423', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], - ], - [ - 'name' => 'GroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'AE35-****-T95F', - ], + 'in' => 'query', + 'schema' => ['description' => '应用ID,仅支持传单个ID。', 'type' => 'string', 'required' => true, 'example' => 'aec****'], ], [ - 'name' => 'OperatorUserId', - 'in' => 'formData', - 'schema' => [ - 'description' => '操作人用户UserId。该用户必须是群组的创建者。', - 'type' => 'string', - 'required' => true, - 'example' => 'de1**a0', - ], + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => ['description' => '已加入的频道ID,仅支持传单个ID。', 'type' => 'string', 'required' => true, 'example' => 'testId'], ], [ - 'name' => 'BroadCastType', - 'in' => 'formData', + 'name' => 'TerminalIds', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '系统消息扩散类型,取值:'."\n" - ."\n" - .'- 0:不扩散。'."\n" - ."\n" - .'- 1:扩散到指定人。'."\n" + 'description' => '用户列表ID。', + 'type' => 'array', + 'items' => ['description' => '用户ID列表,N的取值:**1~30**。格式如下所示:'."\n" ."\n" - .'- 2:扩散到群组。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', + .'```'."\n" + .'TerminalIds.1=****'."\n" + .'TerminalIds.2=****'."\n" + .'......'."\n" + .'```', 'type' => 'string', 'required' => false, 'example' => '1811****'], + 'required' => true, + 'maxItems' => 30, ], ], ], @@ -54578,27 +43338,24 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '返回信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'Success' => [ - 'description' => '禁言是否成功,取值:'."\n" + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4AF8'], + 'Terminals' => [ + 'description' => '用户ID信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '用户ID信息列表。', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '状态码,成功返回0,失败返回错误码描述。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Message' => ['description' => '删除终端操作结果。取值:'."\n" ."\n" - .'- true:成功。'."\n" + .'- Success:成功。'."\n" ."\n" - .'- false:不成功。', - 'type' => 'boolean', - 'example' => 'true', + .'- Failed:失败。', 'type' => 'string', 'example' => 'Success'], + 'Id' => ['description' => '用户ID。', 'type' => 'string', 'example' => '1811****'], ], ], ], @@ -54606,228 +43363,195 @@ ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', - 'title' => '禁言消息组全员(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'MuteGroupUser' => [ - 'summary' => '调用MuteGroupUser批量禁言消息组内成员。', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '从频道中踢出指定终端用户', + 'description' => '本接口用于将指定终端用户从频道踢出。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-10-18T03:59:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-08-31T01:48:03.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveTerminals'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:RemoveTerminals', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live:*:{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4AF8\\",\\n \\"Terminals\\": [\\n {\\n \\"Code\\": 0,\\n \\"Message\\": \\"Success\\",\\n \\"Id\\": \\"1811****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4AF8\\n \\n 0\\n Success\\n 1811****\\n \\n","errorExample":""}]', + ], + 'RestartCaster' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'GroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'AE35-****-T95F', - ], + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****'], ], - [ - 'name' => 'MuteUserList', - 'in' => 'formData', - 'style' => 'simple', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '禁言详情。', - 'type' => 'array', - 'items' => [ - 'description' => '禁言用户ID列表。', - 'type' => 'string', - 'required' => false, - 'example' => 'qu***,yu1***', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '6EBD1AC4-C34D-4AE1-963E-B688A228BE31'], ], - 'required' => true, + 'description' => '', ], ], - [ - 'name' => 'MuteTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '禁言的时间,单位:秒。'."\n" - ."\n" - .'>如果不传或者传0则采用默认禁言时间(86400秒)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3600', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态不支持,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台未开启,请检查后重试。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidNormType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '规格类型无效,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态有误,请检查后重试。'], ], [ - 'name' => 'OperatorUserId', - 'in' => 'formData', - 'schema' => [ - 'description' => '操作人用户UserId。'."\n" - .'> 该参数需填写且该用户必须是群组的创建者。', - 'type' => 'string', - 'required' => false, - 'example' => 'de1**a0', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], - [ - 'name' => 'BroadCastType', - 'in' => 'formData', - 'schema' => [ - 'description' => '系统消息扩散类型,取值:'."\n" - ."\n" - .'- 0:不扩散。'."\n" - ."\n" - .'- 1:扩散到指定人。'."\n" - ."\n" - .'- 2:扩散到群组。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'Success' => [ - 'description' => '禁言是否成功,取值:'."\n" - ."\n" - .'- true:成功。'."\n" - ."\n" - .'- false:不成功。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], + 'title' => '重启导播台', + 'summary' => '调用RestartCaster重启导播台。', + 'description' => '- 目前仅支持新播单型(轮播台)和通用型导播台,暂不支持虚拟演播厅。'."\n" + ."\n" + .'- 重启导播台后,会重新加载当前配置(如分辨率、横竖屏切换等),恢复之前的播放状态。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RestartCaster'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'live:RestartCaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', - 'title' => '批量禁言消息组内成员(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\n","errorExample":""}]', ], - 'CancelMuteGroupUser' => [ - 'summary' => '调用CancelMuteGroupUser批量取消消息组内禁言成员。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RestartLivePullToPush' => [ + 'summary' => '重启任务接口。', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '257299', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'GroupId', - 'in' => 'formData', + 'name' => 'Region', + 'in' => 'query', 'schema' => [ - 'description' => '消息组ID。', + 'description' => '指定直播中心查询。取值:'."\n" + .'- ap-southeast-1(新加坡)'."\n" + .'- ap-southeast-5(印度尼西亚)'."\n" + .'- cn-beijing(北京)'."\n" + .'- cn-shanghai(上海)', 'type' => 'string', 'required' => true, - 'example' => 'AE35-****-T95F', - ], - ], - [ - 'name' => 'CancelMuteUserList', - 'in' => 'formData', - 'style' => 'simple', - 'schema' => [ - 'description' => '用户ID组。', - 'type' => 'array', - 'items' => [ - 'description' => '取消的禁言用户ID列表。', - 'type' => 'string', - 'required' => false, - 'example' => 'qu***,yu1***', - ], - 'required' => true, + 'enumValueTitles' => ['cn-shenzhen' => '深圳', 'cn-qingdao' => '青岛', 'preregion' => '预发', 'cn-beijing' => '北京', 'cn-shanghai' => '上海', 'ap-southeast-1' => '新加坡', 'eu-central-1' => '德国-法兰克福', 'ap-northeast-1' => '日本-东京', 'ap-southeast-5' => '印度尼西亚', 'me-central-1' => '沙特-利雅得'], + 'example' => 'preregion', + 'enum' => ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-5', 'eu-central-1', 'me-central-1', 'cn-beijing', 'cn-shanghai', 'cn-shenzhen', 'cn-qingdao', 'preregion'], ], ], [ - 'name' => 'OperatorUserId', - 'in' => 'formData', + 'name' => 'TaskId', + 'in' => 'query', 'schema' => [ - 'description' => '操作人用户UserId。'."\n" - .'> 该参数需填写且该用户必须是群组的创建者。', + 'description' => '根据任务ID查询。', 'type' => 'string', - 'required' => false, - 'example' => 'de1**a0', - ], - ], - [ - 'name' => 'BroadCastType', - 'in' => 'formData', - 'schema' => [ - 'description' => '系统消息扩散类型,取值:'."\n" - ."\n" - .'- 0(默认值):不扩散。'."\n" - ."\n" - .'- 1:扩散到指定人。'."\n" - ."\n" - .'- 2:扩散到群组。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', + 'required' => true, + 'example' => '6f869419-0692-4fd5-8cf0-66cab659****', + 'enum' => [], ], ], ], @@ -54838,275 +43562,225 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'Success' => [ - 'description' => '取消禁言是否成功,取值:'."\n" - ."\n" - .'- true:成功。'."\n" - ."\n" - .'- false:不成功。', - 'type' => 'boolean', - 'example' => 'false', - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求id', 'type' => 'string', 'example' => 'a05e6b15-15af-405b-a4a2-01522450****'], + 'TaskId' => ['description' => '新建任务id。', 'type' => 'string', 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": false\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n false\\n \\n","errorExample":""}]', - 'title' => '批量取消消息组内禁言成员(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'CancelMuteAllGroupUser' => [ - 'summary' => '取消消息组用户的静音。', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'LiveServiceNotFound', 'errorMessage' => 'Your account does not open Live service yet', 'description' => '您的账户尚未开通直播服务'], + ['errorCode' => 'InvalidParam.CodeIllegalDuration', 'errorMessage' => '%s.', 'description' => '开始时间应该小于结束时间。'], + ['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => '这个aluid没有直播域名'], + ['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => '任务不存在。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"a05e6b15-15af-405b-a4a2-01522450****\\",\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\"\\n}","type":"json"}]', + 'title' => '重启拉流转推任务', + 'description' => '- 调用本接口重启拉流转推任务。'."\n" + .'- 支持重启运行中(含异常重试状态)或已停止的任务,运行中任务会被停止再启动,未运行中任务会被直接启动。'."\n" + .'- 任务未到设置的开始时间,重启无效。'."\n" + .'- 任务重启会根据任务最新配置执行,会造成推流中断。'."\n" + .'- 点播类型任务被重启后,是根据最新播放列表从头开始播放,用户可以通过调用更新接口设置视频索引和视频播放进度实现续播。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RestartLivePullToPush'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:RestartLivePullToPush', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ResumeLiveStream' => [ + 'summary' => '恢复某条流的推送。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '推流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'GroupId', - 'in' => 'formData', + 'name' => 'LiveStreamType', + 'in' => 'query', 'schema' => [ - 'description' => '群组ID。', + 'description' => '用于指定主播推流或客户端播流。目前支持:**publisher**(主播推流)。', 'type' => 'string', 'required' => true, - 'example' => 'AE35-****-T95F', + 'enumValueTitles' => ['publisher' => '主播推流'], + 'example' => 'publisher', + 'enum' => ['publisher'], ], ], [ - 'name' => 'OperatorUserId', - 'in' => 'formData', - 'schema' => [ - 'description' => '操作员的用户ID。'."\n" - .' > 此参数是必需的,用户必须是组的创建者。', - 'type' => 'string', - 'required' => false, - 'example' => 'de1**a0', - ], + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '推流所属应用名称。可以填为*,表示所有AppName(即不限制AppName)。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'BroadCastType', - 'in' => 'formData', - 'schema' => [ - 'description' => '系统消息扩散类型,取值:'."\n" - ."\n" - .'- 0:不扩散。'."\n" - ."\n" - .'- 1:扩散到指定人。'."\n" - ."\n" - .'- 2:扩散到群组。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '推流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '服务的实际返回结果', - 'type' => 'object', - 'properties' => [ - 'Success' => [ - 'description' => '取消是否成功,取值:'."\n" - ."\n" - .'- true:成功。'."\n" - ."\n" - .'- false:不成功。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16BFE188-B193-4C3C-ADC5-79A7E31486EA'], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', - 'title' => '取消消息组用户的静音(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'LeaveMessageGroup' => [ - 'summary' => '调用LeaveMessageGroup用户退出消息组。', - 'methods' => [ - 'post', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16BFE188-B193-4C3C-ADC5-79A7E31486EA\\n","errorExample":"{\\n \\"RequestId\\":\\"16BFE188-B193-4C3C-ADC5-79A7E31486EA\\"\\n}"}]', + 'title' => '开始或恢复某条直播流的推送', + 'description' => '调用本接口恢复某条推流的推送。本接口目前仅支持publisher(主播推流)。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ResumeLiveStream'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ResumeLiveStream', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'RollbackLiveStagingConfig' => [ + 'summary' => '调用RollbackLiveStagingConfig将灰度环境配置回滚。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], - ], - [ - 'name' => 'GroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'AE35-****-T95F', - ], - ], - [ - 'name' => 'UserId', - 'in' => 'formData', - 'schema' => [ - 'description' => '用户UserId,用户自定义,在AppId下单独唯一。', - 'type' => 'string', - 'required' => true, - 'example' => 'de1**a0', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'BroadCastType', - 'in' => 'formData', - 'schema' => [ - 'description' => '系统消息扩散类型,取值:'."\n" - ."\n" - .'- 0(默认值):不扩散。'."\n" - ."\n" - .'- 1:扩散到指定人。'."\n" - ."\n" - .'- 2:扩散到群组。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名。', 'type' => 'string', 'required' => true, 'example' => 'developer.aliyundoc.com'], ], [ - 'name' => 'BroadCastStatistics', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否扩散统计类消息,打开时在加入消息组后会广播消息组的统计信息,客户端可以接收处理该消息。取值:'."\n" - ."\n" - .'- true:扩散统计类消息。'."\n" - ."\n" - .'- false:不扩散统计类消息。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'name' => 'FunctionName', + 'in' => 'query', + 'schema' => ['description' => '功能名称。获取功能名称,请参见[DescribeLiveDomainStagingConfig](~~297374~~)。', 'type' => 'string', 'required' => true, 'example' => 'aliauth'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'Success' => [ - 'description' => '离开消息组是否成功,取值:'."\n" - ."\n" - .'- true:成功。'."\n" - ."\n" - .'- false:不成功。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', - 'title' => '退出消息组(旧版)', + 'errorCodes' => [ + 404 => [ + ['errorCode' => 'StagingConfig.NotFound', 'errorMessage' => 'The staging configuration does not exist.', 'description' => ''], + ], + ], + 'title' => '将灰度环境配置回滚', 'description' => '## 使用说明'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'SendLike' => [ - 'summary' => '调用SendLike设置系统点赞消息。', - 'methods' => [ - 'post', + .'先通过[DescribeLiveDomainStagingConfig接口](~~297374~~)获取功能名称,再调用本接口将灰度环境配置回滚。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RollbackLiveStagingConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:RollbackLiveStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n04F0F334-1335-436C-A1D7-6C044FE73368\\r\\n","errorExample":""}]', + ], + 'SendLike' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -55114,74 +43788,41 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'AppId', 'in' => 'formData', - 'schema' => [ - 'title' => '应用ID。', - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'schema' => ['title' => '应用ID。', 'description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], [ 'name' => 'GroupId', 'in' => 'formData', - 'schema' => [ - 'title' => '消息组ID。', - 'description' => '消息组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'AE35-****-T95F', - ], + 'schema' => ['title' => '消息组ID。', 'description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], ], [ 'name' => 'OperatorUserId', 'in' => 'formData', - 'schema' => [ - 'title' => '操作者ID。示例值:testUserId。', - 'description' => '操作人用户ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'de1**a0', - ], + 'schema' => ['title' => '操作者ID。示例值:testUserId。', 'description' => '操作人用户ID。', 'type' => 'string', 'required' => false, 'example' => 'de1**a0'], ], [ 'name' => 'Count', 'in' => 'formData', - 'schema' => [ - 'title' => '点赞数。示例值:1。', - 'description' => '点赞数量。', - 'type' => 'string', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['title' => '点赞数。示例值:1。', 'description' => '点赞数量。', 'type' => 'string', 'required' => true, 'example' => '10'], ], [ 'name' => 'BroadCastType', 'in' => 'formData', - 'schema' => [ - 'title' => '系统消息广播类型,取值0,1,2.'."\n" - .'0:不广播。'."\n" - .'1:广播至消息组指定成员。'."\n" - .'2:广播至消息组。', - 'description' => '系统消息扩散类型,取值:'."\n" - ."\n" - .'- 0:不扩散。'."\n" - ."\n" - .'- 1:扩散到指定人。'."\n" - ."\n" - .'- 2:扩散到群组。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['title' => '系统消息广播类型,取值0,1,2.'."\n" + .'0:不广播。'."\n" + .'1:广播至消息组指定成员。'."\n" + .'2:广播至消息组。', 'description' => '系统消息扩散类型,取值:'."\n" + ."\n" + .'- 0:不扩散。'."\n" + ."\n" + .'- 1:扩散到指定人。'."\n" + ."\n" + .'- 2:扩散到群组。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], ], ], 'responses' => [ @@ -55191,298 +43832,324 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], 'Result' => [ 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'LikeCount' => [ - 'description' => '点赞数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], + 'LikeCount' => ['description' => '点赞数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], ], ], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"LikeCount\\": 10\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 10\\n \\n","errorExample":""}]', 'title' => '设置点赞消息(旧版)', + 'summary' => '调用SendLike设置系统点赞消息。', 'description' => '## QPS限制'."\n" .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'SendMessageToGroup' => [ - 'summary' => '调用SendMessageToGroup向消息组全员发送消息。', - 'methods' => [ - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendLike'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:SendLike', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"LikeCount\\": 10\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 10\\n \\n","errorExample":""}]', + ], + 'SendLiveMessageGroup' => [ + 'summary' => '发送消息到群组。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '198196', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'in' => 'query', + 'schema' => ['description' => '接收消息的互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ 'name' => 'GroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'AE35-****-T95F', - ], + 'in' => 'query', + 'schema' => ['description' => '接收消息的GroupId。'."\n" + .'> 请确保传入的GroupId是存在的!否则会返回ResourceNotExist错误。', 'type' => 'string', 'required' => true, 'example' => 'grouptest', 'minLength' => 1], ], [ - 'name' => 'OperatorUserId', - 'in' => 'formData', - 'schema' => [ - 'description' => '操作人用户ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'de1**a0', - ], + 'name' => 'SenderId', + 'in' => 'query', + 'schema' => ['description' => '发送消息的用户ID,由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'required' => true, 'example' => 'uid1'], ], [ - 'name' => 'Type', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息类型。type字段值小于等于10000时表示系统消息,大于10000时表示自定义消息。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '12000', - ], + 'name' => 'SenderMetaInfo', + 'in' => 'query', + 'schema' => ['description' => '发送消息用户的扩展信息,长度不超过512字节。', 'type' => 'string', 'required' => false, 'example' => 'uid1meta1'], ], [ - 'name' => 'Data', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息体,JSONString类型。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'name' => 'Body', + 'in' => 'query', + 'schema' => ['description' => '消息体,长度不超过15KB。', 'type' => 'string', 'required' => false, 'example' => 'hello,group'], ], [ - 'name' => 'SkipAudit', + 'name' => 'MsgType', 'in' => 'query', - 'schema' => [ - 'description' => '当前消息内容是否需要阿里云内容安全审核。取值:'."\n" - ."\n" - .'- **true**: 不需要安全审核。'."\n" - ."\n" - .'- **false**(默认值):需要安全审核。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '消息类型,单群内发送消息的总类型数不超过30种。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'MsgTid', + 'in' => 'query', + 'schema' => ['description' => '消息唯一标识,可作为删除消息的依据。由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'required' => false, 'example' => '169830****'], + ], + [ + 'name' => 'StaticsIncrease', + 'in' => 'query', + 'schema' => ['title' => '该消息对于该类消息数量的统计增长值贡献,默认值为1', 'description' => '该消息对于该类消息数量的统计增长值贡献,默认值为1。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'Weight', + 'in' => 'query', + 'schema' => ['title' => '消息权重,权重越高,缓存优先级越高,缓存时间越长,默认值为1', 'description' => '消息权重,默认值为 1。'."\n" + .'- 对于点赞等低优消息,可设置权重为 1;'."\n" + .'- 对于弹幕等普通文本消息,可设置权重为 5;'."\n" + .'- 对于红包、礼物等高优消息,可设置权重为 1000000。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'NoStorage', + 'in' => 'query', + 'schema' => ['title' => '是否要存储消息,默认为false表示需要存储。', 'description' => '设置不存储该消息。默认为 false,表示存储(当前时效30天),可以通过获取查询群组消息查到该消息。如果您的业务不需要存储该消息,请设置为true。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'NoCache', + 'in' => 'query', + 'schema' => ['title' => '是否要缓存消息,默认为false表示需要缓存。', 'description' => '设置不缓存该消息到最近消息列表中。默认为false,表示缓存到群组最近消息列表中。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'DataCenter', + 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'MessageId' => [ - 'title' => '用于长连接建连的token', - 'description' => '消息ID。', - 'type' => 'string', - 'example' => 'qt***', - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'E4C1245F-597B-1BD1-B9BB-9D220E99****'], + 'MsgTid' => ['description' => '消息唯一标识,可作为删除消息的依据。由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'example' => '169830****'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"MessageId\\": \\"qt***\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n qt***\\n \\n","errorExample":""}]', - 'title' => '向消息组全员发送消息(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'SendMessageToGroupUsers' => [ - 'summary' => '调用SendMessageToGroupUsers向消息组内指定用户发送消息。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ['errorCode' => 'ErrorTooManyMsgTypes', 'errorMessage' => '%s.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'operationType' => 'read', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '发送消息到群组', + 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。发送消息到群组,目标群组需要是激活状态,即当前群组中有用户已加入,才能正常往群组发送消息。不支持离线消息,如果遇到发送消息失败,请先确认当前群组中是否有用户。若需离线发送,建议将先消息存在本地,待用户上线后重新发送。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-01-23T12:00:00.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2025-01-13T05:40:40.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-01-09T03:34:27.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2023-12-13T07:06:40.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendLiveMessageGroup'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:SendLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E4C1245F-597B-1BD1-B9BB-9D220E99****\\",\\n \\"MsgTid\\": \\"169830****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n E4C1245F-597B-1BD1-B9BB-9D220E99****\\n","errorExample":""}]', + ], + 'SendLiveMessageUser' => [ + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '194332', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'in' => 'query', + 'schema' => ['description' => '发送消息的互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'GroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'AE35-****-T95F', - ], + 'name' => 'ReceiverId', + 'in' => 'query', + 'schema' => ['title' => '消息接收用户的Id', 'description' => '接收消息的用户ID,由大小写字母、数字组成,长度不超过64字节。'."\n" + ."\n" + .'> 请确保接收消息的用户的状态为在线!可以通过调用CheckLiveMessageUsersOnline来查询该用户状态。', 'type' => 'string', 'required' => true, 'example' => 'uid2'], ], [ - 'name' => 'Type', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息类型。type字段值小于等于10000时表示系统消息,大于10000时表示自定义消息。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '12000', - ], + 'name' => 'SenderId', + 'in' => 'query', + 'schema' => ['title' => '消息发送用户的Id', 'description' => '发送消息的用户ID,由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'required' => true, 'example' => 'uid1'], ], [ - 'name' => 'OperatorUserId', - 'in' => 'formData', - 'schema' => [ - 'description' => '操作人用户ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'de1**a0', - ], + 'name' => 'SenderInfo', + 'in' => 'query', + 'schema' => ['title' => '消息发送用户扩展信息', 'description' => '发送消息用户的扩展信息,长度不超过512字节。', 'type' => 'string', 'required' => false, 'example' => 'uid1meta1'], ], [ - 'name' => 'ReceiverIdList', - 'in' => 'formData', - 'style' => 'simple', - 'schema' => [ - 'description' => '用户列表。', - 'type' => 'array', - 'items' => [ - 'description' => '接受消息的用户ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'hj***,3h***', - ], - 'required' => false, - ], + 'name' => 'Body', + 'in' => 'query', + 'schema' => ['title' => '消息体', 'description' => '消息体,长度不超过15KB。', 'type' => 'string', 'required' => false, 'example' => 'hello, user'], ], [ - 'name' => 'Data', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息体,JSONString类型。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'name' => 'MsgType', + 'in' => 'query', + 'schema' => ['title' => '消息类型', 'description' => '消息类型。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '2'], ], [ - 'name' => 'SkipAudit', + 'name' => 'MsgTid', 'in' => 'query', - 'schema' => [ - 'description' => '当前消息内容是否需要阿里云内容安全审核。取值:'."\n" - ."\n" - .'- **true**: 不需要安全审核。'."\n" - ."\n" - .'- **false**(默认值):需要安全审核。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['title' => '消息标识', 'description' => '消息唯一标识,可作为删除消息的依据。由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'required' => false, 'example' => '169830****'], + ], + [ + 'name' => 'DataCenter', + 'in' => 'query', + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], + ], + [ + 'name' => 'HighReliability', + 'in' => 'query', + 'schema' => ['description' => '设置该条消息是否为高可靠消息。高可靠消息确保接收方已收到该条消息并响应才会返回成功,如果接收方在3s内未响应会返回发送失败。'."\n" + .'- true:表示高可靠消息。'."\n" + .'- false(默认):表示非高可靠消息。'."\n" + ."\n" + .'> 客户端SDK v1.5.1 及以上版本才支持此参数,发消息给老版本客户端时不等待ACK直接返回成功。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'Storage', + 'in' => 'query', + 'schema' => ['description' => '设置存储该消息。'."\n" + .'- true:表示存储该消息。'."\n" + .'- false(默认),表示不需要存储。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'MessageId' => [ - 'title' => '用于长连接建连的token', - 'description' => '消息ID。', - 'type' => 'string', - 'example' => 'hp***', - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****'], + 'MsgTid' => ['description' => '消息唯一标识,可作为删除消息的依据。由大小写字母、数字组成,长度不超过64字节。', 'type' => 'string', 'example' => '169830****'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"MessageId\\": \\"hp***\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n hp***\\n \\n","errorExample":""}]', - 'title' => '向消息组内指定用户发送消息(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'ListMessage' => [ - 'summary' => '查询消息列表。', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ], + 403 => [ + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], + ], + 408 => [ + ['errorCode' => 'UserNotAck', 'errorMessage' => '%s.', 'description' => '发高可靠消息给用户 ,用户未响应'], + ], + 500 => [ + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '发送消息给指定用户', + 'summary' => '发送消息给指定用户,用户身份由ReceiverId标识。', + 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-01-23T12:00:01.000Z', 'description' => '错误码发生变更、请求参数发生变更、响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendLiveMessageUser'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:SendLiveMessageUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6CFDE7AB-571A-14EA-B072-989FF753****\\",\\n \\"MsgTid\\": \\"169830****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 6CFDE7AB-571A-14EA-B072-989FF753****\\n","errorExample":""}]', + ], + 'SendMessageToGroup' => [ + 'summary' => '调用SendMessageToGroup向消息组全员发送消息。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -55490,77 +44157,41 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'GroupId', + 'name' => 'AppId', 'in' => 'formData', - 'schema' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'AE35-****-T95F', - ], + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], [ - 'name' => 'AppId', + 'name' => 'GroupId', 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'schema' => ['description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], ], [ - 'name' => 'Type', + 'name' => 'OperatorUserId', 'in' => 'formData', - 'schema' => [ - 'description' => '用户自定义消息类型,需大于10000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10002', - ], + 'schema' => ['description' => '操作人用户ID。', 'type' => 'string', 'required' => true, 'example' => 'de1**a0'], ], [ - 'name' => 'SortType', + 'name' => 'Type', 'in' => 'formData', - 'schema' => [ - 'description' => '排列方式,取值:'."\n" - ."\n" - .'- 0:时间递增顺序。'."\n" - ."\n" - .'- 1:时间递减顺序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '消息类型。type字段值小于等于10000时表示系统消息,大于10000时表示自定义消息。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '12000'], ], [ - 'name' => 'PageNum', + 'name' => 'Data', 'in' => 'formData', - 'schema' => [ - 'description' => '页码,默认值:1。取值范围:1~100000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '消息体,JSONString类型。', 'type' => 'string', 'required' => true, 'example' => 'test'], ], [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '单页显示用户的数量,默认值:20。取值范围:1~50。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '20', - ], + 'name' => 'SkipAudit', + 'in' => 'query', + 'schema' => ['description' => '当前消息内容是否需要阿里云内容安全审核。取值:'."\n" + ."\n" + .'- **true**: 不需要安全审核。'."\n" + ."\n" + .'- **false**(默认值):需要安全审核。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ @@ -55570,80 +44201,48 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], 'Result' => [ 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'HasMore' => [ - 'description' => '是否还有下一页,取值:'."\n" - ."\n" - .'- true:有下一页。'."\n" - ."\n" - .'- false:没有下一页。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'MessageList' => [ - 'description' => '消息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Data' => [ - 'description' => '消息体,JSONString类型。', - 'type' => 'string', - 'example' => 'test', - ], - 'GroupId' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'example' => 'AE35-****-T95F', - ], - 'MessageId' => [ - 'description' => '消息ID。', - 'type' => 'string', - 'example' => 'qt***', - ], - 'SenderId' => [ - 'description' => '消息发送者ID。', - 'type' => 'string', - 'example' => 'yi***', - ], - 'Type' => [ - 'description' => '消息类型。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10002', - ], - ], - ], - ], + 'MessageId' => ['title' => '用于长连接建连的token', 'description' => '消息ID。', 'type' => 'string', 'example' => 'qt***'], ], ], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"HasMore\\": false,\\n \\"MessageList\\": [\\n {\\n \\"Data\\": \\"test\\",\\n \\"GroupId\\": \\"AE35-****-T95F\\",\\n \\"MessageId\\": \\"qt***\\",\\n \\"SenderId\\": \\"yi***\\",\\n \\"Type\\": 10002\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n false\\n \\n AE35-****-T95F\\n qt***\\n 10002\\n yi***\\n test\\n \\n \\n","errorExample":""}]', - 'title' => '查询消息列表(旧版)', + 'title' => '向消息组全员发送消息(旧版)', 'description' => '## QPS限制'."\n" .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'ListMessageGroupUserById' => [ - 'summary' => '调用ListMessageGroupUserById通过用户ID列表查询用户信息。', - 'methods' => [ - 'post', + 'changeSet' => [ + ['createdAt' => '2023-03-14T02:59:22.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2022-12-04T11:00:37.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-09-08T15:22:52.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:SendMessageToGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"MessageId\\": \\"qt***\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n qt***\\n \\n","errorExample":""}]', + ], + 'SendMessageToGroupUsers' => [ + 'summary' => '调用SendMessageToGroupUsers向消息组内指定用户发送消息。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -55651,51 +44250,53 @@ ], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'AppId', 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], [ 'name' => 'GroupId', 'in' => 'formData', - 'schema' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'AE35-****-T95F', - ], + 'schema' => ['description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], ], [ - 'name' => 'UserIdList', + 'name' => 'Type', + 'in' => 'formData', + 'schema' => ['description' => '消息类型。type字段值小于等于10000时表示系统消息,大于10000时表示自定义消息。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '12000'], + ], + [ + 'name' => 'OperatorUserId', + 'in' => 'formData', + 'schema' => ['description' => '操作人用户ID。', 'type' => 'string', 'required' => true, 'example' => 'de1**a0'], + ], + [ + 'name' => 'ReceiverIdList', 'in' => 'formData', 'style' => 'simple', 'schema' => [ 'description' => '用户列表。', 'type' => 'array', - 'items' => [ - 'description' => '用户ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'de1**a0', - ], - 'required' => true, + 'items' => ['description' => '接受消息的用户ID。', 'type' => 'string', 'required' => false, 'example' => 'hj***,3h***'], + 'required' => false, ], ], + [ + 'name' => 'Data', + 'in' => 'formData', + 'schema' => ['description' => '消息体,JSONString类型。', 'type' => 'string', 'required' => true, 'example' => 'test'], + ], + [ + 'name' => 'SkipAudit', + 'in' => 'query', + 'schema' => ['description' => '当前消息内容是否需要阿里云内容安全审核。取值:'."\n" + ."\n" + .'- **true**: 不需要安全审核。'."\n" + ."\n" + .'- **false**(默认值):需要安全审核。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], ], 'responses' => [ 200 => [ @@ -55704,833 +44305,727 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], 'Result' => [ 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'HasMore' => [ - 'description' => '是否还有下一页,取值:'."\n" - ."\n" - .'- true:有下一页。'."\n" - ."\n" - .'- false:没有下一页。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Total' => [ - 'description' => '查询到的用户总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'UserList' => [ - 'description' => '用户列表信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'IsMute' => [ - 'description' => '用户是否被禁言。取值:'."\n" - ."\n" - .'- true:禁言。'."\n" - ."\n" - .'- false:没禁言。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'MuteBy' => [ - 'description' => '禁言类型,取值:'."\n" - ."\n" - .'- group:消息组全员禁言。'."\n" - ."\n" - .'- user:单个用户禁言。', - 'type' => 'array', - 'items' => [ - 'description' => '禁言类型,取值:'."\n" - ."\n" - .'- group:消息组全员禁言。'."\n" - ."\n" - .'- user:单个用户禁言。', - 'type' => 'string', - 'example' => 'user', - ], - ], - 'UserAvatar' => [ - 'description' => '用户头像地址。', - 'type' => 'string', - 'example' => '"http://www.aliyundoc.com/xxyy.png"', - ], - 'UserExtension' => [ - 'description' => '用户信息自定义内容。', - 'type' => 'string', - 'example' => '12e', - ], - 'UserId' => [ - 'description' => '用户ID。', - 'type' => 'string', - 'example' => 'ad***', - ], - 'UserNick' => [ - 'description' => '用户昵称。', - 'type' => 'string', - 'example' => 'xxyy', - ], - ], - ], - ], + 'MessageId' => ['title' => '用于长连接建连的token', 'description' => '消息ID。', 'type' => 'string', 'example' => 'hp***'], ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => 'Parameter invalid.', - ], + 'title' => '向消息组内指定用户发送消息(旧版)', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2023-03-28T07:17:22.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2022-12-05T08:42:18.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-12-04T11:00:37.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendMessageToGroupUsers'], ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:SendMessageToGroupUsers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"HasMore\\": false,\\n \\"Total\\": 3,\\n \\"UserList\\": [\\n {\\n \\"IsMute\\": true,\\n \\"MuteBy\\": [\\n \\"user\\"\\n ],\\n \\"UserAvatar\\": \\"\\\\\\"http://www.aliyundoc.com/xxyy.png\\\\\\"\\",\\n \\"UserExtension\\": \\"12e\\",\\n \\"UserId\\": \\"ad***\\",\\n \\"UserNick\\": \\"xxyy\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 3\\n false\\n \\n ad***\\n xxyy\\n \\"http://www.aliyundoc.com/xxyy.png\\"\\n 12e\\n true\\n user\\n \\n \\n","errorExample":""}]', - 'title' => '通过用户ID查询用户信息(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"MessageId\\": \\"hp***\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n hp***\\n \\n","errorExample":""}]', ], - 'BatchGetOnlineUsers' => [ - 'summary' => '根据一个或多个用户uid查询用户是否在线', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SetCasterChannel' => [ + 'summary' => '设置导播台通道。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'a494caec-***-695ef345db77', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'GroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'required' => true, - 'example' => '23wcaec-***695ef', - ], + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], [ - 'name' => 'UserIds', - 'in' => 'formData', - 'schema' => [ - 'description' => '用户UserId列表。多个UserId之间用半角逗号(,)分隔。最多配置20个UserId。', - 'type' => 'string', - 'required' => true, - 'example' => 'de1**a0,hu**9', - ], + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => ['description' => '通道ID。'."\n" + ."\n" + .'布局画面的引用编号,每个通道位置至多设置一个资源,数量受限于导播台创建时的通道路数。格式符合“RV01~RV12”。', 'type' => 'string', 'required' => true, 'example' => 'RV01'], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => ['description' => '视频源ID。', 'type' => 'string', 'required' => false, 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****'], + ], + [ + 'name' => 'SeekOffset', + 'in' => 'query', + 'schema' => ['description' => '仅对文件视频有效,直播源无效,必须大于或等于0,表示从相对于首帧的偏差时间作为开始读取的位置。 单位:毫秒(ms)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1000'], + ], + [ + 'name' => 'PlayStatus', + 'in' => 'query', + 'schema' => ['description' => '播放状态。仅对文件视频有效,直播源无效。 取值: '."\n" + .' '."\n" + .'- **1**(默认值):播放。'."\n" + .'- **0**:暂停。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'FaceBeauty', + 'in' => 'query', + 'schema' => ['description' => '人脸美颜。具体包括:0(whole)、1(磨皮)、2(美白)、3(去除黑眼圈)、4(法令纹)。', 'type' => 'string', 'required' => false, 'example' => '0'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果', - 'type' => 'object', - 'properties' => [ - 'OnlineUsers' => [ - 'description' => '对象数组', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'JoinTime' => [ - 'description' => '加入消息组的UTC时间戳。单位:毫秒', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12**45', - ], - 'Online' => [ - 'description' => '是否在线, 取值:'."\n" - ."\n" - .'- **true**:在线。'."\n" - ."\n" - .'- **false**:不在线。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'UserId' => [ - 'description' => '用户UserId。', - 'type' => 'string', - 'example' => 'de1**a0', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => 'User not authorized to operate on the specified resource.', - ], + 400 => [ + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'DuplicateLocationID', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数LocationID重复,请检查后重试。'], + ['errorCode' => 'InvalidParameter.PlayStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PlayStatus无效,请检查后重试。'], + ['errorCode' => 'InvalidChannelId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChannelId无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.SeekOffset', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SeekOffset无效,请检查后重试。'], + ['errorCode' => 'IncorrectChannel.Disable', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Channel处于不可设置状态,请检查后重试。'], + ['errorCode' => 'ResourceOfChannelExist', 'errorMessage' => '%s, please check and try again later.', 'description' => '通道中已存在资源,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"OnlineUsers\\": [\\n {\\n \\"JoinTime\\": 0,\\n \\"Online\\": true,\\n \\"UserId\\": \\"de1**a0\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n \\n de1**a0\\n true\\n \\n \\n","errorExample":""}]', - 'title' => '查询用户是否在线(旧版)', - 'description' => '## 使用说明'."\n" - ."\n" - .'该接口支持批量查询,每次最多可以查询20个用户是否在线。'."\n" - ."\n" + 'title' => '设置导播台通道', + 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口设置导播台通道。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'ListMuteGroupUser' => [ - 'summary' => '调用ListMuteGroupUser查询被禁言的消息组成员列表。', - 'methods' => [ - 'post', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetCasterChannel'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetCasterChannel', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n}"}]', + ], + 'SetCasterConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '107215', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'VKL3***', - ], + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'GroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => '消息组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'AE35-****-T95F', - ], + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster](~~2848009~~)接口创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], ], [ - 'name' => 'PageNum', - 'in' => 'formData', - 'schema' => [ - 'description' => '页码,默认值:1。取值范围:1~100000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'name' => 'CasterName', + 'in' => 'query', + 'schema' => ['description' => '导播台名称。', 'type' => 'string', 'required' => false, 'example' => 'liveCaster****'], ], [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '单页显示用户的数量,默认值:20。取值范围:1~50。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '20', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。'."\n" + ."\n" + .'请您在导播台启动前完成域名配置。 若该参数为空,默认清除导播台域名配置。 ', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'OperatorUserId', - 'in' => 'formData', - 'schema' => [ - 'description' => '操作人用户UserId。该用户必须是群组的创建者。', - 'type' => 'string', - 'required' => false, - 'example' => 'de1**a0', - ], + 'name' => 'TranscodeConfig', + 'in' => 'query', + 'schema' => ['description' => '转码配置。 '."\n" + ."\n" + .'JSON格式字符串,结构体内部字段请按首字母大写,驼峰格式输入。 若该参数设置为空,默认清除转码配置, 当转码模板为空的时候,导播台启动时会报错。', 'type' => 'string', 'required' => false, 'example' => '{"casterTemplate": "lp_ld"}'], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - 'Result' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'HasMore' => [ - 'description' => '是否还有下一页,取值:'."\n" - ."\n" - .'- true:有下一页。'."\n" - ."\n" - .'- false:没有下一页。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Total' => [ - 'description' => '禁言成员总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'UserList' => [ - 'description' => '禁言用户列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'UserId' => [ - 'description' => '禁言用户ID。', - 'type' => 'string', - 'example' => '1sd***,yu***', - ], - ], - ], - ], - ], - ], + [ + 'name' => 'RecordConfig', + 'in' => 'query', + 'schema' => ['description' => '录制配置信息。格式为JSON。配置元素信息如下:'."\n" + ."\n" + .'- **endpoint**:阿里云服务的API服务端地址。'."\n" + .'- **ossBucket**:ossBucket名称。'."\n" + .'- **videoFormat**:支持导出的视频文件格式,例如:`[{\\"OssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{StartTime}_{EndTime}\\",\\"Format\\":\\"m3u8\\",\\"CycleDuration\\":21600,\\"SliceOssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{UnixTimestamp}\\"},{\\"OssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{StartTime}_{EndTime}\\",\\"Format\\":\\"flv\\",\\"CycleDuration\\":21600}]`。'."\n" + .'- **interval**:时间间隔,单位为毫秒(ms)。'."\n" + ."\n" + .'>参数设置为空时表示不启用录制功能。 若该参数置为空,默认清除录制配置。 ', 'type' => 'string', 'required' => false, 'example' => '{ "endpoint": "http://oss-cn-********.aliyuncs.com/api", "ossBucket****": "liveBucket****", "VideoFormat":[{\\"OssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{StartTime}_{EndTime}\\",\\"Format\\":\\"m3u8\\",\\"CycleDuration\\":21600,\\"SliceOssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{UnixTimestamp}\\"},{\\"OssObjectPrefix\\":\\"record/{AppName}/{StreamName}/{StartTime}_{EndTime}\\",\\"Format\\":\\"flv\\",\\"CycleDuration\\":21600}] "interval": 5 }'], + ], + [ + 'name' => 'Delay', + 'in' => 'query', + 'schema' => ['description' => '延时播放。时间单位:秒。'."\n" + ."\n" + .'- **0**(默认值):禁用延时。'."\n" + .'- 大于**0**:启用延时。'."\n" + .'- **空**:默认清除延播配置。'."\n" + .'> 最大可支持设置300秒。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'UrgentMaterialId', + 'in' => 'query', + 'schema' => ['description' => '备播视频,媒资库素材ID。若该参数置为空,默认清除备播配置。', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671'], + ], + [ + 'name' => 'UrgentLiveStreamUrl', + 'in' => 'query', + 'schema' => ['description' => '备播直播流URL。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://demo.aliyundoc.com'], + ], + [ + 'name' => 'SideOutputUrl', + 'in' => 'query', + 'schema' => ['description' => '用户自定义导播台旁路输出地址对应的推流地址。 '."\n" + .'若该参数为空,则默认使用阿里云自动生成的输出地址对应的推流地址。'."\n" + .'> 目前sideoutputUrl只支持rtmp协议推流。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://****/aliyundoc.com:8000/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****'], + ], + [ + 'name' => 'SideOutputUrlList', + 'in' => 'query', + 'schema' => ['description' => '多路转推流地址列表,可以是阿里云或第三方厂商的CDN推流地址,一个导播台最多支持添加20个RTMP转推地址。'."\n" + ."\n\n" + .'> 多个地址用["rtmp://domain/app1/stream1","rtmp://domain/app2/stream2"]数组格式。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://domain/app/stream?***'], + ], + [ + 'name' => 'CallbackUrl', + 'in' => 'query', + 'schema' => ['description' => '用户回调地址。若需要接收回调通知,请输入可用的接收地址,接受HTTP协议。 若该参数置为空,默认取消导播台回调通知。'."\n" + .'> 导播台回调详细信息,请参见[云导播回调信息说明](~~213633~~)。', 'type' => 'string', 'required' => false, 'example' => 'http://****/aliyundoc.com:8000/caster/4a82a3d1b7f0462ea37348366201****?auth_key=1608953344-0-0-53f0758162964516ac850f2ddc3f****'], + ], + [ + 'name' => 'ProgramEffect', + 'in' => 'query', + 'schema' => ['description' => '轮播生效标志。 '."\n" + ."\n" + .'- **0**:不生效。'."\n" + .'- **1**:生效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'ProgramName', + 'in' => 'query', + 'schema' => ['description' => '轮播台名称,若使用轮播功能时可配置。', 'type' => 'string', 'required' => false, 'example' => 'program_name'], + ], + [ + 'name' => 'ChannelEnable', + 'in' => 'query', + 'schema' => ['description' => '是否启用Channel。 '."\n" + .' '."\n" + .'- **0**(默认):不启用。'."\n" + .'- **1**:启用。 '."\n" + ."\n" + .'> 默认不启用,且启用后不可取消;不启用时Resource直接被布局引用,首次开启Channel需要在导播台停止的状态下进行,之前已存在的布局将被废弃,Resource需要首先设置到Channel中,新增的布局直接引用Channel,通过Channel可调整视频源播放进度和播放状态,该模式下视频源、PVW、PGM三区域若引用同一Resource,则对应画面将保持同步。 ', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'SyncGroupsConfig', + 'in' => 'query', + 'schema' => ['description' => '多视角同步配置,让多个视频源同步。'."\n" + .'多视角同步分为两个模式:'."\n" + ."\n" + .'- mode: 0(主播模式,多个视频源根据指定的模式同步。)'."\n" + ."\n" + .'- mode: 1(会议模式,没有主播视频的概念,所有视频源相互同步。)'."\n" + ."\n\n" + ."\n" + .'主播模式:hostResourceId:主播模式下的主播视频源'."\n" + ."\n" + .'会议模式:没有hostRsoureId 字段,只提供需要提供的resourceIds 中的资源ids'."\n", 'type' => 'string', 'required' => false, 'example' => '"[{\\"mode\\":0,\\"resourceIds\\":[\\"5a6c1c33-8424-46f6-813c-c152220a****\\",\\"4e6521dc-a40a-4077-b6bf-1fb12a76****\\"],\\"hostResourceId\\":\\"3aa2b39a-fd0e-4b8c-be73-b7af31c4****\\"}]"'], + ], + [ + 'name' => 'UrgentImageId', + 'in' => 'query', + 'schema' => ['description' => '备播媒资库图片素材ID。', 'type' => 'string', 'required' => false, 'example' => 'a089175eb5f4427684fc0715159a****'], + ], + [ + 'name' => 'UrgentImageUrl', + 'in' => 'query', + 'schema' => ['description' => '备播图片素材URL。', 'type' => 'string', 'required' => false, 'example' => 'http://learn.aliyundoc.com/AppName/image.jpg'], + ], + [ + 'name' => 'AutoSwitchUrgentOn', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => '开启断流自动切换备播。'."\n" + .'- **true**:开启。'."\n" + .'- **false**:关闭。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'AutoSwitchUrgentConfig', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => '自动切备播配置。'."\n" + .'`eofThres`:表示断流时间后自动切备播,单位为秒。', 'type' => 'string', 'required' => false, 'example' => '{"eofThres":3}'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'CasterId' => ['description' => '导播台ID。可作为查询导播台流地址、启动导播台、添加导播台视频资源、添加导播台布局、查询导播台布局列表、添加导播台组件和添加导播台节目单的请求参数。', 'type' => 'string', 'example' => 'b4810848-bcf9-4aef-bd4a-e6bba2d9****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"HasMore\\": false,\\n \\"Total\\": 2,\\n \\"UserList\\": [\\n {\\n \\"UserId\\": \\"1sd***,yu***\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n 2\\n false\\n \\n 1sd***,yu***\\n \\n \\n","errorExample":""}]', - 'title' => '查询被禁言的消息组成员(旧版)', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'CreateLiveMessageApp' => [ - 'summary' => '调用CreateLiveMessageApp创建互动消息应用。', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'IncorrectCasterStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态为已开启,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidCaster.ChannelDisableUnsupported', 'errorMessage' => '%s, please check.', 'description' => '不支持关闭已启用的Channel。'], + ['errorCode' => 'IncorrectCasterStatus.EnableChannel', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态不支持EnableChannel设置,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '访问拒绝,请检查后重试。'], + ], + [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], + ], + ], + 'title' => '设置导播台配置', + 'summary' => '调用本接口对导播台进行详细配置,包括导播台的名称、转码配置、录制配置等参数信息。', + 'description' => '先通过[CreateCaster](~~2848009~~)接口创建导播台,再调用本接口对导播台进行详细配置。此接口将会全面替换现有的配置信息,如果您将某个参数设置为空,则会清除该参数在导播台中的现有配置。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-08-21T03:33:21.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-11-22T01:24:18.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2023-03-31T08:26:54.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetCasterConfig'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetCasterConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CasterId\\": \\"b4810848-bcf9-4aef-bd4a-e6bba2d9****\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\tb4810848-bcf9-4aef-bd4a-e6bba2d9****\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"casterId\\": \\"b4810848-bcf9-4aef-bd4a-e6bba2d966c8\\"\\n}"}]', + ], + 'SetCasterSceneConfig' => [ + 'summary' => '全量设置场景配置,清空场景配置,并将布局信息设置并生效至指定场景。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '198173', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '应用名,长度2~16个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'testApp', - ], - ], - [ - 'name' => 'AuditType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '安全审核方式:0为不开启安全审核,1为内置安全审核, 2为自定义安全审核', - 'description' => '安全审核方式,取值:'."\n" - .'- 0:默认值,不开启安全审核。'."\n" - .'- 1:内置安全审核。'."\n" - .'- 2:自定义安全审核。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - 'enum' => [ - '0', - '1', - '2', - ], - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'AuditUrl', + 'name' => 'ComponentId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'title' => '如果是自定义安全审核,则需要提供安全审核的地址', - 'description' => '如果是自定义安全审核(AuditType=2),则需要提供安全审核的地址。安全审核地址以http://或https://开头,不包含私有IP,不允许带端口号。自定义安全审核内容格式见下文。', - 'type' => 'string', + 'description' => '组件ID列表,数组内按照由下至上的顺序排列组件。'."\n" + ."\n" + .'>N表示第几个的意思。例如:
ComponentId.1表示第一个组件ID,
ComponentId.2表示第二个组件ID。', + 'type' => 'array', + 'items' => ['description' => '组件ID列表,数组内按照由下至上的顺序排列组件。'."\n" + ."\n" + .'>N表示第几个的意思。例如:
ComponentId.1表示第一个组件ID,
ComponentId.2表示第二个组件ID。', 'type' => 'string', 'required' => false, 'example' => '[ "a2b8e671-2fe5-4642-a2ec-bf931826****", "a2b8e671-2fe5-4642-a2ec-28374657****"]'], 'required' => false, - 'example' => 'http://demo.aliyundoc.com/exampleaudit', + 'example' => '[ "a2b8e671-2fe5-4642-a2ec-bf931826****", "a2b8e671-2fe5-4642-a2ec-28374657****"]', + 'maxItems' => 10, ], ], [ - 'name' => 'EventCallbackUrl', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'title' => '用户登录、登出,加入、离开群组等事件回调地址,若为空则不开启事件回调', - 'description' => '客户端登录、登出、加入、离开群组等事件回调地址,若为空则不开启事件回调。触发回调接口见[客户端接入](~~2672836~~)。事件回调地址以http://或https://开头,不包含私有IP,不允许带端口号。事件回调格式和回调鉴权逻辑见下文。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://demo.aliyundoc.com/examplecallback', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****'], ], [ - 'name' => 'DataCenter', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,枚举值:'."\n" - .'- cn-shanghai:默认值,上海。'."\n" - .'- ap-southeast-1:新加坡。'."\n" - ."\n" - .'> 调用直播互动其他接口时,需要与当前创建直播互动应用的数据中心一致。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '场景ID。', 'type' => 'string', 'required' => true, 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****'], ], [ - 'name' => 'MsgLifeCycle', + 'name' => 'LayoutId', 'in' => 'query', - 'schema' => [ - 'description' => 'App内群组消息的存储时效档位,取值:'."\n" - .'- 0:默认值,存储30天。'."\n" - .'- 1:存储90天。'."\n" - .'- 2:存储180天。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '布局ID。如果您通过[DescribeCasterLayouts接口](~~2848028~~)查询导播台布局列表,请查看DescribeCasterLayouts接口调用返回的参数LayoutId值。', 'type' => 'string', 'required' => false, 'example' => '0c6da077-f037-49e8-8440-3be13393****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '65EEDBEB-43FE-1E15-976F-3DDD753A****', - ], - 'AppId' => [ - 'description' => '应用ID,用于后续加入群等流程。', - 'type' => 'string', - 'example' => 'demo', - ], - 'AppKey' => [ - 'description' => 'AppKey,用于生成与该AppId相关的各种操作鉴权。', - 'type' => 'string', - 'example' => '**********************************', - ], - 'AppSign' => [ - 'description' => '应用签名,互动消息服务SDK需要该信息。', - 'type' => 'string', - 'example' => '**************************************************************************', - ], - 'DataCenter' => [ - 'description' => '数据中心。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'ErrorInvalidAppName', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'ErrorTooManyApps', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'ErrorInvalidEventCallbackUrl', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'ErrorInvalidAuditUrl', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SceneId无效,请检查后重试。'], + ['errorCode' => 'InvalidCaptionResource', 'errorMessage' => '%s, please check and try again later.', 'description' => '语音字幕组件引用的资源不存在或不为直播源,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态不支持,请检查后重试。'], + ['errorCode' => 'ComponentNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => '组件数量超限,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态为空闲,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.ConfigError', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene配置错误,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene不存在,请检查后重试。'], + ['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId不存在,请检查后重试。'], + ['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '待操作的组件不存在,请检查后重试。'], + ['errorCode' => 'ResourceInChannel.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], + ], + 412 => [ + ['errorCode' => 'ResourceInChannel.PreConditionFailed', 'errorMessage' => '%s, please try again later.', 'description' => '资源预校验失败,请稍后重试。'], + ['errorCode' => 'ResourceInChannel.Invalid', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源与通道素材地址不一致,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"65EEDBEB-43FE-1E15-976F-3DDD753A****\\",\\n \\"AppId\\": \\"demo\\",\\n \\"AppKey\\": \\"**********************************\\",\\n \\"AppSign\\": \\"**************************************************************************\\",\\n \\"DataCenter\\": \\"cn-shanghai\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 65EEDBEB-43FE-1E15-976F-3DDD753A****\\n demo\\n **********************************\\n **************************************************************************\\n","errorExample":""}]', - 'title' => '创建互动消息应用', - 'description' => '- 调用互动消息其他接口时,需要与当前创建互动消息应用的数据中心一致。'."\n" - .'- 单个阿里云账号下最多可创建300个互动消息应用。'."\n" + 'title' => '全量设置导播台场景配置', + 'description' => '调用本接口全量设置场景配置,清空场景配置,并将布局信息设置并生效至指定场景。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '### 自定义安全审核内容说明:'."\n" - .'- 请求协议:HTTP'."\n" - .'- 请求Method:POST'."\n" - .'- 请求示例:'."\n" - .'```'."\n" - .'{'."\n" - .' "content": "testaudit"'."\n" - .'}'."\n" - .'```'."\n" - .'- 响应示例:'."\n" - .'```'."\n" - .'{'."\n" - .' "pass": true,'."\n" - .' "reason":"****" |pass为true表示通过,否则不通过。reason为不通过的原因'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'> HTTP status code为200表示成功;非200时,认为服务不可用,降级为不再对该消息进行审核。'."\n" - ."\n" - .'### 事件回调'."\n" - .' http/https post, body为以下标例格式内容的"json utf-8 string bytes"。事件回调示例如下:'."\n" - .'```'."\n" - .'{'."\n" - .' "appid":"demo",'."\n" - .' "eves":[{'."\n" - .' "uid":"uid1",'."\n" - .' "sid":"sessionid",'."\n" - .' "events":[{'."\n" - .' "e": 3, |事件类型,枚举。1:登录,2:登出,3:joingroup,4:leavegroup,5:客户端断网重连了'."\n" - .' "r": 1, |登出原因,其他事件无该属性,枚举。1:正常调用,3:超时离开,4:在其他端登录'."\n" - .' "g": "testgroup", |群组ID,入离群有该值;登录、登出等事件回调无该属性'."\n" - .' "gs":["testgroupid"] | 群组ID列表,客户端断网重连时,客户端加入的群组信息,其他事件无该属性'."\n" - .' }]'."\n" - .' }]'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'> HTTP status code为200表示成功;其他表示失败,会重试发送。'."\n" - ."\n" - .'### 回调鉴权说明'."\n" - .'服务发起请求时在HTTP(S)请求头中包含Ali-Live-Timestamp和Ali-Live-Signature字段,供回调消息接收服务端进行签名认证。Ali-Live-Signature值计算方式为:Ali-Live-Signature=sha256(CONTENT)。其中,CONTENT=回调域名+Ali-Live-Timestamp取值+鉴权Key;回调域名指配置回调URL的域名,鉴权Key指用户创建AppId时生成的AppKey。', - ], - 'CreateLiveMessageGroup' => [ - 'summary' => '调用CreateLiveMessageGroup创建互动消息群组。', - 'methods' => [ - 'post', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetCasterSceneConfig'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetCasterSceneConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', + ], + 'SetLiveDomainCertificate' => [ + 'summary' => '设置某域名下证书功能是否启用及修改证书信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '指定证书所属加速域名。属于`https`加速类型。', 'type' => 'string', 'required' => true, 'example' => 'developer.aliyundoc.com'], ], [ - 'name' => 'GroupId', + 'name' => 'CertName', 'in' => 'query', - 'schema' => [ - 'description' => '要创建的群组ID,业务应保证群组ID唯一,由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], + 'schema' => ['description' => '证书名称。', 'type' => 'string', 'required' => false, 'example' => 'Cert-****'], ], [ - 'name' => 'GroupName', + 'name' => 'CertType', 'in' => 'query', 'schema' => [ - 'title' => '群组名', - 'description' => '群组名,长度不超过128字节。', + 'description' => '证书类型。取值:'."\n" + ."\n" + .'- **upload**:上传证书。'."\n" + .'- **cas**:证书中心证书。'."\n" + .'- **free**:个人测试证书(免费版)。', 'type' => 'string', 'required' => false, - 'example' => 'mytestgroup', + 'enumValueTitles' => ['cas' => '证书中心证书', 'upload' => '上传证书', 'free' => '个人测试证书'], + 'example' => 'free', + 'enum' => ['free', 'cas', 'upload'], ], ], [ - 'name' => 'GroupInfo', + 'name' => 'SSLProtocol', 'in' => 'query', - 'schema' => [ - 'title' => '群组扩展信息', - 'description' => '群组扩展信息,长度不超过32KB。', - 'type' => 'string', - 'required' => false, - 'example' => 'testgroupinfo', - ], + 'schema' => ['description' => 'HTTPS证书是否启用。取值: '."\n" + .'- **on**:启用。如果取值为**on**,则必须同时设置请求参数SSLPub和SSLPri。'."\n" + .'- **off**(默认值):不启用。', 'type' => 'string', 'required' => true, 'example' => 'off'], ], [ - 'name' => 'Administrators', + 'name' => 'SSLPub', 'in' => 'query', - 'style' => 'simple', - 'schema' => [ - 'title' => '管理员用户ID列表,不能超过3个', - 'description' => '管理员用户ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '管理员用户ID,由大小写字母、数字组成,长度不超过64字节。多个用半角逗号(,)隔开,最多不超过3个。', - 'type' => 'string', - 'required' => false, - 'example' => 'uid1', - ], - 'required' => false, - 'maxItems' => 3, - ], + 'schema' => ['description' => '公钥内容。'."\n" + ."\n" + .'> 当SSLProtocol取值为on时,本参数才必填。'."\n", 'type' => 'string', 'required' => false, 'example' => '****'], ], [ - 'name' => 'CreatorId', + 'name' => 'SSLPri', 'in' => 'query', - 'schema' => [ - 'title' => '群创建者ID', - 'description' => '群组创建者ID,由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', - 'required' => false, - 'example' => 'uid1', - ], + 'schema' => ['description' => '私钥内容。'."\n" + ."\n" + .'> 当SSLProtocol取值为on时,本参数才必填。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '****'], ], [ - 'name' => 'DataCenter', + 'name' => 'ForceSet', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2593195~~)中的数据中心一致, 当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '忽略证书名称重复的校验,覆盖原有同名证书信息。固定取值:**1**。', 'type' => 'string', 'required' => false, 'example' => '1'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A8C7B033-B339-1A58-B0E0-7B9197BA****', - ], - 'GroupId' => [ - 'description' => '创建的群组ID。', - 'type' => 'string', - 'example' => 'grouptest', - ], - 'AlreadyExists' => [ - 'title' => '是否已经存在', - 'description' => '是否已经存在。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'AlreadyDelete' => [ - 'description' => '是否已删除。如果已存在,且被删除了,那么群组ID是处于不可用状态,建议重新创建。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'ErrorTooManyGroups', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidSSLProtocol.ValueNotSupported', 'errorMessage' => 'The specified value of parameter SSLProtocol is not supported.', 'description' => ''], + ['errorCode' => 'SSLPub.MissingParameter', 'errorMessage' => 'An input parameter "SSLPub" that is mandatory for processing the request is not supplied.', 'description' => ''], + ['errorCode' => 'SSLPri.MissingParameter', 'errorMessage' => 'An input parameter "SSLPri" that is mandatory for processing the request is not supplied.', 'description' => ''], + ['errorCode' => 'InvalidSSLPub', 'errorMessage' => 'The SSLPub you provided is malformed!', 'description' => ''], + ['errorCode' => 'InvalidSSLPri', 'errorMessage' => 'The SSLPri you provided is malformed!', 'description' => ''], + ['errorCode' => 'Certificate.MissMatch', 'errorMessage' => 'The SSLPri does not math the specified Certificate!', 'description' => ''], + ['errorCode' => 'InvalidCertificate.TooLong', 'errorMessage' => 'The Certificate you provided is over the max length!', 'description' => ''], + ['errorCode' => 'InvalidCertName.TooLong', 'errorMessage' => 'The Certificate name you provided is over the max length 128!', 'description' => ''], + ['errorCode' => 'IllegalOperationDomain', 'errorMessage' => 'You are not authorized to operate the domain.', 'description' => ''], + ['errorCode' => 'Certificate.NotPermittedOff', 'errorMessage' => 'Turn off certificate will change domain scheduling, please contact customer service', 'description' => ''], + ['errorCode' => 'Certificate.SettedNotEffect', 'errorMessage' => 'Certificate was successfully setted but does\'t take effect for protecting current service, please contact customer service', 'description' => ''], + ['errorCode' => 'Certificate.NotFind', 'errorMessage' => 'Not find the certificate info.', 'description' => ''], + ['errorCode' => 'AuthenticationFailed', 'errorMessage' => 'Authentication failed.', 'description' => ''], + ['errorCode' => 'SetDomainCertificate.ParameterError', 'errorMessage' => 'Parameters have error.', 'description' => ''], + ['errorCode' => 'InvalidSSLPubOrInvalidSSLPri', 'errorMessage' => 'The SSLPri or SSLPub you provided is malformed!', 'description' => ''], + ['errorCode' => 'Certificate.StatusError', 'errorMessage' => 'Certificate is not exist or its status is error.', 'description' => ''], + ['errorCode' => 'DeleteFailed', 'errorMessage' => 'Delete certificate is failed.', 'description' => ''], + ['errorCode' => 'Certificate.Duplicated', 'errorMessage' => 'The certificate name is duplicated.', 'description' => ''], + ['errorCode' => 'Certificate.FormatError', 'errorMessage' => 'The certificate format is error.', 'description' => ''], + ['errorCode' => 'Certificate.KeyNull', 'errorMessage' => 'The private key is not null.', 'description' => ''], + ['errorCode' => 'Key.Malformed', 'errorMessage' => 'The private key format is error.', 'description' => ''], + ['errorCode' => 'CertStorage.failed', 'errorMessage' => 'The certificate storage failed.', 'description' => ''], + ['errorCode' => 'CertificateContent.Duplicated', 'errorMessage' => 'The certificate is already uploaded, please don\'t upload again.', 'description' => ''], + ['errorCode' => 'Certificate.Expired', 'errorMessage' => 'The certificate is expired.', 'description' => ''], + ['errorCode' => 'InvalidDomain.notOnline', 'errorMessage' => 'The domain is not online, please check the domain status and try again later.', 'description' => ''], + ['errorCode' => 'Decode.Error', 'errorMessage' => 'The certificate sslpub or sslpri decode error.', 'description' => ''], + ['errorCode' => 'sslPub.Error', 'errorMessage' => 'The SSLPub encoded failed.', 'description' => ''], + ['errorCode' => 'sslPri.Error', 'errorMessage' => 'The SSLPri encoded failed.', 'description' => ''], + ['errorCode' => 'DomainInSafeMode', 'errorMessage' => 'This domain is in the safe mode. if you want to do this operation, please contact us!', 'description' => ''], + ['errorCode' => 'DomainInProtectedMode', 'errorMessage' => 'This domain is in the protected mode. if you want to do this operation, please contact us!', 'description' => ''], + ['errorCode' => 'FunctionMutex', 'errorMessage' => 'Function is mutex with other function.', 'description' => ''], + ['errorCode' => 'DomainOffline', 'errorMessage' => 'The domain is not online, please check the domain status and try again later.', 'description' => '域名尚未启用,请检查域名状态后重试。'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => 'Illegal domain operate is not permitted.', 'description' => ''], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], - ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'CertName.MissingParameter', 'errorMessage' => 'The CertName parameter is required.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A8C7B033-B339-1A58-B0E0-7B9197BA****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"AlreadyExists\\": true,\\n \\"AlreadyDelete\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n A8C7B033-B339-1A58-B0E0-7B9197BA****\\n grouptest\\n true\\n true\\n","errorExample":""}]', - 'title' => '创建直播互动群组', - 'description' => '- 调用本接口前,您必须已经调用[CreateLiveMessageApp](~~2848162~~)创建互动消息应用。'."\n" - .'- 单个互动消息应用下最多可创建5000个互动消息群组。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}"}]', + 'title' => '设置域名证书', + 'description' => '先获取直播域名,再调用本接口设置域名下证书是否启用和修改证书信息。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveMessageGroup' => [ - 'summary' => '查询直播互动群组详细信息。', - 'methods' => [ - 'post', + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainCertificate'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveDomainCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'SetLiveDomainMultiStreamConfig' => [ + 'summary' => '调用 SetLiveDomainMultiStreamConfig 设置开启双流灾备开关。', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '194284', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'abilityTreeCode' => '250492', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '主播放域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'GroupId', + 'name' => 'Switch', 'in' => 'query', 'schema' => [ - 'description' => '群组ID。', + 'description' => '功能开关。取值:'."\n" + .'- **on**:开启'."\n" + .'- **off**:关闭', 'type' => 'string', 'required' => true, - 'example' => 'grouptest', - ], - ], - [ - 'name' => 'DataCenter', - 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', + 'enumValueTitles' => ['off' => '关闭', 'on' => '开启'], + 'example' => 'on', + 'enum' => ['on', 'off'], ], ], ], @@ -56538,143 +45033,55 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回参数。'."\n", + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '1815A27D-BAE2-10E6-89FD-D477951C****', - ], - 'GroupId' => [ - 'description' => '群组ID。', - 'type' => 'string', - 'example' => 'grouptest', - ], - 'CreatorId' => [ - 'description' => '创建者ID。', - 'type' => 'string', - 'example' => 'uid1', - ], - 'AdminList' => [ - 'description' => '管理员列表。', - 'type' => 'array', - 'items' => [ - 'description' => '管理员。', - 'type' => 'string', - 'example' => '["uid1","uid2"]', - ], - ], - 'Createtime' => [ - 'description' => '创建时间,用UNIX时间戳表示,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1698305471', - ], - 'GroupName' => [ - 'description' => '群组名。', - 'type' => 'string', - 'example' => 'mytestgroup', - ], - 'GroupInfo' => [ - 'description' => '群组扩展信息。', - 'type' => 'string', - 'example' => 'testgroupinfo', - ], - 'Delete' => [ - 'description' => '是否已删除。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'TotalTimes' => [ - 'description' => '总Session次数。群组存在时才有此参数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '50', - ], - 'OnlineUserCounts' => [ - 'description' => '当前在线的群用户数。群组存在时才有此参数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'MsgAmount' => [ - 'description' => '消息数分类统计。群组存在时才有此参数。', - 'type' => 'object', - 'additionalProperties' => [ - 'type' => 'integer', - 'format' => 'int64', - 'example' => '{1 : 20, 2 : 30}', - 'description' => '消息数。', - ], - ], - 'Deletatime' => [ - 'description' => '删除时间。群组已被删除时才有此参数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1698299827', - ], - 'Deletor' => [ - 'description' => '删除者。群组已被删除时才有此参数。', - 'type' => 'string', - 'example' => 'uid1', - ], - 'SuperLargeGroup' => [ - 'description' => '群组是否为超级大群。'."\n" - .'- True:是。'."\n" - .'- False:否。', - 'type' => 'boolean', - 'example' => 'False', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'CodeGetPushbackDomainError', 'errorMessage' => 'Unable to get the push domain name, please check the domain name mapping configuration.', 'description' => '无法获取推流域名,请检查域名映射配置。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1815A27D-BAE2-10E6-89FD-D477951C****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"CreatorId\\": \\"uid1\\",\\n \\"AdminList\\": [\\n \\"[\\\\\\"uid1\\\\\\",\\\\\\"uid2\\\\\\"]\\"\\n ],\\n \\"Createtime\\": 1698305471,\\n \\"GroupName\\": \\"mytestgroup\\",\\n \\"GroupInfo\\": \\"testgroupinfo\\",\\n \\"Delete\\": false,\\n \\"TotalTimes\\": 50,\\n \\"OnlineUserCounts\\": 2,\\n \\"MsgAmount\\": {\\n \\"key\\": 0\\n },\\n \\"Deletatime\\": 1698299827,\\n \\"Deletor\\": \\"uid1\\",\\n \\"SuperLargeGroup\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 1815A27D-BAE2-10E6-89FD-D477951C****\\n grouptest\\n uid1\\n [\\"uid1\\",\\"uid2\\"]\\n 1698305471\\n mytestgroup\\n testgroupinfo\\n false\\n 50\\n 2\\n {1:20,2:30}\\n","errorExample":""}]', - 'title' => '查询直播互动群组详细信息', - 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848162~~)创建互动消息群组。'."\n" - ."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","type":"json"}]', + 'title' => '设置双流灾备开关', + 'description' => '调用本接口开启双流灾备功能,支持向相同的直播流名进行推流。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'ModifyLiveMessageGroup' => [ - 'summary' => '调用ModifyLiveMessageGroup修改互动消息群组信息。', - 'methods' => [ - 'post', + .'本接口的单用户 QPS 限制为 10 次/秒。超过限制,API 调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-04-27T04:00:13.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainMultiStreamConfig'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveDomainMultiStreamConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SetLiveDomainMultiStreamMaster' => [ + 'summary' => '手动切换双流灾备主流。', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -56686,146 +45093,95 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '250500', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '主播放域名。', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com'], ], [ - 'name' => 'GroupId', + 'name' => 'AppName', 'in' => 'query', 'schema' => [ - 'description' => '群组ID。', + 'description' => '直播流所属应用名称。', 'type' => 'string', 'required' => true, - 'example' => 'grouptest', + 'example' => 'testapp', + 'enum' => [], ], ], [ - 'name' => 'ModifyAdmin', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '是否修改群组管理员。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '直播播流流名', 'type' => 'string', 'required' => true, 'example' => 'teststream'], ], [ - 'name' => 'AdminList', + 'name' => 'UpstreamSequence', 'in' => 'query', - 'style' => 'simple', 'schema' => [ - 'description' => '修改后的管理员列表。多个用半角逗号(,)隔开,最多不超过3个。', - 'type' => 'array', - 'items' => [ - 'description' => '管理员用户ID,由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', - 'required' => false, - 'example' => 'uid1', - ], - 'required' => false, + 'description' => '推流唯一标识。通过[QueryLiveDomainMultiStreamList - 查询双流灾备在线记录](~~2871872~~)获取。', + 'type' => 'string', + 'required' => true, + 'example' => 'teststream_***', + 'enum' => [], ], ], - [ - 'name' => 'ModifyInfo', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '是否修改群组扩展信息。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'GroupInfo', - 'in' => 'query', - 'schema' => [ - 'description' => '修改后的群组扩展信息,长度不超过32KB。', - 'type' => 'string', - 'required' => false, - 'example' => 'newmeta', - ], - ], - [ - 'name' => 'DataCenter', - 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****', - ], - ], + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4E*****43-CB92E68F4CD8'], + ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'LiveServiceNotFound', 'errorMessage' => 'Your account does not open Live service yet', 'description' => '您的账户尚未开通直播服务'], + ['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => '任务不存在。'], + ['errorCode' => 'CodeTaskNotStarted', 'errorMessage' => 'Task not started, cannot operate.', 'description' => '任务未启动,无法操作。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '手动切换双流灾备主流', + 'changeSet' => [ + ['createdAt' => '2025-04-27T04:00:13.000Z', 'description' => '错误码发生变更'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', - 'title' => '修改直播互动群组信息', - 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteLiveMessageGroup' => [ - 'summary' => '调用DeleteLiveMessageGroup删除互动消息群组。', - 'methods' => [ - 'post', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainMultiStreamMaster'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveDomainMultiStreamMaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4E*****43-CB92E68F4CD8\\"\\n}","type":"json"}]', + ], + 'SetLiveDomainMultiStreamOptimalMode' => [ + 'summary' => '设置双流灾备自动模式开关。', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -56834,49 +45190,46 @@ 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '250499', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '主播放域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'GroupId', + 'name' => 'AppName', 'in' => 'query', 'schema' => [ - 'description' => '要删除的群组ID。', + 'description' => 'App名称。', 'type' => 'string', 'required' => true, - 'example' => 'grouptest', + 'example' => 'testapp', + 'enum' => [], ], ], [ - 'name' => 'OperatorId', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '操作者ID,由大小写字母、数字组成,长度不超过64字节,后台会记录操作者ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'uid1', - ], + 'schema' => ['description' => '直播流名。', 'type' => 'string', 'required' => true, 'example' => 'teststream'], ], [ - 'name' => 'DataCenter', + 'name' => 'OptimalMode', 'in' => 'query', 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', + 'description' => '自动模式开关。取值:'."\n" + .'- **on**:开启'."\n" + .'- **off**:关闭', 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', + 'required' => true, + 'enumValueTitles' => ['off' => '关闭', 'on' => '开启'], + 'example' => 'on', + 'enum' => ['on', 'off'], ], ], ], @@ -56884,1590 +45237,1140 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回参数。', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****', - ], - 'GroupId' => [ - 'description' => '已删除的或者不存在的群组ID。', - 'type' => 'string', - 'example' => 'grouptest', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => '任务不存在。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\"\\n}","type":"json"}]', + 'title' => '设置双流灾备自动模式开关', + 'changeSet' => [ + ['createdAt' => '2025-04-27T04:00:13.000Z', 'description' => '错误码发生变更'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\",\\n \\"GroupId\\": \\"grouptest\\"\\n}","errorExample":""},{"type":"xml","example":"\\n B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\n grouptest\\n","errorExample":""}]', - 'title' => '删除直播互动群组', - 'description' => '- 调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" - .'- 群组删除后,不再可用,正在群组中的所有人,会被通知群已结束。'."\n" - .'- 群组删除后,消息在一段时间之内还是可以查询的,当前为三十天。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'ListLiveMessageGroups' => [ - 'summary' => '调用ListLiveMessageGroups查询互动消息群组列表。', - 'methods' => [ - 'post', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainMultiStreamOptimalMode'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveDomainMultiStreamOptimalMode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SetLiveDomainStagingConfig' => [ + 'summary' => '调用SetLiveDomainStagingConfig设置或修改灰度环境下的域名配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '194270', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], - ], - [ - 'name' => 'SortType', - 'in' => 'query', - 'schema' => [ - 'title' => '排序方式,1为正序,2为逆序', - 'description' => '排序方式,按群组创建时间先后进行排序。取值:'."\n" - .'- 1:正序。'."\n" - .'- 2:逆序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '2', - 'minimum' => '1', - 'example' => '1', - 'enum' => [ - '1', - '2', - ], - ], - ], - [ - 'name' => 'NextPageToken', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '查询页的起始位置,若为空或者 -1 则默认为首页', - 'description' => '查询页的起始位置,若为空或-1,则默认为首页。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1001', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'GroupStatus', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '群组状态,默认值为0。取值:'."\n" - .'- 0:查询全部群组。'."\n" - .'- 1:查询未被删除群组。'."\n" - .'- 2:查询已删除群组。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'enum' => [ - '0', - '1', - '2', - ], - ], + 'schema' => ['description' => '加速域名。', 'type' => 'string', 'required' => true, 'example' => 'developer.aliyundoc.com'], ], [ - 'name' => 'DataCenter', + 'name' => 'Functions', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '功能列表,仅在修改时需要指定ConfigId,详情请参见**Functions格式说明**。', 'type' => 'string', 'required' => true, 'example' => '[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"xxx"}],"functionName":"edge_function"}]'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B5D95365-5A46-1A6A-BBF5-C7B6BDED****', - ], - 'Hasmore' => [ - 'title' => '是否有下一页', - 'description' => '是否有下一页。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'NextpageToken' => [ - 'description' => '下一页的起始位置,当Hasmore为false时,不返回该字段。', - 'type' => 'string', - 'example' => '1001', - ], - 'GroupList' => [ - 'description' => '群组列表。', - 'type' => 'array', - 'items' => [ - 'description' => '群组数据。', - 'type' => 'object', - 'properties' => [ - 'GroupId' => [ - 'description' => '群组ID。', - 'type' => 'string', - 'example' => 'cU9MeBqf****', - ], - 'CreatorId' => [ - 'description' => '创建者ID。', - 'type' => 'string', - 'example' => 'user_77', - ], - 'AdminList' => [ - 'description' => '管理员列表。', - 'type' => 'array', - 'items' => [ - 'description' => '管理员。', - 'type' => 'string', - 'example' => 'uid1', - ], - ], - 'Createtime' => [ - 'description' => '创建时间,用UNIX时间戳表示,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1698299727', - ], - 'GroupName' => [ - 'description' => '群组名。', - 'type' => 'string', - 'example' => 'mytestgroup', - ], - 'GroupInfo' => [ - 'description' => '群组扩展信息。', - 'type' => 'string', - 'example' => 'testgroupinfo', - ], - 'Delete' => [ - 'description' => '是否已删除。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'ConfigurationConflicts', 'errorMessage' => 'The staging environment has a configuration in effect. You cannot modify the production environment configuration.', 'description' => ''], + ['errorCode' => 'InvalidDomain.BelongToConfigGroup', 'errorMessage' => 'The domain is bound to a configuration group. Modify the domain in the configuration group.', 'description' => ''], + ['errorCode' => 'InvalidFunctionName.ValueNotSupported', 'errorMessage' => '%s, please check and try again later.', 'description' => '输入的函数名不支持。'], + ['errorCode' => 'InvalidArgName.ValueNotSupported', 'errorMessage' => '%s, please check and try again later.', 'description' => '传入的ArgName无效。'], + ['errorCode' => 'InvalidArgValue.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '传入的ArgValue无效。'], + ['errorCode' => 'InvalidRule.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '传入的Rule无效。'], ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ], + 'title' => '设置或修改灰度环境下的域名配置', + 'description' => '## 使用说明'."\n" + .'先获取加速域名,再调用本接口设置或修改灰度环境下的域名配置。详情请参见下文**Functions格式说明**。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", + 'requestParamsDescription' => '## Functions格式说明'."\n" + ."\n" + .'- 设置配置,示例如下所示:'."\n" + .'`[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"xxx"}],"functionName":"edge_function"}]`'."\n" + ."\n" + .'- 修改配置,可通过ConfigId(Long类型)指定要修改的配置项,示例如下所示:'."\n" + .'`[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"yyy"}],"ConfigId":123456,"functionName":"edge_function"}]`'."\n" + ."\n" + .'功能说明:所有参数值均按照字符串类型处理。'."\n" + .'|功能名称|必选参数|可选参数|'."\n" + .'|---|---|---|'."\n" + .'|edge_function:边缘函数。 |- **rule**:DSL规则。
- **pri**:优先级。
- **enable**:本条规则是否生效,取值:on或off。 |- **name**:规则名称。
- **pos**:规则执行位置。
- **brk**:命中本条规则后,当前执行位置剩余规则均跳过。
- **option**:option管控。
- **grammar**:grammar管控,取值:空、es2或js。
- **jsmode**:js域名白单管控,取值:redirect或bypass。 |', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainStagingConfig'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], - ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveDomainStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B5D95365-5A46-1A6A-BBF5-C7B6BDED****\\",\\n \\"Hasmore\\": false,\\n \\"NextpageToken\\": \\"1001\\",\\n \\"GroupList\\": [\\n {\\n \\"GroupId\\": \\"cU9MeBqf****\\",\\n \\"CreatorId\\": \\"user_77\\",\\n \\"AdminList\\": [\\n \\"uid1\\"\\n ],\\n \\"Createtime\\": 1698299727,\\n \\"GroupName\\": \\"mytestgroup\\",\\n \\"GroupInfo\\": \\"testgroupinfo\\",\\n \\"Delete\\": true\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n B5D95365-5A46-1A6A-BBF5-C7B6BDED****\\n false\\n \\n cU9MeBqf****\\n user_77\\n uid1\\n 1698299727\\n mytestgroup\\n testgroupinfo\\n true\\n \\n","errorExample":""}]', - 'title' => '查询直播互动群组列表', - 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n04F0F334-1335-436C-A1D7-6C044FE73368\\r\\n","errorExample":""}]', ], - 'ListLiveMessageGroupByPage' => [ - 'summary' => '查询互动消息群组列表,并支持翻页功能。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'SetLiveEdgeTransfer' => [ + 'summary' => '调用SetLiveEdgeTransfer设置直播转推配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '222094', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'SortType', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '排序方式,按群组创建时间先后进行排序。取值:'."\n" - .'- 1:正序。'."\n" - .'- 2:逆序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '2', - 'minimum' => '1', - 'example' => '1', - 'enum' => [ - '1', - '2', - ], - ], + 'schema' => ['description' => '推流域名。直播转推流以推流的DomainName为粒度设置。一个域名只能有一个直播转推配置。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'PageSize', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '分页大小,取值范围为:\\[1,50\\]。'."\n" - ."\n" - .'默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'example' => '20', - ], + 'schema' => ['description' => '直播流所属应用名称。支持正则表达式配置但有例外。详细信息,请参见下文中的**AppName与StreamName参数设置说明**。例如:liveApp****[1,2,3],表示允许liveApp****1,liveApp****2,liveApp****3三个App转推。'."\n" + ."\n" + .'> - 此参数只对请求参数中的TargetDomainList生效。'."\n" + .'> - 使用正则表达式配置`AppName`参数值时不能使用^或$字符,否则会导致转推失败。', 'type' => 'string', 'required' => false, 'example' => 'liveApp****'], ], [ - 'name' => 'PageNumber', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '取第几页,取值范围为:\\[1,10000\\]。'."\n" - ."\n" - .'默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '1', - ], + 'schema' => ['description' => '推流名称。支持正则表达式配置但有例外。详细信息,请参见下文中的**AppName与StreamName参数设置说明**。例如:liveStream****[1,2,3],表示允许liveStream****1,liveStream****2,liveStream****3三个流转推。'."\n" + ."\n" + .'>- 此参数只对请求参数中的TargetDomainList生效。'."\n" + .'> - 使用正则表达式配置`StreamName`参数值时不能使用^或$字符,否则会导致转推失败。', 'type' => 'string', 'required' => false, 'example' => 'liveStream****'], ], [ - 'name' => 'GroupStatus', + 'name' => 'TargetDomainList', 'in' => 'query', - 'schema' => [ - 'description' => '群组状态,默认值为0。取值:'."\n" - .'- 0:查询全部群组。'."\n" - .'- 1:查询未被删除群组。'."\n" - .'- 2:查询已删除群组。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'enum' => [ - '0', - '1', - '2', - ], - ], + 'schema' => ['description' => '用户指定的转推目标域名列表。多个域名用英文逗号(,)分隔。请求中必须带有`TargetDomainList`和`HttpsDns`两个参数中的一个,且二者互斥。'."\n" + ."\n\n" + .'> - 当请求参数中设置了`TargetDomainList`,`AppName`和`StreamName`参数才生效。'."\n" + .'> - 当请求参数中设置了`TargetDomainList`,则不能再设置`HttpsDns`参数。', 'type' => 'string', 'required' => false, 'example' => 'learn.aliyundoc.com,guide.aliyundoc.com'], ], [ - 'name' => 'DataCenter', + 'name' => 'HttpDns', + 'in' => 'query', + 'schema' => ['description' => '获取转推目标地址的HTTPDNS接口。请求中必须带有`TargetDomainList`和`HttpsDns`两个参数中的一个,且二者互斥。'."\n" + ."\n" + .'> 若请求参数中设置了`HttpsDns`,则不能再设置`TargetDomainList`参数,且`AppName`和`StreamName`限制不生效。'."\n" + ."\n" + .'直播转推对HTTPDNS接口返回的消息结构有要求,详细信息,请参见下文中的**HTTPDNS说明**。', 'type' => 'string', 'required' => false, 'example' => 'http://developer.aliyundoc.com'], + ], + [ + 'name' => 'TransferArgs', 'in' => 'query', 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', + 'description' => '推流参数是否透传。取值:'."\n" + .'- **yes**:推流参数透传。'."\n" + .'- **no**(默认值):推流参数不透传。', 'type' => 'string', 'required' => false, - 'example' => 'cn-shanghai', + 'enumValueTitles' => ['no' => '推流参数不透传', 'yes' => '推流参数透传'], + 'example' => 'yes', + 'default' => 'no', + 'enum' => ['yes', 'no'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B5D95365-5A46-1A6A-BBF5-C7B6BDED****', - ], - 'TotalCount' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'PageNumber' => [ - 'description' => '返回数据的当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '分页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'GroupList' => [ - 'description' => '群组列表。', - 'type' => 'array', - 'items' => [ - 'description' => '群组对象。', - 'type' => 'object', - 'properties' => [ - 'GroupId' => [ - 'description' => '群组ID。', - 'type' => 'string', - 'example' => 'cU9MeBqf****', - ], - 'CreatorId' => [ - 'description' => '创建者ID。', - 'type' => 'string', - 'example' => 'user_77', - ], - 'AdminList' => [ - 'description' => '管理员用户ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '管理员用户ID。', - 'type' => 'string', - 'example' => 'uid1', - ], - ], - 'Createtime' => [ - 'description' => '创建时间,用UNIX时间戳表示,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1698299727', - ], - 'GroupName' => [ - 'description' => '群组名。', - 'type' => 'string', - 'example' => 'mytestgroup', - ], - 'GroupInfo' => [ - 'description' => '群组扩展信息。', - 'type' => 'string', - 'example' => 'testgroupinfo', - ], - 'Delete' => [ - 'description' => '是否已删除。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B5D95365-5A46-1A6A-BBF5-C7B6BDED****\\",\\n \\"TotalCount\\": 50,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 20,\\n \\"GroupList\\": [\\n {\\n \\"GroupId\\": \\"cU9MeBqf****\\",\\n \\"CreatorId\\": \\"user_77\\",\\n \\"AdminList\\": [\\n \\"uid1\\"\\n ],\\n \\"Createtime\\": 1698299727,\\n \\"GroupName\\": \\"mytestgroup\\",\\n \\"GroupInfo\\": \\"testgroupinfo\\",\\n \\"Delete\\": true\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n B5D95365-5A46-1A6A-BBF5-C7B6BDED****\\n 50\\n 1\\n 20\\n \\n cU9MeBqf****\\n user_77\\n uid1\\n 1698299727\\n mytestgroup\\n testgroupinfo\\n true\\n \\n","errorExample":""}]', - 'title' => '查询互动消息群组列表(支持翻页)', - 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', + 'title' => '设置直播转推配置', + 'description' => '调用SetLiveEdgeTransfer进行的直播边缘转推配置仅对配置完成后开始的推流生效。以下为部分典型场景示例:'."\n" + ."\n" + .'| 场景 | 分析 | 结果 |'."\n" + .'| -------------- | -------------- | ------ |'."\n" + .'| 1. 用户在调用SetLiveEdgeTransfer之前已经开始推流。 | 此时直播边缘转推流配置不存在。 | 该推流不受SetLiveEdgeTransfer配置的影响,即直播边缘转推流不会启动。 |'."\n" + .'| 2. 用户中断调用SetLiveEdgeTransfer之前已经开始的推流,再重新推流。 | 此时直播边缘转推流配置已经存在。 | 重新开始的推流会按SetLiveEdgeTransfer的配置启动直播转推流。 |'."\n" + .'| 3. 用户在调用SetLiveEdgeTransfer之后开始推流。 | 此时直播边缘转推流配置已经存在。 | 此次推流会按SetLiveEdgeTransfer的配置启动直播转推流。 |'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'ModifyLiveMessageGroupBand' => [ - 'summary' => '修改用户禁言状态。', - 'methods' => [ - 'post', + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '### AppName与StreamName参数设置说明'."\n" + .'AppName与StreamName均不支持`^`、`$`匹配。二者之中任一取值出现`^`或`$`均会导致转推失败。'."\n" + .'### HTTPDNS说明'."\n" + .'如果SetLiveEdgeTransfer的请求参数中设置了`HttpDns`,直播转推时将访问通过`HttpDns`设置的HTTPDNS接口来获取转推目标地址。'."\n" + ."\n" + .'请求示例如下:'."\n" + .'http://developer.aliyundoc.com/?host={}&app={}&name={}{<_ali_user_args>} '."\n" + .'说明:在实际请求HTTPDNS接口时会把以下参数按推流URL中的信息进行替换:'."\n" + ."\n" + .'- {}:推流域名。'."\n" + .'- {}:直播流所属应用名称。'."\n" + .'- {}:流名。'."\n" + .'- {<_ali_user_args>}:用户推流带的参数。'."\n" + ."\n" + .'直播转推对接口返回码和返回数据的要求如下:'."\n" + .'- 返回码为403表示访问失败,不需要转推。'."\n" + .'- 返回码为200表示访问成功,返回结果为JSON格式。结构和参数示例如下:'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "cdn_types": ['."\n" + .' {'."\n" + .' "name": "cdnA****",'."\n" + .' "upstream_url": "rtmp://developer.aliyundoc.com/live/testedge****"'."\n" + .' },'."\n" + .' {'."\n" + .' "name": "cdnB****",'."\n" + .' "upstream_url": "rtmp://developer.aliyundoc.com/live/testedge****"'."\n" + .' }'."\n" + .' ]'."\n" + .'}'."\n" + .'```'."\n" + .'| 参数 | 描述 | 示例 |'."\n" + .'| -------------- | -------------- | ------ |'."\n" + .'| name | CDN名称,可自定义但不能重复。 | cdnA**** |'."\n" + .'| upstream_url |要转推的推流地址。 | rtmp://developer.aliyundoc.com/live/testedge**** |'."\n" + ."\n" + .'> 转推域名从返回的JSON结果里面获取。如果返回多个转推域名,表示需要将原始流推到多路。'."\n" + .'- 返回数据结构不符合要求将导致转推失败。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveEdgeTransfer'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveEdgeTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SetLiveLazyPullStreamInfoConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'GroupId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '群组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'BannedAll', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'title' => '是否全员禁言', - 'description' => '是否全员禁言。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '播流所属应用名称。'."\n" + ."\n" + .'> 如果需要全部App都触发回源,则取值**ali_all_app**。', 'type' => 'string', 'required' => true, 'example' => 'ali_all_app'], ], [ - 'name' => 'BannnedUsers', + 'name' => 'PullDomainName', 'in' => 'query', - 'style' => 'simple', - 'schema' => [ - 'title' => '被禁言的用户', - 'description' => '被禁言的用户列表。多个用半角逗号(,)隔开,最多不超过30个。', - 'type' => 'array', - 'items' => [ - 'description' => '被禁言的用户。', - 'type' => 'string', - 'required' => false, - 'example' => 'uid1', - ], - 'required' => false, - ], + 'schema' => ['description' => '直播流所在的源站。多个源站使用英文分号(;)分隔。', 'type' => 'string', 'required' => true, 'example' => 'guide.aliyundoc.com'], ], [ - 'name' => 'ExceptUsers', + 'name' => 'PullAppName', 'in' => 'query', - 'style' => 'simple', - 'schema' => [ - 'title' => '不被禁言的用户', - 'description' => '当开启全员禁言时不被禁言的用户列表。多个用半角逗号(,)隔开,最多不超过30个。', - 'type' => 'array', - 'items' => [ - 'description' => '当开启全员禁言时不被禁言的用户。', - 'type' => 'string', - 'required' => false, - 'example' => 'uid3', - ], - 'required' => false, - ], + 'schema' => ['description' => '回源拉流App。'."\n" + ."\n" + .'> 如果使用播放URL中的App,则此参数为空。', 'type' => 'string', 'required' => false, 'example' => 'livePullApp****'], ], [ - 'name' => 'DataCenter', + 'name' => 'TranscodeLazy', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '转码播放触发拉流。默认为**no**。可选值:'."\n" + ."\n" + .'- **yes**'."\n" + ."\n" + .'- **no**', 'type' => 'string', 'required' => false, 'example' => 'no'], + ], + [ + 'name' => 'PullProtocol', + 'in' => 'query', + 'schema' => ['description' => '回源拉流协议。取值:'."\n" + .'- **rtmp**'."\n" + .'- **httpflv**'."\n" + .'- **hls**', 'type' => 'string', 'required' => true, 'example' => 'rtmp'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], - ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', - 'title' => '修改用户禁言状态', - 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" - ."\n" + 'errorCodes' => [], + 'title' => '配置触发拉流', + 'summary' => '添加拉流信息。', + 'description' => '本接口的拉流方式属于触发拉流,即当需要拉取的源站开始播放直播流时,自动触发阿里云视频直播服务进行拉流直播。'."\n" + ."\n" + .'> 本接口暂时不支持IPv6协议。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveMessageGroupBand' => [ - 'summary' => '调用DescribeLiveMessageGroupBand查询用户禁言状态信息。', - 'methods' => [ - 'post', + .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" + .'| ------------- |------------ | ----- | ----- |'."\n" + .'| InvalidDomain.NotFound | The domain provided does not exist in our records.| 404 |当前账户下未查到域名|'."\n" + .'| IllegalOperation |Illegal domain operate is not permitted. |403 |不支持当前操作,如:非直播类域名|'."\n" + .'|Missing DomainName | DomainName is mandatory for this action. | 400 |缺少参数|'."\n" + .'| InternalError |The request processing has failed due to some unknown error. |500| 后台发生未知错误 |', + 'changeSet' => [ + ['createdAt' => '2022-08-16T09:11:37.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveLazyPullStreamInfoConfig'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveLazyPullStreamInfoConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', + ], + 'SetLiveMpuTaskSei' => [ + 'summary' => '设置连麦旁路自定义sei。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '167350', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '订阅的应用ID。'."\n" + .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourAppId'], ], [ - 'name' => 'GroupId', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '群组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], + 'schema' => ['description' => '任务ID。'."\n" + .'> 任务ID由大小写字母、数字、下划线、短划线(-)组成,最大55字符。', 'type' => 'string', 'required' => true, 'example' => 'yourTaskId'], ], [ - 'name' => 'DataCenter', + 'name' => 'CustomSei', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '自定义SEI。'."\n" + .'> 自定义SEI为json字符串,不超过4096个字符。', 'type' => 'string', 'required' => true, 'example' => '{"key": "value"}'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '021D1FE7-2E87-16AC-9364-4E7EA47C****', - ], - 'GroupId' => [ - 'description' => '群组ID。', - 'type' => 'string', - 'example' => 'grouptest', - ], - 'BannedUserList' => [ - 'description' => '非全员禁言时,被禁言的用户列表。', - 'type' => 'array', - 'items' => [ - 'description' => '非全员禁言时,被禁言的用户。', - 'type' => 'string', - 'example' => '["uid1","uid2"]', - ], - ], - 'UnbannedUserList' => [ - 'description' => '全员禁言时,不被禁言的用户列表。', - 'type' => 'array', - 'items' => [ - 'description' => '全员禁言时,不被禁言的用户。', - 'type' => 'string', - 'example' => '["uid3"]', - ], - ], - 'IsbannedAll' => [ - 'description' => '是否全员禁言。', - 'type' => 'boolean', - 'example' => 'false', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], + ['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId无效,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => '无权限,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"021D1FE7-2E87-16AC-9364-4E7EA47C****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"BannedUserList\\": [\\n \\"[\\\\\\"uid1\\\\\\",\\\\\\"uid2\\\\\\"]\\"\\n ],\\n \\"UnbannedUserList\\": [\\n \\"[\\\\\\"uid3\\\\\\"]\\"\\n ],\\n \\"IsbannedAll\\": false\\n}","errorExample":""},{"type":"xml","example":"\\n 021D1FE7-2E87-16AC-9364-4E7EA47C****\\n grouptest\\n [\\"uid1\\",\\"uid2\\"]\\n [\\"uid3\\"]\\n false\\n","errorExample":""}]', - 'title' => '查询用户禁言状态信息', - 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" - ."\n" + 'title' => '设置自定义SEI', + 'description' => '## 使用说明'."\n" + .'本接口用于设置混流转推任务的自定义SEI信息。'."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'CheckLiveMessageUsersOnline' => [ - 'summary' => '调用CheckLiveMessageUsersOnline查询指定的用户是否在线。', - 'methods' => [ - 'post', + 'changeSet' => [ + ['createdAt' => '2024-07-04T06:14:35.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveMpuTaskSei'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveMpuTaskSei', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + ], + 'SetLiveStreamBlock' => [ + 'summary' => '调用SetLiveStreamBlock设置直播流粒度封禁。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', + 'operationType' => 'update', + 'riskType' => 'high', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveOLG5VH'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '播放域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '直播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + [ + 'name' => 'BlockType', 'in' => 'query', 'schema' => [ - 'description' => '应用ID。', + 'description' => '封禁方式,blacklist:黑名单,whitelist:白名单。', 'type' => 'string', 'required' => true, - 'example' => 'demo', + 'enumValueTitles' => ['blacklist' => '黑名单', 'whitelist' => '白名单'], + 'example' => 'blacklist', + 'enum' => ['blacklist', 'whitelist'], ], ], [ - 'name' => 'UserIds', + 'name' => 'LocationList', 'in' => 'query', - 'style' => 'simple', - 'schema' => [ - 'title' => '需要查询的用户,范围为1-10个', - 'description' => '需要查询的用户列表。', - 'type' => 'array', - 'items' => [ - 'description' => '需要查询的用户ID。多个用半角逗号(,)隔开。单次查询用户数量范围\\[1,10\\]。', - 'type' => 'string', - 'required' => false, - 'example' => 'uid', - ], - 'required' => true, - 'maxItems' => 10, - 'minItems' => 1, - ], + 'schema' => ['description' => '封禁区域,如CN,AS多个以逗号隔开。', 'type' => 'string', 'required' => true, 'example' => 'CN'], ], [ - 'name' => 'DataCenter', + 'name' => 'ReleaseTime', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '封禁结束时间,UTC格式,不填默认封禁7天。', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T19:00:00Z'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '178F572F-AECF-100B-937A-B8047B4D****', - ], - 'UserList' => [ - 'description' => '查询的用户列表。', - 'type' => 'array', - 'items' => [ - 'description' => '用户信息。', - 'type' => 'object', - 'properties' => [ - 'Online' => [ - 'description' => '用户是否在线。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'UserId' => [ - 'description' => '用户ID。', - 'type' => 'string', - 'example' => 'uid1', - ], - ], - ], - ], + 'Description' => ['description' => '结果描述。'."\n" + .'- 成功:ok。'."\n" + .'- 失败:失败详情。', 'type' => 'string', 'example' => 'ok'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3be7ade8-d907-483c-b24a-0dad4595beaf'], + 'Status' => ['description' => '任务状态。取值:'."\n" + .'- ok:成功。'."\n" + .'- fail:失败。'."\n" + ."\n" + .'> 只要有一条任务创建失败即为失败。', 'type' => 'string', 'example' => 'ok'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidReleaseTime.Malformed', 'errorMessage' => 'Specified ReleaseTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"ok\\",\\n \\"RequestId\\": \\"3be7ade8-d907-483c-b24a-0dad4595beaf\\",\\n \\"Status\\": \\"ok\\"\\n}","type":"json"}]', + 'title' => '设置直播流粒度封禁', + 'description' => '一个域名最多支持配置200条直播流区域封禁规则,直播流区域封禁中如果出现重复的AppName和StreamName对应的规则,则以最近的更新时间生效。'."\n" + .'### QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveStreamBlock'], ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveStreamBlock', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"178F572F-AECF-100B-937A-B8047B4D****\\",\\n \\"UserList\\": [\\n {\\n \\"Online\\": false,\\n \\"UserId\\": \\"uid1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 178F572F-AECF-100B-937A-B8047B4D****\\n \\n uid1\\n false\\n \\n","errorExample":""}]', - 'title' => '查询指定的用户是否在线', - 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', ], - 'CheckLiveMessageUsersInGroup' => [ - 'summary' => '调用CheckLiveMessageUsersInGroup查询指定用户是否在群组中。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'SetLiveStreamDelayConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'GroupId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '群组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'UserIds', + 'name' => 'HlsDelay', 'in' => 'query', - 'style' => 'simple', - 'schema' => [ - 'title' => '需要查询的UserId,查询个数范围为1-10', - 'description' => '需要查询的用户ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '需要查询的用户ID。多个用半角逗号(,)隔开。单次查询用户数量范围\\[1,10\\]。', - 'type' => 'string', - 'required' => true, - 'example' => 'uid', - ], - 'required' => true, - 'maxItems' => 10, - 'minItems' => 1, - ], + 'schema' => ['description' => 'HLS播放延迟时间。单位:秒。'."\n" + ."\n" + .'>该参数为空时,按照HlsLevel延迟级别对应的时间设置。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '4'], ], [ - 'name' => 'DataCenter', + 'name' => 'HlsLevel', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => 'HLS延迟级别。配置了HlsDelay情况下忽略该参数。'."\n" + ."\n" + .'取值如下:'."\n" + ."\n" + .'- **short**(默认):表示延迟时间为3秒。'."\n" + ."\n" + .'- **medium**:表示延迟时间为6秒。'."\n" + ."\n" + .'- **long**:表示延迟时间为15秒。'."\n" + ."\n" + .'>如果HlsDelay和HlsLevel参数都为空,则按照默认值**short**进行配置。', 'type' => 'string', 'required' => false, 'example' => 'short'], + ], + [ + 'name' => 'FlvDelay', + 'in' => 'query', + 'schema' => ['description' => 'FLV播放延迟时间。单位:秒。'."\n" + ."\n" + .'>该参数为空时,按照FlvLevel延迟级别对应的时间设置。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '8'], + ], + [ + 'name' => 'FlvLevel', + 'in' => 'query', + 'schema' => ['description' => 'FLV延迟级别。配置了FlvDelay情况下忽略该参数。'."\n" + ."\n" + .'取值如下:'."\n" + ."\n" + .'- **short**(默认):表示延迟时间为2秒。'."\n" + ."\n" + .'- **medium**:表示延迟时间为4秒。'."\n" + ."\n" + .'- **long**:表示延迟时间大于4秒。'."\n" + ."\n" + .'>如果FlvDelay和FlvLevel参数都为空,则按照默认值**short**进行配置。', 'type' => 'string', 'required' => false, 'example' => 'medium'], + ], + [ + 'name' => 'RtmpDelay', + 'in' => 'query', + 'schema' => ['description' => 'RTMP播放延迟时间。单位:秒。'."\n" + ."\n" + .'>该参数为空时,按照RtmpLevel延迟级别对应的时间设置。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '4'], + ], + [ + 'name' => 'RtmpLevel', + 'in' => 'query', + 'schema' => ['description' => 'RTMP延迟级别。配置了RtmpDelay情况下忽略该参数。'."\n" + ."\n" + .'取值如下:'."\n" + ."\n" + .'- **short**(默认):表示延迟时间为2秒。'."\n" + ."\n" + .'- **medium**:表示延迟时间为4秒。'."\n" + ."\n" + .'- **long**:表示延迟时间大于4秒。'."\n" + ."\n" + .'>如果RtmpDelay和RtmpLevel参数都为空,则按照默认值**short**进行配置。', 'type' => 'string', 'required' => false, 'example' => 'short'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F1F68D81-1543-1FE4-B56E-82200DD2****', - ], - 'Users' => [ - 'description' => '查询的用户列表。', - 'type' => 'array', - 'items' => [ - 'description' => '用户信息。', - 'type' => 'object', - 'properties' => [ - 'UserId' => [ - 'description' => '用户ID。', - 'type' => 'string', - 'example' => 'uid1', - ], - 'Online' => [ - 'description' => '用户是否在群组中。', - 'type' => 'boolean', - 'example' => 'false', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4C747C97-7ECD-4C61-8A92-67AD806331FF'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + 'errorCodes' => [], + 'title' => '配置直播延迟', + 'summary' => '调用SetLiveStreamDelayConfig配置直播延迟。', + 'description' => '- 本接口支持配置播流域名的延迟配置。'."\n" + ."\n" + .'- 因为服务端缓存内是整数个关键帧间隔(GOP),所以延迟不会小于GOP大小,真实的延迟需要按照GOP大小估算。例如RTMP配置RtmpDelay为4秒,GOP大小为2秒,则真实延迟最小为2秒(4秒减去2秒),最大为6秒(4秒加上2秒)。 如果GOP大于RtmpDelay延迟配置,比如GOP=5秒,,RtmpDelay=4秒,则延迟在0~9秒之间波动。'."\n" + ."\n" + .'- 纯音频延迟配置无效,默认延迟接近0。'."\n" + ."\n" + .'- HLS配置方式为:先计算切片大小=Delay/3,向下取整,最小不能小于1秒。然后计算切片最大个数,当切片大小大于等于3秒时为4个,其余情况为6个。'."\n" + ."\n" + .'- HLS实际切片大小不会小于GOP大小。'."\n" + ."\n" + .'- HLS延迟计算方式为配置的切片大小*3。'."\n" + ."\n" + .'- 不调用该接口配置时,默认延迟时间为:RTMP为2秒;FLV为4秒;HLS一个切片大小为5秒,即延迟时间为15秒,最多6个切片。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为1000次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'extraInfo' => '| HttpCode | 错误码|错误信息| 描述|'."\n" + .'|---------------|--------|'."\n" + .'| 500| Internal|The request processing has failed due to some unknown error.| 后台发生未知错误。|'."\n" + .'| 404| InvalidDomain.NotFound|The domain provided does not exist in our records.| 当前账户下未查到域名。|'."\n" + .'| 403| IllegalOperation|Illegal domain operate is not permitted.| 不支持当前操作,如:非直播类域名。|'."\n" + .'| 400| InvalidNotifyUrl.Malformedl|Specified parameter NotifyUrl is not valid.| 不是一个合法的HTTP地址。|'."\n" + .'| 400| InvalidNotifyUrl.Unsafel| Specified NotifyUrl is not safe.| 非安全的NotifyUrl值。|', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SetLiveStreamDelayConfig'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], - ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveStreamDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F1F68D81-1543-1FE4-B56E-82200DD2****\\",\\n \\"Users\\": [\\n {\\n \\"UserId\\": \\"uid1\\",\\n \\"Online\\": false\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n F1F68D81-1543-1FE4-B56E-82200DD2****\\n \\n uid1\\n false\\n \\n","errorExample":""}]', - 'title' => '查询指定用户是否在群组中', - 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4C747C97-7ECD-4C61-8A92-67AD806331FF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 4C747C97-7ECD-4C61-8A92-67AD806331FF\\n","errorExample":""}]', ], - 'ListLiveMessageGroupUsers' => [ - 'summary' => '调用ListLiveMessageGroupUsers查询群组用户列表。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'SetLiveStreamPreloadTasks' => [ + 'summary' => '设置直播预热任务,支持批量设置直播流预热。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '194318', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的直播互动应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'GroupId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的群组的GroupID。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'PageSize', + 'name' => 'PlayUrl', 'in' => 'query', - 'schema' => [ - 'title' => '一次显示的用户数量,最小值10,最大值50', - 'description' => '一次显示的用户数量,取值范围**[10,50]**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '30', - 'minimum' => '10', - 'example' => '10', - ], + 'schema' => ['description' => '直播URL,支持批量设置多个直播URL,多个URL之间用逗号(,)分隔,不超过100个。', 'type' => 'string', 'required' => true, 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****'], ], [ - 'name' => 'SortType', + 'name' => 'Area', 'in' => 'query', 'schema' => [ - 'title' => '排序方式,1为正序,2为逆序', - 'description' => '排序方式,按用户加入群组时间先后进行排序。取值:'."\n" - ."\n" - .'- 1:正序'."\n" - ."\n" - .'- 2:逆序', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '2', - 'minimum' => '1', - 'example' => '1', - 'enum' => [ - '1', - '2', - ], + 'description' => '预热区域。取值:'."\n" + .'- domestic:中国内地。'."\n" + .'- overseas:海外及港澳台加速。'."\n" + .'- global:全球加速。'."\n" + .' '."\n" + .'如果不传该参数,默认的预热区域为您的域名所配置的加速区域。', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => ['domestic' => '中国内地', 'global' => '全球加速', 'overseas' => '海外及港澳台加速'], + 'example' => 'domestic', + 'enum' => ['domestic', 'overseas', 'global'], ], ], [ - 'name' => 'NextPageToken', + 'name' => 'PreloadedStartTime', 'in' => 'query', - 'schema' => [ - 'title' => '查询页的起始位置,若为空则默认为首页', - 'description' => '查询页的起始位置,若为空则默认为首页。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '预热开始时间,UTC格式,例如:2016-06-29T19:00:00Z,不填默认预热1小时。', 'type' => 'string', 'required' => false, 'example' => '2016-06-29T19:00:00Z'], ], [ - 'name' => 'DataCenter', + 'name' => 'PreloadedEndTime', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '预热结束时间,UTC格式,例如:2016-06-30T19:00:00Z,EndTime和StartTime之间的间隔不能超过6小时。', 'type' => 'string', 'required' => false, 'example' => '2016-06-30T19:00:00Z'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A1D75BEA-1329-116F-B29C-76F3F200****', - ], - 'GroupId' => [ - 'description' => '需要查询的群组的GroupID。', - 'type' => 'string', - 'example' => 'grouptest', - ], - 'NextPageToken' => [ - 'title' => '下一页的起始位置,若没有下一页则为0', - 'description' => '下一页的起始位置,若没有下一页则为0。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Hasmore' => [ - 'title' => '是否有下一页', - 'description' => '是否有下一页。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'UserList' => [ - 'description' => '对象数组。', - 'type' => 'array', - 'items' => [ - 'description' => '数组详情。', - 'type' => 'object', - 'properties' => [ - 'UserId' => [ - 'title' => '查询的用户Id', - 'description' => '查询的用户ID。', - 'type' => 'string', - 'example' => 'uid1', - ], - 'UserInfo' => [ - 'title' => '用户扩展信息', - 'description' => '用户扩展信息。', - 'type' => 'string', - 'example' => 'info1', + 'FailedURL' => ['description' => '预热任务设置失败的URL条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'PreloadTasksMessages' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PreloadTasksMessage' => [ + 'description' => '直播预热详细信息。', + 'type' => 'array', + 'items' => [ + 'description' => '直播预热详细信息。', + 'type' => 'object', + 'properties' => [ + 'Description' => ['description' => '预热任务是否成功。取值:'."\n" + .'- Successfully:成功。'."\n" + .'- InternalError:失败。', 'type' => 'string', 'example' => 'Successfully'], + 'PlayUrl' => ['description' => '直播URL。', 'type' => 'string', 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****'], + 'TaskId' => ['description' => '任务ID。', 'type' => 'string', 'example' => 'yourTaskId'], + ], ], ], ], + 'description' => '', ], + 'RequestId' => ['description' => '请求ID。'."\n", 'type' => 'string', 'example' => '36E0E523-E0C6-5D95-A465-A8EA2DCBA2A5'], + 'Status' => ['description' => '任务状态。取值:'."\n" + .'- Success:成功。'."\n" + .'- Failed:失败。'."\n" + ."\n" + .'> 只要有一条任务创建失败即为失败。', 'type' => 'string', 'example' => 'Success'], + 'SuccessURL' => ['description' => '预热任务设置成功的URL条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalURL' => ['description' => '预热任务里URL总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], - ], - 420 => [ - [ - 'errorCode' => 'SuperLargeGroup', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not match the specified start time.', 'description' => ''], + ['errorCode' => 'Duration.Exceed', 'errorMessage' => 'Duration between StartTime and EndTime is too long.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.PreloadTaskslimit', 'errorMessage' => 'Exceed max task count limit', 'description' => ''], + ['errorCode' => 'NoSpecialConfiguration', 'errorMessage' => 'no special configuration for domain name.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A1D75BEA-1329-116F-B29C-76F3F200****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"NextPageToken\\": 0,\\n \\"Hasmore\\": false,\\n \\"UserList\\": [\\n {\\n \\"UserId\\": \\"uid1\\",\\n \\"UserInfo\\": \\"info1\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n A1D75BEA-1329-116F-B29C-76F3F200****\\n grouptest\\n 0\\n false\\n \\n uid1\\n info1\\n \\n","errorExample":""}]', - 'title' => '查询群组用户列表', - 'description' => '- 调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" - .'- 对于超级大群(超过2000人的群组),不再提供成员列表查询。并且群成员进出群组通知之间会至少间隔5s,通知中不显示全部进出用户列表,但显示精确群人数。群组一旦升级为超级大群,群成员列表会马上清空,无法再恢复为普通群组,直到所有群成员退出群组(群组关闭),重新开启时才会恢复为普通群组。'."\n" - ."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"FailedURL\\": 0,\\n \\"PreloadTasksMessages\\": {\\n \\"PreloadTasksMessage\\": [\\n {\\n \\"Description\\": \\"Successfully\\",\\n \\"PlayUrl\\": \\"rtmp://guide.aliyundoc.com/liveApp****/liveStream****\\",\\n \\"TaskId\\": \\"yourTaskId\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"36E0E523-E0C6-5D95-A465-A8EA2DCBA2A5\\",\\n \\"Status\\": \\"Success\\",\\n \\"SuccessURL\\": 1,\\n \\"TotalURL\\": 1\\n}","errorExample":""},{"type":"xml","example":"\\n 0\\n \\n Successfully\\n rtmp://guide.aliyundoc.com/liveApp****/liveStream****\\n yourTaskId\\n \\n 36E0E523-E0C6-5D95-A465-A8EA2DCBA2A5\\n Success\\n 1\\n 1\\n","errorExample":""}]', + 'title' => '设置直播预热任务', + 'description' => '- 调用本接口可支持批量设置直播流预热,最多可一次性设置100个直播URL。'."\n" + .'- 直播预热仅不支持HLS格式的地址。'."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'ListLiveMessageGroupMessages' => [ - 'summary' => '调用ListLiveMessageGroupMessages查询群组消息列表。', - 'methods' => [ - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveStreamPreloadTasks'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:SetLiveStreamPreloadTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'SetLiveStreamsNotifyUrlConfig' => [ + 'summary' => '设置推流回调配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '107234', + 'abilityTreeNodes' => ['FEATUREliveYUZBM3'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '您的推流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'GroupId', + 'name' => 'SwitchNotifyUrl', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的群组的GroupID。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], + 'schema' => ['description' => '切流信息回调URL地址', 'type' => 'string', 'required' => false, 'example' => 'http://guide.aliyundoc.com/switchnotify'], ], [ - 'name' => 'PageSize', + 'name' => 'NotifyUrl', 'in' => 'query', - 'schema' => [ - 'title' => '一次显示的消息数量,最小10,最大50', - 'description' => '一次显示的消息数量,取值范围**[10,50]**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '50', - 'minimum' => '10', - 'example' => '10', - ], + 'schema' => ['description' => '直播流信息推送到的URL地址。', 'type' => 'string', 'required' => false, 'example' => 'http://guide.aliyundoc.com/notify'], ], [ - 'name' => 'SortType', + 'name' => 'ExceptionNotifyUrl', 'in' => 'query', - 'schema' => [ - 'title' => '排序方式,1为正序,2为逆序', - 'description' => '排序方式,按消息发送时间先后进行排序。取值:'."\n" - ."\n" - .'- 1:正序'."\n" - ."\n" - .'- 2:逆序', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '2', - 'minimum' => '1', - 'example' => '1', - 'enum' => [ - '1', - '2', - ], - ], + 'schema' => ['description' => '异常事件回调地址URL。', 'type' => 'string', 'required' => false, 'example' => 'https://4a7e5f08.r37.cpolar.top/live/Rsssd/call-back/streamStart'], ], [ - 'name' => 'NextPageToken', + 'name' => 'NotifyReqAuth', 'in' => 'query', 'schema' => [ - 'title' => '查询页的起始位置,若为空则默认为首页', - 'description' => '查询页的起始位置,若为空则默认为首页。', - 'type' => 'integer', - 'format' => 'int64', + 'description' => '是否开启鉴权。取值:'."\n" + ."\n" + .'- **yes**:开启。如果选择取值为**yes**,必须同时设置请求参数NotifyAuthKey。'."\n" + .'- **no**:不开启。'."\n" + ."\n" + .'> 不填默认为**no**。'."\n" + ."\n" + .'鉴权逻辑请参考下文的**推流回调鉴权说明**。', + 'type' => 'string', 'required' => false, - 'example' => '1', + 'enumValueTitles' => ['no' => '不开启', 'yes' => '开启'], + 'example' => 'yes', + 'default' => 'no', + 'enum' => ['yes', 'no'], ], ], [ - 'name' => 'MsgType', + 'name' => 'NotifyAuthKey', 'in' => 'query', + 'schema' => ['description' => '鉴权key。'."\n" + ."\n" + .'> 当请求参数NotifyReqAuth取值为**yes**时,本参数必填。'."\n" + ."\n" + .'取值要求:'."\n" + ."\n" + .'- 16~64个字符。'."\n" + ."\n" + .'- 支持大写字母、小写字母、数字。', 'type' => 'string', 'required' => false, 'example' => '123456'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '需要查询的消息类型,若为空则默认为全部类型', - 'description' => '需要查询的消息类型,若为空则默认为全部类型。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'BeginTime', - 'in' => 'query', - 'schema' => [ - 'title' => '查询起始时间,若为空则默认为最早时间', - 'description' => '查询起始时间,用UNIX时间戳表示,单位:秒。若为空则默认为最早时间。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1697783235', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'title' => '查询结束时间,若为空则默认为最晚时间', - 'description' => '查询结束时间,用UNIX时间戳表示,单位:秒。若为空则默认为最晚时间。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1698301635', - ], - ], - [ - 'name' => 'DataCenter', - 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '1668FDC3-63D7-102F-B5D4-3D2F91D1****', - ], - 'GroupId' => [ - 'description' => '需要查询的群组的GroupID。', - 'type' => 'string', - 'example' => 'grouptest', - ], - 'NextPageToken' => [ - 'title' => '下一页的起始位置,若没有下一页则为0', - 'description' => '下一页的起始位置,若没有下一页则为0。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'Hasmore' => [ - 'title' => '是否有下一页', - 'description' => '是否有下一页。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'MessageList' => [ - 'description' => '消息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '列表详情。', - 'type' => 'object', - 'properties' => [ - 'Sender' => [ - 'description' => '消息参数详情。', - 'type' => 'object', - 'properties' => [ - 'UserId' => [ - 'description' => '消息发送用户的ID。', - 'type' => 'string', - 'example' => 'uid2', - ], - 'UserInfo' => [ - 'description' => '消息发送用户的扩展信息。', - 'type' => 'string', - 'example' => 'testusermeta2', - ], - ], - ], - 'Body' => [ - 'description' => '消息体。', - 'type' => 'string', - 'example' => 'step2 helo, cc group', - ], - 'Timestamp' => [ - 'description' => '消息创建时间。用UNIX时间戳表示,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1697081134', - ], - 'MsgTid' => [ - 'description' => '消息标识。', - 'type' => 'string', - 'example' => 'c-1-1-0', - ], - 'MsgType' => [ - 'description' => '消息类型。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'SeqNumber' => [ - 'description' => '消息序列号。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'TotalMessages' => [ - 'description' => '总消息数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - ], - ], - ], - ], + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => ' 40A4F36D-A7CC-473A-88E7-154F92242566'], + ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ['errorCode' => 'CodeGetMainPlaybackDomainError', 'errorMessage' => 'Failed to obtain the main playback domain name.', 'description' => '获取主播放域名失败。'], + ['errorCode' => 'CodeNotPushDomain', 'errorMessage' => 'The domain name is not a push domain name.', 'description' => '该域名不是推流域名。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1668FDC3-63D7-102F-B5D4-3D2F91D1****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"NextPageToken\\": 0,\\n \\"Hasmore\\": false,\\n \\"MessageList\\": [\\n {\\n \\"Sender\\": {\\n \\"UserId\\": \\"uid2\\",\\n \\"UserInfo\\": \\"testusermeta2\\"\\n },\\n \\"Body\\": \\"step2 helo, cc group\\",\\n \\"Timestamp\\": 1697081134,\\n \\"MsgTid\\": \\"c-1-1-0\\",\\n \\"MsgType\\": 2,\\n \\"SeqNumber\\": 1,\\n \\"TotalMessages\\": 1\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 1668FDC3-63D7-102F-B5D4-3D2F91D1****\\n grouptest\\n 0\\n false\\n \\n \\n uid2\\n testusermeta2\\n \\n step2 helo, cc group\\n 1697081134\\n c-1-1-0\\n 2\\n 1\\n 1\\n \\n","errorExample":""}]', - 'title' => '查询群组消息列表', - 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\" 40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t4C747C97-7ECD-4C61-8A92-67AD806331FF\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"4C747C97-7ECD-4C61-8A92-67AD806331FF\\"\\n}"}]', + 'title' => '设置推流回调通知地址配置', + 'description' => '- 本接口支持配置推流域名的回调地址及其鉴权信息。'."\n" + ."\n" + .'- 流状态实时信息回调,可以及时通知用户推流或断流操作结果。详细信息,请参见[推流回调格式说明](~~54787~~)。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'UnbanLiveMessageGroup' => [ - 'summary' => '调用UnbanLiveMessageGroup新增禁言用户。', - 'methods' => [ - 'post', + .'本接口的单用户QPS限制为15次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '## 回调逻辑说明'."\n" + .'直播推流状态回调中开播(publish)状态回调逻辑:'."\n" + ."\n" + .'RTMP推流在阿里云直播服务收到On Publish消息后2秒内,如果推流端不主动断开,阿里云直播服务就会发推流成功回调。'."\n" + ."\n" + .'假设您有推流域名A和播流域名B,如果您的域名B使用拉流直播(固定拉流和触发回源拉流)需要回调,请在域名A配置推流回调。配置后域名B的拉流回调逻辑与上一条一致,建联后默认2秒无主动断开即认为拉流成功。'."\n" + .'> 建议业务方不仅根据回调通知判断推流、拉流接入正常,同时配合在线流列表查询推流正常后,再下发直播流播放地址给业务方。'."\n" + ."\n" + .'## 推流回调鉴权说明'."\n" + .'推流回调鉴权功能默认关闭,用户可在配置推流回调地址时启用鉴权。启用功能后,鉴权逻辑如下:'."\n" + ."\n" + .'1. 阿里云视频直播发起回调请求时在HTTP(S)请求头中带上`ALI-LIVE-TIMESTAMP`和`ALI-LIVE-SIGNATURE`字段,供回调消息接收服务端进行签名认证。其中,`ALI-LIVE-SIGNATURE`的值由如下计算而得:'."\n" + .'`ALI-LIVE-SIGNATURE=MD5SUM(MD5CONTENT)`'."\n" + .'`MD5CONTENT=<回调域名>||<鉴权KEY>`'."\n" + ."\n" + .'2. 回调消息接收服务端接收回调消息时,将回调域名、ALI-LIVE-TIMESTAMP取值、鉴权Key进行拼接后计算MD5值,得到加密字符串,再将计算出的加密字符串与视频直播发起的HTTP(S)请求头中的ALI-LIVE-SIGNATURE字段值进行对比。如果不一致,则请求非法。'."\n" + ."\n" + .'## 特殊错误码'."\n" + .'|错误代码 |描述 |HTTP 状态码 |语义 |'."\n" + .'|------------|--------|---------|------|'."\n" + .'|InternalError |The request processing has failed due to some unknown error. |500 |后台发生未知错误。 |'."\n" + .'|InvalidDomain.NotFound | The domain provided does not exist in our records. |404 |当前账户下未查到域名。 |'."\n" + .'|IllegalOperation |Illegal domain operate is not permitted. |403 |不支持当前操作,如:非直播类域名。 |'."\n" + .'|InvalidNotifyUrl.Malformed |Specified parameter NotifyUrl is not valid. |400 |回调地址不是一个合法的HTTP地址。 |'."\n" + .'|InvalidNotifyUrl.Unsafe |Specified NotifyUrl is not safe. |400 |非安全的NotifyUrl值。 |'."\n", + 'changeSet' => [ + ['createdAt' => '2025-05-14T02:41:18.000Z', 'description' => '错误码发生变更、请求参数发生变更'], + ['createdAt' => '2025-04-01T06:32:41.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2025-02-20T08:25:18.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveStreamsNotifyUrlConfig'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:SetLiveStreamsNotifyUrlConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SetShowListBackground' => [ + 'summary' => '进行播单背景设置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '237380', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'abilityTreeCode' => '227260', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'GroupId', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '群组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**路径查看导播台名称。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], ], [ - 'name' => 'DataCenter', + 'name' => 'ResourceType', 'in' => 'query', 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致。'."\n" - .'> 当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', + 'description' => '素材类型。取值:'."\n" + ."\n" + .'- LIVE:直播素材。可支持直播素材和第三方URL。'."\n" + ."\n" + .'- VOD:点播素材。可支持点播素材和第三方URL。'."\n" + ."\n" + .'- PIC:图片素材。可支持点播素材和第三方URL。'."\n" + ."\n" + .'> 三选一或者不传。', 'type' => 'string', 'required' => false, - 'example' => 'cn-shanghai', + 'enumValueTitles' => ['VOD' => '点播素材', 'PIC' => '图片素材', 'LIVE' => '直播素材'], + 'example' => 'VOD', + 'enum' => ['VOD', 'PIC', 'LIVE'], ], ], + [ + 'name' => 'MaterialId', + 'in' => 'query', + 'schema' => ['description' => '点播素材ID。'."\n" + ."\n" + .'> 与外部ResourceUrl二选一。', 'type' => 'string', 'required' => false, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e****'], + ], + [ + 'name' => 'ResourceUrl', + 'in' => 'query', + 'schema' => ['description' => '外部素材url。', 'type' => 'string', 'required' => false, 'example' => 'http://****/atestObject****.m3u8'], + ], ], 'responses' => [ 200 => [ @@ -58476,2057 +46379,2431 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '987DA143-A39C-5B5D-AF5B-3B07944A0036'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidParameter.Status', 'errorMessage' => '%s, please check and try again.', 'description' => 'Status无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.StartTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数StartTime无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.EndTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数EndTime无效,请检查后重试。'], + ['errorCode' => 'LiveServiceNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '直播服务未开通,请检查后重试。'], ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => 'The caster does not exist.', 'description' => '导播不存在。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', - 'title' => '解除群组全员禁言', - 'description' => '- 调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" - .'- 调用解除全员禁言接口后,若是被单独禁言的,则依然是禁言状态,无法解除禁言。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"987DA143-A39C-5B5D-AF5B-3B07944A0036\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 987DA143-A39C-5B5D-AF5B-3B07944A0036\\n","errorExample":""}]', + 'title' => '播单背景设置', + 'description' => '- 请先创建新播单型导播台,再调用本接口添加背景素材。使用API创建导播台,请参见[创建导播台](~~2848009~~)。'."\n" + .'- 可以使用本接口创建/更新/删除播单背景, 当参数ResourceType、ResourceUrl、MaterialId 都为空即可删除背景。 '."\n" + ."\n" + .'>'."\n" + ."\n" + .'- 使用视频点播(VOD)资源,可优先选择托管Bucket资源,自有Bucket资源存在过期风险,如果您选用自有Bucket资源,需注意资源的有效期时间。'."\n" + ."\n" + .'- 素材资源输入请优先选择视频直播和视频点播的资源,若从第三方URL输入资源存在播放失败可能性,需确定资源的质量和有效性。'."\n" + ."\n" + .'>'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'RecoverLiveMessageDeletedGroup' => [ - 'summary' => '调用RecoverLiveMessageDeletedGroup恢复已删除的互动消息群组。', - 'methods' => [ - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetShowListBackground'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetShowListBackground', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + ], + 'SetSnapshotCallbackAuth' => [ + 'summary' => '设置截图回调鉴权配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '227785', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'GroupId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '要恢复的群组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.aliyundoc.com'], ], [ - 'name' => 'DataCenter', + 'name' => 'CallbackReqAuth', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)创建时的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '回调鉴权开关。取值:'."\n" + ."\n" + .'- **yes**:开启。'."\n" + ."\n" + .'- **no**:关闭。', 'type' => 'string', 'required' => true, 'example' => 'yes'], + ], + [ + 'name' => 'CallbackAuthKey', + 'in' => 'query', + 'schema' => ['description' => '自定义回调鉴权密钥。', 'type' => 'string', 'required' => true, 'example' => 'yourkey'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****', - ], - 'GroupId' => [ - 'description' => '已恢复的群组ID。', - 'type' => 'string', - 'example' => 'grouptest', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD5'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'ErrorTooManyGroups', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '存在无效参数,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\",\\n \\"GroupId\\": \\"grouptest\\"\\n}","errorExample":""},{"type":"xml","example":"\\n B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\n grouptest\\n","errorExample":""}]', - 'title' => '恢复已删除的互动消息群组', - 'description' => '- 调用[DeleteLiveMessageGroup](~~2848163~~)删除互动消息群组之后三十天内,可以调用本接口恢复已被删除的群组。'."\n" - .'- 群组恢复后,被删除之前存储的消息依旧可以查询。'."\n" + 'title' => '设置截图回调鉴权配置', + 'description' => '- 设置截图回调鉴权前,需要配置截图回调URL,回调URL配置,请参见[添加直播截图配置](~~2847897~~)。'."\n" + .'- 本接口支持主播流域名配置截图回调鉴权,调用时请保证参数设置符合要求。'."\n" + .'- 直播截图服务支持在HTTP(含HTTPS)回调时增加特定签名头,供回调消息接收服务端进行签名认证,以防止非法或无效请求。更多信息,请参见[截图回调鉴权说明](~~417349~~)。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'BanLiveMessageGroup' => [ - 'summary' => '调用BanLiveMessageGroup新增禁言用户。', - 'methods' => [ - 'post', + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetSnapshotCallbackAuth'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetSnapshotCallbackAuth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\"\\n}","errorExample":""},{"type":"xml","example":" \\r\\n16A96B9A-F203-4EC5-8E43-CB92E68F4CD5\\r\\n ","errorExample":""}]', + ], + 'StartCaster' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '237378', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], - ], - [ - 'name' => 'GroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '群组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], - ], - [ - 'name' => 'ExceptUsers', + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'simple', - 'schema' => [ - 'description' => '当开启全员禁言时不被禁言的用户。多个用半角逗号(,)隔开,最多不超过30个。', - 'type' => 'array', - 'items' => [ - 'description' => '当开启全员禁言时不被禁言的用户。', - 'type' => 'string', - 'required' => false, - 'example' => 'uid3', - ], - 'required' => false, - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DataCenter', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致。'."\n" - .'> 当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '导播台信息。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****', + 'PgmSceneInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SceneInfo' => [ + 'description' => 'PGM场景信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'PGM场景信息列表。', + 'type' => 'object', + 'properties' => [ + 'SceneId' => ['description' => '场景ID。', 'type' => 'string', 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****'], + 'StreamInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'StreamInfo' => [ + 'description' => '旁路输出播放地址列表。', + 'type' => 'array', + 'items' => [ + 'description' => '旁路输出播放地址列表。', + 'type' => 'object', + 'properties' => [ + 'OutputStreamUrl' => ['description' => '播放地址。', 'type' => 'string', 'example' => 'rtmp://abclive/caster/example.net'], + 'TranscodeConfig' => ['description' => '转码配置。 取值:'."\n" + .' '."\n" + .'- **lsd**:标清。'."\n" + .'- **lld**:流畅。'."\n" + .'- **lud**:超清。'."\n" + .'- **lhd**:高清。', 'type' => 'string', 'example' => 'lld'], + 'VideoFormat' => ['description' => '格式。取值:'."\n" + .'- **flv**。'."\n" + .'- **rtmp**。'."\n" + .'- **m3u8**。', 'type' => 'string', 'example' => 'flv'], + ], + ], + ], + ], + 'description' => '', + ], + 'StreamUrl' => ['description' => '导播台PGM场景对应播放流地址,非旁路输出流地址。', 'type' => 'string', 'example' => 'rtmp://abclive/caster/example.edu'], + ], + ], + ], + ], + 'description' => '', ], + 'PvwSceneInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SceneInfo' => [ + 'description' => 'PVW场景信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'PVW场景信息列表。', + 'type' => 'object', + 'properties' => [ + 'SceneId' => ['description' => '场景ID。', 'type' => 'string', 'example' => 'b5f8c837-ceeb-424f-b30b-68e94e86****'], + 'StreamUrl' => ['description' => '导播台PVW场景对应播放流地址,非旁路输出流地址。', 'type' => 'string', 'example' => 'rtmp://abclive/caster/example.net'], + ], + ], + ], + ], + 'description' => '', + ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '6EBD1AC4-C34D-4AE1-963E-B688A228BE31'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态不支持,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态为已开启,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene已开启,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'IncorrectChannel.Disable', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Channel处于不可设置状态,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus.Cease', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台已欠费停服,请结清后重试。'], + ['errorCode' => 'IncorrectCasterStatus.Expire', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台预付费实例过期,请续费后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => '超出配额:%s。'], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], - ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], + ['errorCode' => 'InvalidCasterTemplate.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台模板不存在,请检查后重试。'], + ['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ['errorCode' => 'InvalidResource.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], + ['errorCode' => 'InvalidTranscode.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '转码未配置,请检查后重试。'], + ['errorCode' => 'InvalidDelay.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '延时播放未配置,请检查后重试。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', - 'title' => '群组全员禁言', - 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" - ."\n" + 'title' => '启动导播台', + 'summary' => '启动导播台。若PVW、PGM场景不存在则创建,启动PVW、PGM场景,启动底层音视频处理任务。', + 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口启动导播台。若PVW、PGM场景不存在则创建,启动PVW、PGM场景,启动底层音视频处理任务。'."\n" + ."\n\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'AddLiveMessageGroupBand' => [ - 'summary' => '调用AddLiveMessageGroupBand新增禁言用户。', - 'methods' => [ - 'post', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartCaster'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StartCaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PgmSceneInfos\\": {\\n \\"SceneInfo\\": [\\n {\\n \\"SceneId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e86****\\",\\n \\"StreamInfos\\": {\\n \\"StreamInfo\\": [\\n {\\n \\"OutputStreamUrl\\": \\"rtmp://abclive/caster/example.net\\",\\n \\"TranscodeConfig\\": \\"lld\\",\\n \\"VideoFormat\\": \\"flv\\"\\n }\\n ]\\n },\\n \\"StreamUrl\\": \\"rtmp://abclive/caster/example.edu\\"\\n }\\n ]\\n },\\n \\"PvwSceneInfos\\": {\\n \\"SceneInfo\\": [\\n {\\n \\"SceneId\\": \\"b5f8c837-ceeb-424f-b30b-68e94e86****\\",\\n \\"StreamUrl\\": \\"rtmp://abclive/caster/example.net\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\n\\n \\n b5f8c837-ceeb-424f-b30b-68e94e86****\\n \\n rtmp://abclive/caster/example.net\\n \\n\\n\\n \\n b5f8c837-ceeb-424f-b30b-68e94e86****\\n rtmp://abclive/caster/example.edu\\n \\n \\n rtmp://abclive/caster/example.net\\n flv\\n lld\\n \\n \\n \\n\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"PvwSceneInfos\\": [\\n {\\n \\"SceneId\\":\\"b5f8c837-ceeb-424f-b30b-68e94e864995\\",\\n \\"StreamUrl\\":\\"rtmp://XXXXXX/caster/1975ee99db904ebb83908d43bc878188?auth_key=1506396160-0-0-063397072a9980fd418d43eb00e02e09\\"\\n }\\n ],\\n \\"PgmSceneInfos\\": [\\n {\\n \\"SceneId\\":\\"b5f8c837-ceeb-424f-b30b-68e94e864996\\",\\n \\"StreamUrl\\":\\"rtmp://XXXXXX/caster/1975ee99db904ebb83908d43bc878188?auth_key=1506396160-0-0-063397072a9980fd418d43eb00e02e10\\",\\n \\"StreamInfos\\": [\\n {\\n \\"VideoFormat\\": \\"flv\\",\\n \\"OutputStreamUrl\\": \\"http://XXXXXX/caster/fb628e2469f94f2aa2c0c219af8b2527_lld.flv?auth_key=1506396160-0-0-7de771a77102680861853af862d5eaf0\\",\\n \\"TranscodeConfig\\": \\"lld\\"\\n },\\n {\\n \\"VideoFormat\\": \\"rtmp\\",\\n \\"OutputStreamUrl\\": \\"rtmp://XXXXXX/caster/fb628e2469f94f2aa2c0c219af8b2527_lld?auth_key=1506396160-0-0-77ed32cd82ed32ccd51a832b5765814c\\",\\n \\"TranscodeConfig\\": \\"lld\\"\\n },\\n {\\n \\"VideoFormat\\": \\"m3u8\\",\\n \\"OutputStreamUrl\\": \\"http://XXXXXX/caster/fb628e2469f94f2aa2c0c219af8b2527.m3u8?auth_key=1506396160-0-0-d51f0512dcf76aa749f79f53ae6421d2\\",\\n \\"TranscodeConfig\\": \\"lld\\"\\n }\\n ]\\n }\\n ]\\n}"}]', + ], + 'StartCasterScene' => [ + 'summary' => '启动指定场景,限制仅用于PVW的打开。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '235183', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], - ], - [ - 'name' => 'GroupId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '群组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'BannedUsers', + 'name' => 'CasterId', 'in' => 'query', - 'style' => 'simple', - 'schema' => [ - 'description' => '被禁言的用户列表。多个用半角逗号(,)隔开,最多不超过30个。', - 'type' => 'array', - 'items' => [ - 'description' => '被禁言的用户。', - 'type' => 'string', - 'required' => false, - 'example' => 'uid1', - ], - 'required' => true, - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****'], ], [ - 'name' => 'DataCenter', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致。'."\n" - .'> 当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '场景ID。'."\n" + ."\n" + .'只有是PVW场景时才可用。', 'type' => 'string', 'required' => true, 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7'], + 'StreamUrl' => ['description' => '当前场景的输出流地址。用于导播台播放,非旁路输出', 'type' => 'string', 'example' => 'http://live/caster/example.org'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态不支持,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene已开启,请检查后重试。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SceneId无效,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台未开启,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => '超出配额:%s。'], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene不存在,请检查后重试。'], + ['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId不存在,请检查后重试。'], + ['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ['errorCode' => 'InvalidCasterTemplate.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台模板不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', - 'title' => '新增禁言用户', - 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + 'title' => '启动导播台场景', + 'description' => '调用本接口启动指定场景,限制仅用于PVW场景(预览场景)的启动。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'RemoveLiveMessageGroupBand' => [ - 'summary' => '解除直播互动群组用户禁言', - 'methods' => [ - 'post', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartCasterScene'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StartCasterScene', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\",\\n \\"StreamUrl\\": \\"http://live/caster/example.org\\"\\n}","errorExample":""},{"type":"xml","example":"\\n CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n http://live/caster/example.org\\n","errorExample":""}]', + ], + 'StartEdgeTranscodeJob' => [ + 'summary' => '启动边缘转码任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '235211', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], - ], - [ - 'name' => 'GroupId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '群组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'UnbannedUsers', + 'name' => 'ClusterId', 'in' => 'query', - 'style' => 'simple', - 'schema' => [ - 'description' => '移除被禁言的用户列表。多个用半角逗号(,)隔开,最多不超过30个。', - 'type' => 'array', - 'items' => [ - 'description' => '移除被禁言的用户。'."\n" - .'- 传 "*"表示恢复所有的被禁言用户。', - 'type' => 'string', - 'required' => false, - 'example' => 'uid1', - ], - 'required' => true, - ], + 'schema' => ['description' => '机房ID。', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******'], ], [ - 'name' => 'DataCenter', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致。'."\n" - .'> 当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '边缘转码任务ID。', 'type' => 'string', 'required' => true, 'example' => '****20b48fb04483915d4f2cd8ac****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****', - ], + 'JobId' => ['description' => '边缘转码任务ID。', 'type' => 'string', 'example' => '****20b48fb04483915d4f2cd8ac****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'UserTaskExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => '用户任务达到上限,请检查后重试。'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => '超出配额:%s。'], + ['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '操作拒绝,请检查后重试。'], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => '无权限,请检查后重试。'], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'JobNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '任务不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', - 'title' => '解除禁言用户', - 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + 'title' => '启动边缘转码任务', + 'description' => '- 本接口用于启动边缘转码任务。'."\n" ."\n" + .'- 用户需要具有访问边缘转码服务的权限,且转码任务处于未启动状态,才能正常调用本接口。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteLiveMessageGroupMessage' => [ - 'summary' => '调用DeleteLiveMessageGroupMessage删除(撤回)某条群组消息。', - 'methods' => [ - 'post', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartEdgeTranscodeJob'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'live:StartEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ****20b48fb04483915d4f2cd8ac****\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + ], + 'StartLiveDomain' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '107241', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], - ], - [ - 'name' => 'GroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '群组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], - ], - [ - 'name' => 'MessageId', - 'in' => 'query', - 'schema' => [ - 'description' => '要删除的消息ID,与发送消息中的MsgTid对应。由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', - 'required' => true, - 'example' => 'a74a8fbd3cfe4b2daa8517e4e3******', - ], - ], - [ - 'name' => 'DataCenter', - 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'DeleterId', - 'in' => 'query', - 'schema' => [ - 'description' => '发起删除消息的用户ID,由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', - 'required' => false, - 'example' => '169830****', - ], - ], - [ - 'name' => 'DeleterInfo', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '发起删除消息的用户扩展信息,长度不超过512字节。', - 'type' => 'string', - 'required' => false, - 'example' => 'testname', - ], + 'schema' => ['description' => '直播推流域名或播流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****', - ], - 'GroupId' => [ - 'description' => '群组ID。', - 'type' => 'string', - 'example' => 'grouptest', - ], - 'MessageId' => [ - 'description' => '已删除的或者不存在的消息ID。', - 'type' => 'string', - 'example' => 'a74a8fbd3cfe4b2daa8517e4e3******', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'RecordCheckNotAvailable', 'errorMessage' => 'Please try again later.', 'description' => ''], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => ''], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => ''], + ['errorCode' => 'DomainNotRecordedAliyun', 'errorMessage' => 'The domain not access Ali Cloud for the record please access.', 'description' => ''], ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '启用直播域名', + 'summary' => '启用状态为停用的直播域名,将DomainStatus变更为online。', + 'description' => '如果您的域名账户已欠费或您的域名处于非法状态,则无法正常调用此接口。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartLiveDomain'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], - ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StartLiveDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\",\\n \\"GroupId\\": \\"grouptest\\",\\n \\"MessageId\\": \\"a74a8fbd3cfe4b2daa8517e4e3******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\n grouptest\\n a74a8fbd3cfe4b2daa8517e4e3******\\n","errorExample":""}]', - 'title' => '删除(撤回)某条群组消息', - 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', ], - 'DeleteLiveMessageUserMessage' => [ - 'summary' => '调用DeleteLiveMessageUserMessage删除(撤回)某条单聊消息。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'StartLiveMPUTask' => [ + 'summary' => '创建混流转推任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'create', 'riskType' => 'none', - 'chargeType' => 'free', + 'chargeType' => 'paid', + 'abilityTreeCode' => '178410', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '应用ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourAppId'], ], [ - 'name' => 'ReceiverId', + 'name' => 'ChannelId', 'in' => 'query', - 'schema' => [ - 'description' => '接收删除消息的用户ID,由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', - 'required' => true, - 'example' => '169830****', - ], + 'schema' => ['description' => '频道ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourChannelId'], ], [ - 'name' => 'MessageId', + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => ['description' => '任务ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大55字符。此ID为旁路转推的标识,需保证唯一。'."\n" + .'启动任务时,如果同ID任务还在,未被清理,会返回InvalidParam。', 'type' => 'string', 'required' => true, 'example' => 'yourTaskId'], + ], + [ + 'name' => 'MixMode', + 'in' => 'query', + 'schema' => ['description' => '混流模式。取值:'."\n" + .'- **0**:单路转推,不混流转码,仅转推原始单路流,无需配置混流转码参数。'."\n" + .'- **1(默认值)**:混流转码转推。', 'type' => 'string', 'required' => true, 'example' => '0'], + ], + [ + 'name' => 'StreamURL', 'in' => 'query', + 'schema' => ['description' => '直播推流地址,仅支持RTMP协议,仅支持传单个地址,最大长度不超过2048个字符。生成规则请参见[推流地址和播放地址](~~199339~~)。'."\n" + ."\n" + .'>- 对已开防盗链鉴权的域名,需要在推流地址中包含鉴权串。'."\n" + .'- 禁止同一个StreamURL在不同任务中同时使用。'."\n" + .'- 任务停止10S之内,禁止使用同一个StreamURL。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://example.com/live/stream'], + ], + [ + 'name' => 'MultiStreamURL', + 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '要删除的消息ID,与发送消息中的MsgTid对应。由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', - 'required' => true, - 'example' => '**********', + 'description' => '多地址转推参数,可填写多个直播推流地址。'."\n" + .'> 在设置任务的转推地址时,StreamURL参数与MultiStreamURL参数,只能配置其中一个参数,且必须配置其中一个参数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'URL' => ['description' => '直播推流地址,仅支持RTMP协议,最大长度不超过2048个字符。生成规则请参见[推流地址和播放地址](~~199339~~)。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://example.com/live/stream****'], + 'IsAliCdn' => ['description' => '是否转推到阿里云CDN。'."\n" + .'- false为转推非阿里云CDN。'."\n" + .'- true为转推阿里云CDN。'."\n" + ."\n" + .'> 该参数默认为false。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, ], ], [ - 'name' => 'DeleterId', + 'name' => 'Region', + 'in' => 'query', + 'schema' => ['description' => '请求的混流服务所在区域。取值:'."\n" + ."\n" + .'- **CN-Shanghai(默认值)**:上海。'."\n" + .'- **AP-Singapore(默认值)**:新加坡。'."\n" + .'- **EMAA-Saudi**:沙特。'."\n", 'type' => 'string', 'required' => false, 'example' => 'CN-Shanghai'], + ], + [ + 'name' => 'MaxIdleTime', 'in' => 'query', + 'schema' => ['description' => '空闲超时时间;单位为秒,取值范围为\\[10,86400\\]。'."\n" + .' > 设置此参数后,会在任务处于空闲状态的时长大于 MaxIdleTime 时,自动停止该任务;若不设置此参数,则会在房间关闭后,立刻停止该任务。', 'type' => 'string', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'SingleSubParams', + 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '发起删除消息的用户ID,由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', + 'description' => '单流转推参数,单流转推(MixMode=0)时必填。需要混流转码时不填。', + 'type' => 'object', + 'properties' => [ + 'SourceType' => ['description' => '单流转推模式下视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" + .'- **camera(默认值)**:摄像头。'."\n" + .'- **shareScreen**:屏幕共享。', 'type' => 'string', 'required' => false, 'example' => 'camera'], + 'StreamType' => ['description' => '单流转推模式下转推流类型。取值:'."\n" + .'- **0(默认值)**:转推原始流。'."\n" + .'- **1**:仅转推音频流。'."\n" + .'- **2**:仅转推视频流。', 'type' => 'string', 'required' => false, 'example' => '0'], + 'UserId' => ['description' => '单流转推的用户ID,一次只能转推一路流。', 'type' => 'string', 'required' => true, 'example' => 'yourSubUserId'], + ], 'required' => false, - 'example' => '169830****', ], ], [ - 'name' => 'DeleterInfo', + 'name' => 'TranscodeParams', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '发起删除消息的用户扩展信息,长度不超过512字节。', - 'type' => 'string', + 'description' => '混流转码转推参数,混流转码转推(MixMode=1)时必填。需要单流转推时不填。', + 'type' => 'object', + 'properties' => [ + 'Background' => [ + 'description' => '混流全局背景图。', + 'type' => 'object', + 'properties' => [ + 'RenderMode' => ['description' => '子画面输出时的显示模式:'."\n" + .'- **0**:缩放并显示黑底。'."\n" + .'- **1**(默认):裁剪。', 'type' => 'string', 'required' => false, 'example' => '1'], + 'URL' => ['description' => '全局背景图URL,最大长度不超过2048个字符。', 'type' => 'string', 'required' => false, 'example' => 'yourImageUrl'], + ], + 'required' => false, + ], + 'EncodeParams' => [ + 'description' => '转推输出的编码参数。', + 'type' => 'object', + 'properties' => [ + 'AudioOnly' => ['description' => '是否为纯音频,取值:'."\n" + .'- **true**:纯音频,仅需要设置音频相关参数。'."\n" + .'- **false(默认值)**:非纯音频,除VideoCodec参数与EnhancedParam参数外,其它参数均不能为空。', 'type' => 'string', 'required' => false, 'example' => 'false'], + 'AudioBitrate' => ['description' => '音频码率,取值范围:\\[8, 500\\],单位:kbps。', 'type' => 'string', 'required' => false, 'example' => '128'], + 'AudioChannels' => ['description' => '音频声道数,取值:1、2。', 'type' => 'string', 'required' => false, 'example' => '2'], + 'AudioSampleRate' => ['description' => '音频采样率,取值:8000、16000、32000、44100、48000,单位:Hz。', 'type' => 'string', 'required' => false, 'example' => '44100'], + 'VideoCodec' => ['description' => '视频编码格式。取值:'."\n" + .'- H.264(默认值)。'."\n" + .'- H.265。', 'type' => 'string', 'required' => false, 'example' => 'H.264'], + 'VideoBitrate' => ['description' => '视频码率,取值范围:\\[1, 10000\\],单位:kbps。', 'type' => 'string', 'required' => false, 'example' => '3500'], + 'VideoFramerate' => ['description' => '视频帧率,取值范围:\\[1, 60\\],单位:fps。', 'type' => 'string', 'required' => false, 'example' => '25'], + 'VideoGop' => ['description' => '视频GOP,取值范围:\\[1, 60\\]。', 'type' => 'string', 'required' => false, 'example' => '20'], + 'VideoHeight' => ['description' => '视频高,取值范围:\\[0, 1920\\],单位:px。', 'type' => 'string', 'required' => false, 'example' => '1000'], + 'VideoWidth' => ['description' => '视频宽,取值范围:\\[0, 1920\\],单位:px。', 'type' => 'string', 'required' => false, 'example' => '1920'], + 'EnhancedParam' => ['description' => '编码增强参数,JSON字符串,目前支持的可选配置包括profile与preset。'."\n" + .'- profile:编码级别。当视频编码格式为H.264时,profile支持的可选值包括:"baseline", "main", "high";当视频编码格式为H.265时,profile支持的可选值包括:"main"。'."\n" + ."\n" + .'- preset:调节编码速度和质量的平衡。preset支持的可选值包括:"ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow" "placebo"。每个值代表了一种编码速度与输出视频质量的策略,从"ultrafast"(极快,编码速度优先)到"placebo"(追求极致质量,编码极慢)。'."\n" + ."\n" + .'> 例如设置superfast,主要用于实时通讯领域。建议非编码器专业技术人员,不设置该选项。'."\n", 'type' => 'string', 'required' => false, 'example' => '{"profile": "high", "preset": "veryfast"}'], + ], + 'required' => false, + ], + 'Layout' => [ + 'description' => '视频布局信息。'."\n" + .'> 视频转码时,需要指定视频布局信息,包括布局坐标(X,Y),布局窗格(Width,Height),叠放顺序(ZOrder);纯音频转码时,禁止填写视频布局信息。'."\n", + 'type' => 'object', + 'properties' => [ + 'UserPanes' => [ + 'description' => '混流用户窗格信息。', + 'type' => 'array', + 'items' => [ + 'description' => '混流用户窗格信息。', + 'type' => 'object', + 'properties' => [ + 'UserInfo' => [ + 'description' => '该窗格对应的混流用户信息,不填时后台按照上行主播的进房顺序自动填充。'."\n" + .'>- 如果指定混流用户信息,该用户信息需要已在TranscodeParams.UserInfos参数中配置。 '."\n" + .'- 仅针对原始流和视频流有效。', + 'type' => 'object', + 'properties' => [ + 'SourceType' => ['description' => '混流转码模式下视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" + .'- **camera(默认值)**:摄像头。'."\n" + .'- **shareScreen**:屏幕共享。', 'type' => 'string', 'required' => false, 'example' => 'camera'], + 'ChannelId' => ['description' => '混流用户所在的频道ID,同频道内混流的用户可不填,跨频道混流时建议填写该参数。', 'type' => 'string', 'required' => false, 'example' => 'yourChannelId'], + 'UserId' => ['description' => '混流用户ID。', 'type' => 'string', 'required' => false, 'example' => 'yourSubUserId'], + ], + 'required' => false, + ], + 'Height' => ['description' => '窗格高,归一化百分比。', 'type' => 'string', 'required' => false, 'example' => '0.2632'], + 'Width' => ['description' => '窗格宽,归一化百分比。', 'type' => 'string', 'required' => false, 'example' => '0.3564'], + 'X' => ['description' => '坐标X,归一化百分比。', 'type' => 'string', 'required' => false, 'example' => '0.2456'], + 'Y' => ['description' => '坐标Y,归一化百分比。', 'type' => 'string', 'required' => false, 'example' => '0.3789'], + 'ZOrder' => ['description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。', 'type' => 'string', 'required' => false, 'example' => '0'], + 'BackgroundImageUrl' => ['description' => '子画面的背景图URL,最大长度不超过2048个字符。当用户关闭摄像头或未进入房间时,会在布局位置填充为此图片。', 'type' => 'string', 'required' => false, 'example' => 'yourImageUrl'], + 'RenderMode' => ['description' => '子画面输出时的显示模式,取值:'."\n" + .'- **0**:缩放并显示黑底。'."\n" + .'- **1(默认值)**:裁剪。', 'type' => 'string', 'required' => false, 'example' => '1', 'default' => '1'], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'UserInfos' => [ + 'description' => '混流时订阅的用户信息,不指定用户则所有用户混流。', + 'type' => 'array', + 'items' => [ + 'description' => '混流用户信息。', + 'type' => 'object', + 'properties' => [ + 'SourceType' => ['description' => '混流时订阅的视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" + .'- **camera(默认值)**:摄像头。'."\n" + .'- **shareScreen**:屏幕共享。', 'type' => 'string', 'required' => false, 'example' => 'camera'], + 'StreamType' => ['description' => '混流时订阅的转推流类型。取值:'."\n" + .'- **0(默认值)**:转推原始流。'."\n" + .'- **1**:仅转推音频流。'."\n" + .'- **2**:仅转推视频流。', 'type' => 'string', 'required' => false, 'example' => '0'], + 'ChannelId' => ['description' => '混流时订阅用户所在的频道ID,同频道内混流的用户可不填,跨频道混流时建议填写该参数。', 'type' => 'string', 'required' => false, 'example' => 'yourChannelId'], + 'UserId' => ['description' => '混流时订阅的用户ID。', 'type' => 'string', 'required' => true, 'example' => 'yourSubUserId'], + ], + 'required' => false, + ], + 'required' => false, + ], + ], 'required' => false, - 'example' => 'username', ], ], [ - 'name' => 'DataCenter', + 'name' => 'SeiParams', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致, 当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', + 'description' => 'SEI配置参数。', + 'type' => 'object', + 'properties' => [ + 'LayoutVolume' => [ + 'description' => '布局和音量SEI,该参数内容可以为空,表示携带默认的布局和音量SEI。', + 'type' => 'object', + 'properties' => [ + 'FollowIdr' => ['description' => '发送IDR关键帧时是否确保携带SEI,取值:'."\n" + .'- **0**:不确保带SEI。'."\n" + .'- **1**:确保带SEI。', 'type' => 'string', 'required' => false, 'example' => '0'], + 'Interval' => ['description' => 'SEI发送间隔,取值范围:\\[1000, 5000\\],单位:毫秒。', 'type' => 'string', 'required' => false, 'example' => '1000'], + ], + 'required' => false, + ], + 'PassThrough' => [ + 'description' => '透传SEI。', + 'type' => 'object', + 'properties' => [ + 'FollowIdr' => ['description' => '发送IDR关键帧时是否确保携带SEI,取值:'."\n" + .'- **0**:不确保带SEI。'."\n" + .'- **1**:确保带SEI。', 'type' => 'string', 'required' => false, 'example' => '0'], + 'Interval' => ['description' => 'SEI发送间隔,取值范围:\\[1000, 5000\\],单位:毫秒。', 'type' => 'string', 'required' => false, 'example' => '1000'], + 'PayloadContent' => ['description' => '透传SEI的payload内容。', 'type' => 'string', 'required' => false, 'example' => 'yourPayloadContent'], + 'PayloadContentKey' => ['description' => '透传SEI的payload内容对应的key值。不设置时,key为默认值udd。', 'type' => 'string', 'required' => false, 'example' => 'yourPayloadContentKey'], + ], + 'required' => false, + ], + 'PayloadType' => ['description' => 'SEI消息的自定义payload_type,取值范围100-254。不设置时,SEI的payload_type为默认值为5。', 'type' => 'string', 'required' => false, 'example' => '100'], + ], 'required' => false, - 'example' => 'cn-shanghai', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', + 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0F72851F-5DC1-1979-9B2C-450040316C3E'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], + ['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId无效,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => '无权限,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '创建混流转推任务(新)', + 'description' => '单个应用ID默认支持单路转推任务上限为200个,混流转码转推任务上限为40。如果您需要提升配额,请[提交工单](https://smartservice.console.aliyun.com/service/create-ticket)。'."\n" + .'### 混流任务生命周期'."\n" + .'**启动**'."\n" + .'- 主播首次开播,可以调用StartLiveMPUTask启动旁路。'."\n" + .' '."\n" + .' - 若无用户入会,会返回channel不存在错误。'."\n" + .' - 用户开始推流时才会输出旁路流。若单路任务用户未推流,则旁路流无法播放。'."\n" + .' - 混流任务需保证至少有一个用户有推流,旁路流才可播放。未推流的用户对应的布局画面会展示黑屏。'."\n" + ."\n" + .'- 客户业务服务器建议记录旁路任务状态、任务类型、任务参数。'."\n" + .' - 任务状态:启动、停止。'."\n" + .' - 任务类型:单路、混流。'."\n" + .' - 任务参数:即最新的入参,例如:调用UpdateLiveMPUTask成功后,记录最新任务参数。'."\n" + .'- 在连麦或者PK场景下,此时任务已经被更新为混流。若当前主播异常退出重新入会后,客户业务服务器可以根据保存的最新的任务类型和任务参数,直接调用StartLiveMPUTask启动混流任务。'."\n" + .' - 如果启动前任务未被系统自动清理,则直接启动成功。'."\n" + .' - 如果任务还未被系统自动清理,则会返回**任务已存在**错误码。'."\n" + ."\n" + .'**结束**'."\n" + .'- 主播离会,需要主动调用[StopLiveMPUTask](~~2362742~~)停止旁路任务。'."\n" + .'- 若任务所指定的所有用户均已离会但未主动调用StopLiveMPUTask,系统会在2分钟后对旁路任务进行停止。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为500次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '### 布局和音量SEI'."\n" + ."\n" + .'| 参数 | 说明 |'."\n" + .'| ----- | --------- |'."\n" + .'| canvas | 画布信息,参数信息:
- w:画布宽,单位:像素。
- h:画布高,单位:像素。
- bgnd:画布的背景颜色,格式为RGB定义下的十六进制整数。 |'."\n" + .'| stream | 视频流信息,参数信息:
- uid:主播的用户ID。
- paneid:该区域在窗格编号,取值[0,8]。
- zorder:该区域的叠放层级,取值范围 [0,99]。
- x:该区域在画布中对应的x坐标,归一化百分比。
- y:该区域在画布中对应的y坐标,归一化百分比。
- w:该区域的宽度,归一化百分比。
- h:该区域的高度,归一化百分比。
- type:该区域视频流的类型,取值:0:摄像头;1:屏幕共享。
- status:该区域视频流的状态,取值:0:还未拉取到;1:已拉取到。
- muted:主播被静音状态,取值:0:未被静音;1:被静音。主播PK时,A主播将B主播静音,B主播muted字段将显示被静音状态。
- vol:主播的音量(分贝),取值:[0,255]。
- vad :语音检测,取值:[0,150],150是有人声,非150就是从有人声到无声的拖尾时间。 |'."\n" + .'| ts | 生成该信息时的操作系统时间戳,单位为毫秒。 |'."\n" + .'| ver | SEI格式版本信息,如当前版本为1.0.0.20220915。 |'."\n" + .'| udd | 客户自定义的场景化事件,通过PassThrough参数下发,内容由PayloadContent参数指定。 |'."\n" + ."\n" + .'> 用户拉取转推流时,转推流的流媒体数据会包含SEI信息,用户可借助此功能传递一些自定义信息。SEI信息在解码视频流时可以从视频帧数据中获取,具体格式参考参数说明表PassThrough参数。'."\n" + ."\n" + .'**以直播连麦场景为例:**'."\n" + ."\n" + .'如果只是单主播,观众端接收的SEI信息里stream集合只有一个成员信息;如果是主播正在连麦或者PK,观众端接收的SEI信息里stream集合会有多个成员信息。'."\n" + .'例如,当主播111单主播推流时,观众端收到的SEI帧格式如下:
`{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"111","paneid":-1,"zorder":0,"x":0,"y":0,"w":0,"h":0,"type":0,"status":1,"muted":0,"vol":0,"vad":0}],"ver":"1.0.0.20220915","ts":1697696105170}`'."\n" + .'当主播111和观众222进行连麦时,观众端收到的SEI帧格式如下:
`{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"111","paneid":0,"zorder":1,"x":0,"y":0.25,"w":0.5,"h":0.5,"type":0,"status":1,"muted":0,"vol":1,"vad":119},{"uid":"222","paneid":1,"zorder":1,"x":0.5018382,"y":0.25,"w":0.5,"h":0.5,"type":0,"status":1,"muted":0,"vol":60,"vad":123}],"ver":"1.0.0.20220915","ts":1697696106230}`'."\n" + .'判断stream数组的个数可以知道当前直播布局是否发生切换,stream数组的个数为1时,则是单主播推流;stream数组的个数大于1,则主播在连麦或PK中。通过成员的布局信息,知道每个成员在混流布局中的具体位置。'."\n" + ."\n" + .'### 透传SEI'."\n" + .'- 自定义SEI,通过StartLiveMPUTask命令启动混流转推任务,在PassThrough参数中,指定PayloadContent内容;也可以在UpdateLiveMPUTask命令更新混流转推任务时,在PassThrough参数中,指定PayloadContent内容。'."\n" + .'- 自定义SEI可以周期性发送,通过PassThrough参数中的Interval来设定周期,单位为ms;'."\n" + .'- 自定义SEI也可以跟随关键帧发送,通过PassThrough参数中的FollowIdr来设定。'."\n" + .' - 既可以按照Interval来周期性发送,也可以将SEI跟随关键帧来发送,如Interval:1000,FollowIdr: 1 表示每隔1000ms发送一次自定义SEI,并且在发送关键帧时携带自定义SEI。'."\n" + .' - 当不携带Interval以及不携带FollowIdr时,表示该自定义SEI只在调用时发送一次。'."\n" + ."\n" + .'例如,当主播111单主播推流时,调用UpdateLiveMPUTask命令下发周期性SEI,PassThrough参数中的Interval设置为1000,FollowIdr设置为0,PayloadContent设置为"hello world",那么每隔1000ms将发送一次自定义SEI,观众端收到的SEI帧格式如下:
`{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"111","paneid":-1,"zorder":0,"x":0,"y":0,"w":0,"h":0,"type":0,"status":1,"muted":0,"vol":0,"vad":0}],"ver":"1.0.0.20220915","ts":1697696109876,"udd":"hello world"}`'."\n" + .'### 跨频道多用户混流'."\n" + .'若您需要将跨多个频道中的多个主播进行混流布局并转推到直播服务时,您需要将发起跨频道通话的主播的UserID、ChannelID,以及对端的UserID作为入参创建混流任务。示例如下:'."\n" + .'在直播PK场景中,频道channelA的主播userA,通过客户端接口发起了和频道channelB主播userB的跨频道PK,并将两个主播的混流画面输出给频道channelA的麦下观众观看。则,此时创建混流任务时关于频道和用户参数的指定示范如下:'."\n" + .'- ChannelID: 指定为channelA'."\n" + .'- UserInfos->UserId :分别指定userA和userB'."\n" + ."\n" + .'> 创建跨频道多用户的混流任务的前提是,已经通过客户端SDK接口发起了跨频道通话。如果不同频道的用户没有进行通话,则无法创建跨房间混流任务。如何发起跨房间通话,请参见[跨房间订阅功能](~~2642837~~)。', + 'changeSet' => [ + ['createdAt' => '2024-11-14T09:21:05.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-10-30T08:35:05.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-08-13T08:23:10.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-08-06T07:59:24.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-07-04T07:02:35.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2024-06-12T05:51:31.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-03-06T17:46:44.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-03-01T07:39:35.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2023-12-26T06:01:15.000Z', 'description' => '请求参数发生变更'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6CFDE7AB-571A-14EA-B072-989FF753****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 6CFDE7AB-571A-14EA-B072-989FF753****\\n","errorExample":""}]', - 'title' => '删除(撤回)某条单聊消息', - 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'SendLiveMessageGroup' => [ - 'summary' => '发送消息到群组。', - 'methods' => [ - 'post', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartLiveMPUTask'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:StartLiveMPUTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0F72851F-5DC1-1979-9B2C-450040316C3E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0F72851F-5DC1-1979-9B2C-450040316C3E\\n","errorExample":""}]', + ], + 'StartLiveStreamMonitor' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '198196', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREliveSM955S'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '接收消息的互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'GroupId', + 'name' => 'MonitorId', 'in' => 'query', - 'schema' => [ - 'description' => '接收消息的GroupId。'."\n" - .'> 请确保传入的GroupId是存在的!否则会返回ResourceNotExist错误。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - 'minLength' => 1, - ], + 'schema' => ['description' => '监播室ID。'."\n" + .'>通过查看[CreateLiveStreamMonitor](~~2848129~~)接口的返回参数获取MonitorId值。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], - [ - 'name' => 'SenderId', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '发送消息的用户ID,由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', - 'required' => true, - 'example' => 'uid1', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidMonitorId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数MonitorId无效,请检查后重试。'], + ['errorCode' => 'StreamMonitorAlreadyStarted', 'errorMessage' => '%s, please check and try again later.', 'description' => '监播室已经开启,请检查后重试。'], + ], [ - 'name' => 'SenderMetaInfo', - 'in' => 'query', - 'schema' => [ - 'description' => '发送消息用户的扩展信息,长度不超过512字节。', - 'type' => 'string', - 'required' => false, - 'example' => 'uid1meta1', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => '超出配额:%s。'], ], [ - 'name' => 'Body', - 'in' => 'query', - 'schema' => [ - 'description' => '消息体,长度不超过15KB。', - 'type' => 'string', - 'required' => false, - 'example' => 'hello,group', - ], + ['errorCode' => 'StreamMonitorNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => '监播室不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'title' => '开启监播', + 'summary' => '开启监播。', + 'description' => '先通过[CreateLiveStreamMonitor](~~2848129~~)创建监播室,由接口返回参数获取**MonitorId**后开启监播。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartLiveStreamMonitor'], ], + ], + 'ramActions' => [ [ - 'name' => 'MsgType', - 'in' => 'query', - 'schema' => [ - 'description' => '消息类型,单群内发送消息的总类型数不超过30种。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StartLiveStreamMonitor', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + ], + 'StartPlaylist' => [ + 'summary' => '启动整个节目单。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'MsgTid', - 'in' => 'query', - 'schema' => [ - 'description' => '消息唯一标识,可作为删除消息的依据。由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', - 'required' => false, - 'example' => '169830****', - ], + 'AK' => [], ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], + ], + 'parameters' => [ [ - 'name' => 'StaticsIncrease', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '该消息对于该类消息数量的统计增长值贡献,默认值为1', - 'description' => '该消息对于该类消息数量的统计增长值贡献,默认值为1。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Weight', + 'name' => 'ProgramId', 'in' => 'query', - 'schema' => [ - 'title' => '消息权重,权重越高,缓存优先级越高,缓存时间越长,默认值为1', - 'description' => '消息权重,默认值为 1。'."\n" - .'- 对于点赞等低优消息,可设置权重为 1;'."\n" - .'- 对于弹幕等普通文本消息,可设置权重为 5;'."\n" - .'- 对于红包、礼物等高优消息,可设置权重为 1000000。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '节目单ID。如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], [ - 'name' => 'NoStorage', + 'name' => 'ResumeMode', 'in' => 'query', - 'schema' => [ - 'title' => '是否要存储消息,默认为false表示需要存储。', - 'description' => '设置不存储该消息。默认为 false,表示存储(当前时效30天),可以通过获取查询群组消息查到该消息。如果您的业务不需要存储该消息,请设置为true。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '重启模式。取值:'."\n" + .'- **Restart**:从头开始。'."\n" + .'- **Continue**:根据停止前播放位置继续。如果**ResumeMode**参数设置为**Custom**时,请求参数**StartItemId**才必填。'."\n" + .'- **Custom**:自定义。', 'type' => 'string', 'required' => false, 'example' => 'Custom'], ], [ - 'name' => 'NoCache', + 'name' => 'StartItemId', 'in' => 'query', - 'schema' => [ - 'title' => '是否要缓存消息,默认为false表示需要缓存。', - 'description' => '设置不缓存该消息到最近消息列表中。默认为false,表示缓存到群组最近消息列表中。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '起始节目单项ID。启动轮播时将先播放此节目单项。'."\n" + .'> 如果**ResumeMode**参数设置为**Custom**时,此参数才必传。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'asdfasdfasdf****'], ], [ - 'name' => 'DataCenter', + 'name' => 'Offset', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '启动偏移。视频文件起始偏移值。仅对文件视频有效, 单位:毫秒。'."\n" + ."\n" + .'大于0,表示从相对于首帧的偏差时间作为开始读取的位置。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10000'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'E4C1245F-597B-1BD1-B9BB-9D220E99****', - ], - 'MsgTid' => [ - 'description' => '消息唯一标识,可作为删除消息的依据。由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', - 'example' => '169830****', + 'ProgramId' => ['description' => '节目单ID。可作为停止节目单的请求参数。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****'], + 'StreamInfo' => [ + 'description' => '返回的流信息。', + 'type' => 'object', + 'properties' => [ + 'AppName' => ['description' => '应用名称。', 'type' => 'string', 'example' => 'liveApp****'], + 'DomainName' => ['description' => '主播流域名。', 'type' => 'string', 'example' => 'example.com'], + 'StreamName' => ['description' => '播流名称。', 'type' => 'string', 'example' => 'liveStream****'], + 'Streams' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Stream' => [ + 'description' => '流信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PullFlvUrl' => ['description' => 'FLV播流地址。', 'type' => 'string', 'example' => 'http://aliyundoc.com/caster/liveStream****.flv?auth_key=1612772224-0-0-3632be7cd9907169e8b09e91099c****'], + 'PullM3U8Url' => ['description' => 'RTMP播流地址。', 'type' => 'string', 'example' => 'rtmp:///aliyundoc.com/caster/liveStream****?auth_key=1612772224-0-0-4404ca59c0246226d49d01f734b1****'], + 'PullRtmpUrl' => ['description' => 'm3u8播流地址。', 'type' => 'string', 'example' => 'http://aliyundoc.com/caster/liveStream****.m3u8?auth_key=1612772224-0-0-919a023a127156fe82e3562c3b3b****'], + 'Quality' => ['description' => '画质。取值:'."\n" + .'**original**:原画。', 'type' => 'string', 'example' => 'original'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'ErrorTooManyMsgTypes', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态不支持,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态有误,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.Inuse', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene已开启,请检查后重试。'], + ['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ProgramId无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidNormType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '规格类型无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Offset', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数Offset无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.StartItemId', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数StartItemId无效,请检查后重试。'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => '超出配额:%s。'], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList不存在,请检查后重试。'], + ['errorCode' => 'PlayListItemNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayListItem不存在,请检查后重试。'], + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidCasterTemplate.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台模板不存在,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus.EnableChannel', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态不支持EnableChannel设置,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E4C1245F-597B-1BD1-B9BB-9D220E99****\\",\\n \\"MsgTid\\": \\"169830****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n E4C1245F-597B-1BD1-B9BB-9D220E99****\\n","errorExample":""}]', - 'title' => '发送消息到群组', - 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。发送消息到群组,目标群组需要是激活状态,即当前群组中有用户已加入,才能正常往群组发送消息。不支持离线消息,如果遇到发送消息失败,请先确认当前群组中是否有用户。若需离线发送,建议将先消息存在本地,待用户上线后重新发送。'."\n" + 'title' => '开始播放列表项', + 'description' => '先通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,再调用本接口启动整个节目单。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'SendLiveMessageUser' => [ - 'summary' => '发送消息给指定用户,用户身份由ReceiverId标识。', - 'methods' => [ - 'post', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartPlaylist'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StartPlaylist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\",\\n \\"StreamInfo\\": {\\n \\"AppName\\": \\"liveApp****\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"Streams\\": {\\n \\"Stream\\": [\\n {\\n \\"PullFlvUrl\\": \\"http://aliyundoc.com/caster/liveStream****.flv?auth_key=1612772224-0-0-3632be7cd9907169e8b09e91099c****\\",\\n \\"PullM3U8Url\\": \\"rtmp:///aliyundoc.com/caster/liveStream****?auth_key=1612772224-0-0-4404ca59c0246226d49d01f734b1****\\",\\n \\"PullRtmpUrl\\": \\"http://aliyundoc.com/caster/liveStream****.m3u8?auth_key=1612772224-0-0-919a023a127156fe82e3562c3b3b****\\",\\n \\"Quality\\": \\"original\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n 5c6a2a0d-f228-4a64-af62-20e91b96****\\n \\n liveApp****\\n example.com\\n liveStream****\\n \\n http://aliyundoc.com/caster/liveStream****.flv?auth_key=1612772224-0-0-3632be7cd9907169e8b09e91099c****\\n rtmp:///aliyundoc.com/caster/liveStream****?auth_key=1612772224-0-0-4404ca59c0246226d49d01f734b1****\\n http://aliyundoc.com/caster/liveStream****.m3u8?auth_key=1612772224-0-0-919a023a127156fe82e3562c3b3b****\\n original\\n \\n \\n","errorExample":""}]', + ], + 'StartRtcCloudRecording' => [ + 'summary' => '启动rtc云端录制任务。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '194332', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'chargeType' => 'paid', + 'abilityTreeCode' => '269297', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '发送消息的互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '待录制的频道所属app的id。该app需要归属于当前调用接口账号所属的主账号。', 'type' => 'string', 'required' => true, 'example' => '********-7074-****-9ef5-85c19a4*****'], ], [ - 'name' => 'ReceiverId', + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => ['description' => '待录制的频道对应的id。需要确保调用本接口时,该频道内有用户,否则会创建录制任务失败。', 'type' => 'string', 'required' => true, 'example' => 'room1024'], + ], + [ + 'name' => 'SubscribeParams', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '消息接收用户的Id', - 'description' => '接收消息的用户ID,由大小写字母、数字组成,长度不超过64字节。'."\n" - ."\n" - .'> 请确保接收消息的用户的状态为在线!可以通过调用CheckLiveMessageUsersOnline来查询该用户状态。', - 'type' => 'string', + 'description' => '订阅相关参数。', + 'type' => 'object', + 'properties' => [ + 'SubscribeUserIdList' => [ + 'description' => '订阅的UserId信息列表,单流录制模式下,会对其中每个UserId分别进行录制;混流录制模式下,会将所有UserId的音视频混合到一组音视频中。'."\n" + .'> - 数组不能为空,并且最多支持17个元素。', + 'type' => 'array', + 'items' => [ + 'description' => '订阅的UserId的信息。', + 'type' => 'object', + 'properties' => [ + 'UserId' => ['description' => '订阅的UserId。', 'type' => 'string', 'required' => true, 'example' => 'userA'], + 'StreamType' => [ + 'description' => '订阅的UserId的媒体类型。取值:'."\n" + ."\n" + .'- 0:原始流,即包括音频和视频。(默认值)'."\n" + ."\n" + .'- 1:仅音频流。'."\n" + ."\n" + .'- 2:仅视频流(混流录制模式下有效)。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => ['原始流,即包括音频和视频', '仅音频流', '仅视频流'], + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1', '2'], + ], + 'SourceType' => [ + 'description' => '该UserId的视频输入流类型,仅订阅非纯音频流时(StreamType!=1)有效。取值:'."\n" + ."\n" + .'- 0:摄像头。(默认值)'."\n" + ."\n" + .'- 1:屏幕共享。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => ['摄像头', '屏幕共享'], + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1'], + ], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 17, + 'minItems' => 1, + ], + ], 'required' => true, - 'example' => 'uid2', ], ], [ - 'name' => 'SenderId', + 'name' => 'RecordParams', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '消息发送用户的Id', - 'description' => '发送消息的用户ID,由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', + 'description' => '录制相关参数。', + 'type' => 'object', + 'properties' => [ + 'RecordMode' => [ + 'description' => '录制模式。取值:'."\n" + ."\n" + .'- 0:单流录制模式,对于订阅的每个UserId,各自生成录制文件。'."\n" + ."\n" + .'- 1:混流录制模式,对于订阅的UserId,将这些用户的流进行混合转码后,仅生成一组录制文件。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'enumValueTitles' => ['单流录制模式,对于订阅的每个 UserId,各自生成录制文件', '混流录制模式,对于订阅的 UserId,将这些用户的流进行混合转码后,仅生成一组录制文件'], + 'example' => '0', + 'enum' => ['0', '1'], + ], + 'StreamType' => [ + 'description' => '录制的输出流的媒体类型。取值:'."\n" + ."\n" + .'- 0:原始流,即包括音频和视频。(默认值)'."\n" + ."\n" + .'- 1:仅音频流。'."\n" + ."\n" + .'- 2:仅视频流。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => ['原始流,即包括音频和视频', '仅音频流', '仅视频流'], + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1', '2'], + ], + 'MaxFileDuration' => ['description' => '录制文件最大时长(秒)。超过该时长的录制文件会被分割。取值范围须在[180,7200]内,即最大2小时。不指定时,则默认2小时。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '7200', 'minimum' => '180', 'example' => '7200', 'default' => '7200'], + ], 'required' => true, - 'example' => 'uid1', ], ], [ - 'name' => 'SenderInfo', + 'name' => 'StorageParams', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '消息发送用户扩展信息', - 'description' => '发送消息用户的扩展信息,长度不超过512字节。', - 'type' => 'string', - 'required' => false, - 'example' => 'uid1meta1', + 'description' => '存储相关参数。', + 'type' => 'object', + 'properties' => [ + 'StorageType' => [ + 'description' => '存储方式。取值:'."\n" + ."\n" + .'- 0:VOD'."\n" + .'- 1:OSS', + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'enumValueTitles' => ['VOD', 'OSS'], + 'example' => '1', + 'enum' => ['0', '1'], + ], + 'FileInfo' => [ + 'description' => '文件存储信息,用于指定录制文件的格式、存储位置和命名,仅在StorageType为OSS时有效。'."\n" + ."\n" + .'> 对于数组中每个元素,会分别生成对应配置的录制文件。不设置任何格式时,会默认包含HLS格式的配置。', + 'type' => 'array', + 'items' => [ + 'description' => '不同文件格式的存储配置。', + 'type' => 'object', + 'properties' => [ + 'Format' => [ + 'description' => '文件存储格式。取值:'."\n" + ."\n" + .'- HLS'."\n" + .'- MP4'."\n" + .'- MP3', + 'type' => 'string', + 'required' => true, + 'enumValueTitles' => ['MP4' => 'MP4格式', 'MP3' => 'MP3格式', 'HLS' => 'HLS格式'], + 'example' => 'HLS', + 'enum' => ['HLS', 'MP4', 'MP3'], + ], + 'FileNamePattern' => ['description' => '文件命名格式。可以由以下变量按任意顺序选择并组合:'."\n" + ."\n" + .'- AppId'."\n" + .'- ChannelId'."\n" + .'- UserId(单流模式下必选;混流模式下无效,选择的话会保留为{UserId}字符串)'."\n" + .' - RecordMode'."\n" + .' - 值为0时对应Single'."\n" + .' - 值为1时对应Mix'."\n" + ."\n" + .'- SourceType'."\n" + .' - 单流模式下,当流类型为纯视频流时,配置生效,SourceType可配置为:'."\n" + .' - 当值为0时,对应C(Camera)摄像头视频流。'."\n" + .' - 当值为1时,对应S(Screen)屏幕共享视频流。'."\n" + .' - 单流模式下,当流类型为纯音频流时,SourceType自动配置为A(Audio),用于标识该录制内容为纯音频流。'."\n" + .' - 单流模式下,当流类型为原始流时,配置生效,SourceType可配置为:'."\n" + .' - 当值为0时,对应OC(Original Camera)摄像头原始流。'."\n" + .' - 当值为1时,对应OS(Original Screen)屏幕共享原始流。'."\n" + .' - 其他场景下,SourceType配置无效,若用户手动配置了SourceType,系统将会保留{SourceType}占位符字符串。'."\n" + ."\n" + .'- StreamType(使用RecordParams参数下的StreamType参数)'."\n" + .' - 当值为0时对应AV(Audio Video)音频流与视频流。'."\n" + .' - 当值为1时对应A(Audio)音频流。'."\n" + .' - 当值为2时对应V(Video)视频流。'."\n" + ."\n" + .'- StartTime:开始录制的时间,为东八区时区,格式类似2025-03-25-11:27:28。(不使用默认值时必选)'."\n" + ."\n" + .'默认值如下:'."\n" + .'- 单流录制模式'."\n" + .' - {AppId}\\_{ChannelId}\\_{UserId}\\_{StartTime}'."\n" + .' - 如果同时订阅了同一个UserId的不同StreamType或不同SourceType,则默认值为{AppId}\\_{ChannelId}\\_{UserId}\\_{SourceType}\\_{StartTime}'."\n" + .'- 混流录制模式'."\n" + .' - {AppId}\\_{ChannelId}\\_{StartTime}'."\n" + ."\n" + .'> - 字符串只能由以上变量组成,变量名需要用{}包裹,变量名之间用一个下划线(_)分隔,每个变量至多在字符串内出现一次。'."\n" + .'> - 当命名为xxx后,文件最终会保存为类似TaskId/xxx.m3u8的形式,其中TaskId是在启动云端录制任务时生成的任务id,会自动添加到存储路径中。', 'type' => 'string', 'required' => false, 'example' => '{AppId}_{ChannelId}_{StartTime}_{UserId}'], + 'SliceNamePattern' => ['description' => '切片命名格式,仅在HLS格式下有效。与FileNamePattern类似,只是可选变量多出了Sequence:'."\n" + ."\n" + .'- AppId'."\n" + .'- ChannelId'."\n" + .'- UserId(单流模式下必选;混流模式下无效,选择的话会保留为{UserId}字符串)'."\n" + .'- RecordMode'."\n" + .' - 值为0时对应Single'."\n" + .' - 值为1时对应Mix'."\n" + ."\n" + .'- SourceType'."\n" + .' - 单流模式下,当流类型为纯视频流时此参数生效,SourceType可配置为:'."\n" + .' - 取值为0,对应C(Camera)摄像头视频流。'."\n" + .' - 取值为1,对应S(Screen)屏幕共享流。'."\n" + .' - 单流模式下,当流类型为纯音频流时,SourceType自动配置为A(Audio),用于标识该录制内容为纯音频流。'."\n" + .' - 单流模式下,当流类型为原始流时,配置生效,SourceType可配置为:'."\n" + .' - 当值为0时,对应OC(Original Camera)摄像头原始流。'."\n" + .' - 当值为1时,对应OS(Original Screen)屏幕共享原始流。'."\n" + .' - 其他场景下,SourceType配置无效,若用户手动配置该参数,系统将保留`{SourceType}`占位符字符串。'."\n" + ."\n" + .'- StreamType(使用RecordParams参数下的StreamType参数)'."\n" + .' - 当值为0时对应AV(Audio Video)包含音频流与视频流。'."\n" + .' - 当值为1时对应A(Audio )音频流。'."\n" + .' - 当值为2时对应V(Video)视频流。'."\n" + .'- StartTime:开始录制的时间,为东八区时区,格式类似2025-03-25-11:27:28。(不使用默认值时必选)。'."\n" + ."\n" + .'- Sequence:HLS格式下,ts文件名中包含Sequence,其他格式下无效。(不使用默认值时必选)。'."\n" + ."\n" + .'默认值如下:'."\n" + .'- 单流录制模式'."\n" + .' - {AppId}\\_{ChannelId}\\_{UserId}\\_{StartTime}\\_{Sequence}'."\n" + .' - 如果同时订阅了同一个UserId的不同StreamType或不同SourceType,则默认值为{AppId}\\_{ChannelId}\\_{UserId}\\_{SourceType}\\_{StartTime}\\_{Sequence}'."\n" + .'- 混流录制模式'."\n" + .' - {AppId}\\_{ChannelId}\\_{StartTime}\\_{Sequence}'."\n" + ."\n" + .'> - 字符串只能由以上变量组成,变量名需要用{}包裹,变量名之间用一个下划线(_)分隔,每个变量至多在字符串内出现一次。'."\n" + .'> - 当命名为xxx后,切片文件最终会保存为类似TaskId/xxx.ts的形式,其中TaskId是在启动云端录制任务时生成的任务id,会自动添加到存储路径中。', 'type' => 'string', 'required' => false, 'example' => '{AppId}_{ChannelId}_{StartTime}_{Sequence}'], + 'FilePathPrefix' => [ + 'description' => '文件存储路径。数组中的元素对应每一级目录,例如参数值为["dir1","dir2"]时,xxx.m3u8文件将被保存为dir1/dir2/TaskId/xxx.m3u8。该参数为空时,上述例子将直接保存为TaskId/xxx.m3u8。'."\n" + .'- 路径结尾会自动补充任务的TaskId,以避免不同任务的录制文件混在一起。'."\n" + .'- 如果设置了FilePathPrefix,那么数组中每个元素,只能由英文字母(a-zA-Z)、数字(0-9)、短横线(-)、下划线(_)组成,并且不能为空字符串。'."\n" + .'- 数组中各层路径拼接好后,总长度不能超过128个字符(包括连接的\'/\',不包括自动填入的TaskId)。例如参数值为["dir1","dir2"],那么拼接好的路径就是"dir1/dir2/",也即数组中所有元素的总字符数与数组长度之和(对应每层路径后的"/"),不得超过128。'."\n" + .'- 数组中元素个数不得超过5,即最多自定义5层路径。', + 'type' => 'array', + 'items' => ['description' => '每一级目录名。', 'type' => 'string', 'required' => false, 'example' => 'dir1'], + 'required' => false, + ], + 'SliceDuration' => ['title' => '指定切片时长,单位为秒,仅HLS格式下有效。取值范围在[10,30]内', 'description' => '指定切片时长,单位为秒,仅HLS格式下有效,取值范围须在[10,30]内。(默认值为30)'."\n" + ."\n" + .'没有特殊需求时,建议直接使用默认值。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '30'], + ], + 'required' => false, + ], + 'required' => false, + ], + 'OSSParams' => [ + 'description' => 'OSS存储配置。当存储方式为OSS时必须配置,当存储方式为VOD时无效。', + 'type' => 'object', + 'properties' => [ + 'OSSEndpoint' => ['description' => 'OSS存储的Endpoint名称。所对应的regionId需要与选择的服务接入点一致。', 'type' => 'string', 'required' => true, 'example' => 'oss-cn-shanghai.aliyuncs.com'], + 'OSSBucket' => ['description' => 'OSS存储的Bucket名称。该Bucket需要归属于当前调用接口账号所属的主账号。', 'type' => 'string', 'required' => true, 'example' => 'mytest-bucket'], + ], + 'required' => false, + ], + 'VodParams' => [ + 'description' => 'VOD存储配置。当存储方式为VOD时必须配置,当存储方式为OSS时无效。'."\n" + ."\n\n" + .'> '."\n" + .'> - 美国(弗吉尼亚)区域暂不支持录制到VOD。', + 'type' => 'object', + 'properties' => [ + 'StorageLocation' => ['description' => '点播控制台->媒资管理配置->存储管理中包含的存储地址,录制文件会先保存到这里,再上传到VOD。'."\n" + ."\n" + .'> '."\n" + .'> - 请确保该存储地址所在区域与选择的服务接入点一致。', 'type' => 'string', 'required' => false, 'example' => 'mytest.oss-cn-shenzhen.aliyuncs.com'], + 'VodTranscodeGroupId' => ['description' => '点播转码模板组ID。'."\n" + ."\n" + .'> '."\n" + .'> - 请确保该转码模板组ID所在区域与选择的服务接入点一致。', 'type' => 'string', 'required' => false, 'example' => '****8a914d3989e9825eb90530b2****'], + 'AutoCompose' => [ + 'description' => '自动合并。取值:'."\n" + .'- 0:关闭自动合并。(默认值)'."\n" + .'- 1:开启自动合并。开启时必须设置参数ComposeVodTranscodeGroupId。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => ['关闭自动合并', '开启自动合并。开启时必须设置参数ComposeVodTranscodeGroupId'], + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1'], + ], + 'ComposeVodTranscodeGroupId' => ['description' => '对自动合成出来的新视频在点播服务中进行一次转码,所使用的点播转码模板组ID。'."\n" + ."\n" + .'> - 当AutoCompose(是否开启自动合并)设为1时,本参数才必填。'."\n" + .'> - 如果结束录制时,只有一个媒体资源文件,那么即便开启自动合并,也不会触发。'."\n" + .'> - 自动合成和转码常见问题,请参见[直播转点播常见问题FAQ](~~99726~~)。'."\n" + .'> - 点播转码计费详情,请参见[媒资转码计费](~~188308~~)。', 'type' => 'string', 'required' => false, 'example' => '****4c34112cfe68248f2f77759c****'], + ], + 'required' => false, + ], + ], + 'required' => true, ], ], [ - 'name' => 'Body', + 'name' => 'MixTranscodeParams', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '消息体', - 'description' => '消息体,长度不超过15KB。', - 'type' => 'string', + 'description' => '转码相关参数,单流录制模式下不填,混流录制模式下必填。', + 'type' => 'object', + 'properties' => [ + 'FrameFillType' => [ + 'description' => '断流补帧类型。取值:'."\n" + .'- 0:补最后一帧。(默认值)', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => ['补最后一帧'], + 'example' => '0', + 'default' => '0', + 'enum' => ['0'], + ], + 'AudioBitrate' => ['description' => '音频码率(kbps),取值范围须在[8, 500]内。混流模式下必填。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '500', 'minimum' => '8', 'example' => '300'], + 'AudioChannels' => [ + 'description' => '音频声道数。取值:'."\n" + .'- 1:单通道。'."\n" + .'- 2:双通道。'."\n" + ."\n" + .'混流模式下必填。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'enumValueTitles' => [1 => '单通道', '双通道'], + 'example' => '2', + 'enum' => ['1', '2'], + ], + 'AudioSampleRate' => [ + 'description' => '音频采样率(Hz)。取值:'."\n" + .'- 8000'."\n" + .'- 16000'."\n" + .'- 32000'."\n" + .'- 44100'."\n" + .'- 48000'."\n" + ."\n" + .'混流模式下必填。', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'enumValueTitles' => [8000 => '8000HZ', 16000 => '16000HZ', 32000 => '32000HZ', 44100 => '44100HZ', 48000 => '48000HZ'], + 'example' => '32000', + 'enum' => ['8000', '16000', '32000', '44100', '48000'], + ], + 'VideoCodec' => [ + 'description' => '视频编码格式。取值:'."\n" + .'- H.264(默认值)'."\n" + .'- H.265', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => ['H.264' => 'H.264编码', 'H.265' => 'H.265编码'], + 'example' => 'H.264', + 'default' => 'H.264', + 'enum' => ['H.264', 'H.265'], + ], + 'VideoBitrate' => ['description' => '视频码率(kbps),取值范围须在[1,10000]内。'."\n" + .'混流模式下,期望录制输出包含画面时必填,其他情况下无效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '5000'], + 'VideoFramerate' => ['description' => '视频帧率(fps),取值范围须在[1,60]内。'."\n" + .'混流模式下,期望录制输出包含画面时必填,其他情况下无效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '60', 'minimum' => '1', 'example' => '30'], + 'VideoGop' => ['description' => '视频GOP,每VideoGop帧存在一个I帧,取值范围须在[1,60]内。'."\n" + .'混流模式下,期望录制输出包含画面时必填,其他情况下无效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '60', 'minimum' => '1', 'example' => '30'], + 'VideoHeight' => ['description' => '视频高度(px),取值范围须在[0,1920]内。(默认值为0)', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '1920', 'minimum' => '0', 'example' => '480', 'default' => '0'], + 'VideoWidth' => ['description' => '视频宽度(px),取值范围须在[0,1920]内。(默认值为0)', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '1920', 'minimum' => '0', 'example' => '640', 'default' => '0'], + ], 'required' => false, - 'example' => 'hello, user', ], ], [ - 'name' => 'MsgType', + 'name' => 'MixLayoutParams', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '消息类型', - 'description' => '消息类型。', - 'type' => 'integer', - 'format' => 'int64', + 'description' => '布局相关参数,单流录制模式下不填,混流录制模式下期望录制出非纯音频文件时必填。', + 'type' => 'object', + 'properties' => [ + 'MixBackground' => [ + 'description' => '混流全局背景图。', + 'type' => 'object', + 'properties' => [ + 'RenderMode' => [ + 'description' => '画面输出时的显示模式。取值:'."\n" + .'- 0:裁剪。(默认值)'."\n" + .'- 1:缩放并显示黑底。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => ['裁剪', '缩放并显示黑底'], + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1'], + ], + 'Url' => ['description' => '背景图URL,最大长度不超过2048个字符。', 'type' => 'string', 'required' => false, 'example' => 'https://xxxx.com/photos/my-test-picture.png', 'maxLength' => 2048], + ], + 'required' => false, + ], + 'UserPanes' => [ + 'description' => '用于指定订阅的用户的窗口布局信息,只有设置了布局信息的UserId,才会被放到画面中。混流模式且录制非纯音频文件时必填。', + 'type' => 'array', + 'items' => [ + 'description' => '画面中窗口配置。', + 'type' => 'object', + 'properties' => [ + 'UserId' => ['description' => '该窗口对应的UserId。'."\n" + .'- 不设置UserId时,会按照订阅的用户进入频道的顺序依次填入窗口。'."\n" + .'- 这里设置的UserId与SourceType的组合必须包含在SubscribeUserIdList中。'."\n" + .'- 订阅纯音频流是不能加入到布局中的。', 'type' => 'string', 'required' => false, 'example' => 'userA'], + 'SourceType' => [ + 'description' => '该UserId的视频输入流类型。不填写UserId时,此处设置SourceType无效。取值:'."\n" + .'- 0:摄像头。(默认值)'."\n" + .'- 1:屏幕共享。'."\n" + ."\n" + .'这里设置的UserId与SourceType的组合必须包含在SubscribeUserIdList中。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => ['摄像头', '屏幕共享'], + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1'], + ], + 'Height' => ['description' => '窗格高度,归一化百分比。取值范围须在[0,1]内。(默认为0)', 'type' => 'string', 'required' => false, 'example' => '0.5', 'default' => '0'], + 'Width' => ['description' => '窗格宽度,归一化百分比。取值范围须在[0,1]内。(默认为0)', 'type' => 'string', 'required' => false, 'example' => '0.5', 'default' => '0'], + 'X' => ['description' => '坐标X,归一化百分比。取值范围须在[0,1]内。(默认为0)', 'type' => 'string', 'required' => false, 'example' => '0', 'default' => '0'], + 'Y' => ['description' => '坐标Y,归一化百分比。取值范围须在[0,1]内。(默认为0)', 'type' => 'string', 'required' => false, 'example' => '0', 'default' => '0'], + 'ZOrder' => ['description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。(默认为0)', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'default' => '0'], + 'SubBackground' => [ + 'description' => '子画面背景图,当用户关闭摄像头、或入会后未推流、或入会后中途离会时,会在布局位置填充为对应的图片。', + 'type' => 'object', + 'properties' => [ + 'RenderMode' => [ + 'description' => '子画面输出时的显示模式。取值:'."\n" + .'- 0:裁剪。(默认值)'."\n" + .'- 1:缩放并显示黑底。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => ['裁剪', '缩放并显示黑底'], + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1'], + ], + 'Url' => ['description' => '背景图URL,最大长度不超过2048个字符。', 'type' => 'string', 'required' => false, 'example' => 'https://xxxx.com/photos/my-test-pane-picture.png', 'maxLength' => 2048], + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], 'required' => false, - 'example' => '2', ], ], [ - 'name' => 'MsgTid', + 'name' => 'NotifyUrl', 'in' => 'query', - 'schema' => [ - 'title' => '消息标识', - 'description' => '消息唯一标识,可作为删除消息的依据。由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', - 'required' => false, - 'example' => '169830****', - ], + 'schema' => ['description' => '接受回调消息地址。任务状态消息会通过POST方式,以Json格式推送到该地址,最大长度不超过2048个字符。'."\n" + ."\n" + .'回调消息说明参考[文档](https://help.aliyun.com/zh/live/on-cloud-recording-callback-message)。', 'type' => 'string', 'required' => false, 'example' => 'http://xxxx/test/mycallback'], ], [ - 'name' => 'DataCenter', + 'name' => 'NotifyAuthKey', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '回调消息鉴权key,默认不填,即不做鉴权。如果填写,长度需要在[16,64]个字符内,且只由大小写英文字母和数字组成。'."\n" + .'- 当NotifyUrl未填写时,NotifyAuthKey也无效。'."\n" + .'- 当设置有效的NotifyAuthKey时,会在回调消息内携带鉴权内容。', 'type' => 'string', 'required' => false, 'example' => 'mytestkeymytestkey'], ], [ - 'name' => 'HighReliability', + 'name' => 'NotifyFileUploadedFormat', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '设置该条消息是否为高可靠消息。高可靠消息确保接收方已收到该条消息并响应才会返回成功,如果接收方在3s内未响应会返回发送失败。'."\n" - .'- true:表示高可靠消息。'."\n" - .'- false(默认):表示非高可靠消息。'."\n" + 'title' => '指定在录制文件上传后,需要触发回调的格式', + 'description' => '指定的格式,在触发录制文件生成事件(RecordFileUploaded)时,将发送回调消息。', + 'type' => 'array', + 'items' => ['title' => '需要回调的具体文件格式', 'description' => '需要接收回调的具体文件格式。取值(可忽略大小写):'."\n" + ."\n" + .'- SLICE'."\n" + .'- HLS'."\n" + .'- MP4'."\n" + .'- MP3'."\n" ."\n" - .'> 客户端SDK v1.5.1 及以上版本才支持此参数,发消息给老版本客户端时不等待ACK直接返回成功。', - 'type' => 'boolean', + .'暂不支持VOD存储模式。'."\n" + .'对于OSS存储模式,选择的格式要包含在StorageParams.FileInfo的文件格式中。', 'type' => 'string', 'required' => false, 'example' => 'MP4'], 'required' => false, - 'example' => 'false', + 'maxItems' => 100, ], ], [ - 'name' => 'Storage', + 'name' => 'MaxIdleTime', 'in' => 'query', - 'schema' => [ - 'description' => '设置存储该消息。'."\n" - .'- true:表示存储该消息。'."\n" - .'- false(默认),表示不需要存储。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '空闲超时时间,当任务处于空闲状态的时长超过MaxIdleTime时,自动停止任务。单位为秒,范围须在[10,14400]内,即最大4小时。(默认为300秒)'."\n" + .'- 对于混流录制模式,当所有订阅的用户流都停止推流时算作空闲'."\n" + .'- 对于单流录制模式,订阅的流之间彼此独立,任意一路流停止推流都算作空闲,达到MaxIdleTime后会停止该路流的录制,当所有订阅流都空闲超时后,会停止整个云端录制任务。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '86400', 'minimum' => '10', 'example' => '600'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回参数。', + 'description' => '返回内容。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****', - ], - 'MsgTid' => [ - 'description' => '消息唯一标识,可作为删除消息的依据。由大小写字母、数字组成,长度不超过64字节。', - 'type' => 'string', - 'example' => '169830****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求id。', 'type' => 'string', 'example' => '******58-5876-****-83CA-B56278******'], + 'TaskId' => ['description' => '任务id。', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParameter.NotifyUrl', 'errorMessage' => '%s, please check the notifyUrl.', 'description' => '参数NotifyUrl格式无效,请检查。'], + ['errorCode' => 'InvalidParameter.StorageParams.FileInfo', 'errorMessage' => '%s, please check the fileInfo of storageParams.', 'description' => '参数FileInfo存在无效字段,请检查。'], + ['errorCode' => 'InvalidParameter.StorageParams.OSSParams', 'errorMessage' => '%s, please check the ossParams of storageParams.', 'description' => '参数OSSParams存在无效字段,请检查。'], + ['errorCode' => 'NotFound.OSSBucket', 'errorMessage' => '%s, please check the ossBucket of storageParams.', 'description' => '参数OSSBucket不存在。'], + ['errorCode' => 'InvalidParameter.SubscribeParams.SubscribeUserIdList', 'errorMessage' => '%s, please check the subscribeUserIdList of subscribeParams.', 'description' => '参数SubscribeUserIdList无效,请检查。'], + ['errorCode' => 'InvalidParameter.MixLayoutParams.UserPanes', 'errorMessage' => '%s, please check the userPanes of mixLayoutParams.', 'description' => '参数UserPanes存在无效字段,请检查。'], + ['errorCode' => 'InvalidParameter.MixTranscodeParams', 'errorMessage' => '%s, please check the transcodeParams.', 'description' => '参数MixTranscodeParams存在无效字段,请检查。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParameter.UserId', 'errorMessage' => '%s, please check the UserId.', 'description' => 'UserId无效,请检查。'], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParameter.ChannelId', 'errorMessage' => '%s, please check the channelId.', 'description' => ''], + ['errorCode' => 'InvalidParameter.AppId', 'errorMessage' => '%s, please check the appId.', 'description' => '参数AppId无效,请检查。'], ], - 408 => [ - [ - 'errorCode' => 'UserNotAck', - 'errorMessage' => '%s.', - ], + [ + ['errorCode' => 'InvalidParameter.StorageParams.VodParams', 'errorMessage' => '%s, please check the vodParams of storageParams.', 'description' => ''], + ['errorCode' => 'InvalidParameter.NotifyAuthKey', 'errorMessage' => '%s, please check the notifyAuthKey.', 'description' => ''], + ['errorCode' => 'InvalidParameter.MaxIdleTime', 'errorMessage' => '%s, please check the maxIdleTime.', 'description' => ''], + ['errorCode' => 'InvalidParameter.RecordParams', 'errorMessage' => '%s, please check the recordParams.', 'description' => ''], + ['errorCode' => 'InvalidParameter.StorageParams.StorageType', 'errorMessage' => '%s, please check the storageType of storageParams.', 'description' => '参数StorageType无效,请检查。'], + ['errorCode' => 'InvalidParameter.NotifyFileUploadedFormat', 'errorMessage' => '%s, please check the notifyFileUploadedFormat.', 'description' => '参数NotifyFileUploadedFormat无效,请检查。'], ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\"\\n}","type":"json"}]', + 'title' => '启动Rtc云端录制任务', + 'description' => '云端录制属于收费功能,收费详情请参见[云端录制费用](~~2976391~~)。'."\n" + .'## 服务接入点'."\n" + .'本接口可用的服务接入点包括:'."\n" + ."\n" + .' |地域名称 |地域ID | 公网接入地址 |'."\n" + .' | --- | --- | --- |'."\n" + .' | 上海 | cn-shanghai | live.aliyuncs.com |'."\n" + .' | 新加坡 | ap-southeast-1 | live.ap-southeast-1.aliyuncs.com |'."\n" + .' | 美国(弗吉尼亚) | us-east-1 | live.us-east-1.aliyuncs.com |'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '- 对于单流录制模式:'."\n" + .' - 支持同时订阅同一个 UserId 的摄像头和屏幕共享,但FileNamePattern和SliceNamePattern参数中必须包含 SourceType 变量(避免出现录制文件互相覆盖的情况)。'."\n" + .' - 目前不支持只订阅某个 UserId 的纯视频流。即在单流模式下,UserInfo.StreamType 的值不能设置为2。'."\n" + ."\n" + .'- 在单流录制模式下:'."\n" + .' - 如果 RecordParams.StreamType 是纯音频流(取值为 1),那么 SubscribeParams 中不能存在订阅纯视频的情况(即SubscribeParams取值为2)。'."\n" + .' - 如果 RecordParams.StreamType 是纯视频流(值为 2),那么 SubscribeParams 中不能存在订阅纯音频的情况(即SubscribeParams取值为1)。'."\n" + ."\n" + .'- 在混流录制模式下:'."\n" + .' - 如果 RecordParams.StreamType 是纯音频流(值为 1),那么 SubscribeParams 中不能所有 UserId 都只订阅纯视频(即所有SubscribeParams取值为2)。'."\n" + .' - 如果 RecordParams.StreamType 是纯视频流(值为 2),那么 SubscribeParams 中不能所有 UserId 都只订阅纯音频(即所有SubscribeParams取值为1)。'."\n" + ."\n" + .'- 录制过程中,如果中途channel关闭,需要在空闲时长内重新入会推流,否则任务将自动停止。', + 'extraInfo' => '- UserId实际推流与订阅的流的对应关系要符合下表中为"✅"的场景:'."\n" + ."\n" + .' | |订阅音频流 | 订阅视频流 | 订阅音视频流 |'."\n" + .' | --- |--- | --- | --- |'."\n" + .' | 推音频流 | ✅ | ❌ | ❌ |'."\n" + .' | 推视频流 | ❌ | ✅ | ✅ |'."\n" + .' | 推音视频流 | ✅ | ✅ | ✅ |'."\n" + ."\n" + .'- 否则,录制出的文件可能与预期不符,或者暂时无文件生成。'."\n" + ."\n" + .'- 在单流录制模式下,如果某个UserId的源流在推流过程中发生分辨率变化,并且要求录制mp4文件,可能导致兼容性问题。具体表现为:当使用不支持动态分辨率切换的播放器打开该mp4文件时,从分辨率变更时刻起的画面可能停滞。'."\n" + ."\n" + .'- 当选择录制到VOD,在收到STOPPED回调时,只能表示文件开始上传到VOD,而不代表文件已上传完毕,这与录制到OSS是不同的。'."\n" + ."\n" + .'- 当选择录制到VOD,开启自动合并后,当录制结束时,至少要有两个媒体资源文件,才会进行自动合并,即如果结束录制时只有一个录制文件,那么不会生成合并文件。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartRtcCloudRecording'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:StartRtcCloudRecording', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6CFDE7AB-571A-14EA-B072-989FF753****\\",\\n \\"MsgTid\\": \\"169830****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 6CFDE7AB-571A-14EA-B072-989FF753****\\n","errorExample":""}]', - 'title' => '发送消息给指定用户', - 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', ], - 'ListLiveMessageApps' => [ - 'summary' => '调用ListLiveMessageApps查询互动消息应用列表。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'StartRtcCloudTranscode' => [ + 'summary' => '创建云端转码任务。', + 'path' => '', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '193889', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'SortType', + 'name' => 'AppId', 'in' => 'query', - 'allowEmptyValue' => false, + 'schema' => ['description' => '频道所属的应用 ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。', 'type' => 'string', 'required' => true, 'example' => '********-7074-****-9ef5-85c19a4*****'], + ], + [ + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => ['description' => '待转码用户所属的频道 ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。', 'type' => 'string', 'required' => true, 'example' => 'myChannel'], + ], + [ + 'name' => 'InputParam', + 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '排序方式,按创建时间先后,1为顺序,2为逆序', - 'description' => '排序方式,按创建时间先后进行排序。取值:'."\n" - .'- 1:顺序'."\n" - .'- 2:逆序', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '2', - 'minimum' => '1', - 'example' => '1', - 'enum' => [ - '1', - '2', + 'description' => '订阅输入相关参数。', + 'type' => 'object', + 'properties' => [ + 'SingleSubUserParam' => [ + 'description' => '单流订阅输入参数。', + 'type' => 'object', + 'properties' => [ + 'UserId' => ['description' => '订阅的用户ID。', 'type' => 'string', 'required' => true, 'example' => 'userA'], + 'StreamType' => ['description' => '订阅用户的媒体类型。取值:'."\n" + ."\n" + .'- 0(默认值):原始流,包含音频与视频流。'."\n" + .'- 1:仅音频流。(暂不支持,设置无效)'."\n" + .'- 2:仅视频流。(暂不支持,设置无效)', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '0'], + 'SourceType' => ['description' => '订阅的视频输入流类型,仅订阅媒体类型包含视频流有效。取值:'."\n" + ."\n" + .'- 0(默认值):摄像头。'."\n" + .'- 1:屏幕共享。(暂不支持,设置无效)', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '0'], + ], + 'required' => true, + ], ], + 'required' => true, ], ], [ - 'name' => 'NextPageToken', + 'name' => 'OutputParams', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '', - 'description' => '查询页的起始位置,若为空或者-1则默认为首页。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '-1', + 'description' => '转码输出相关参数。', + 'type' => 'array', + 'items' => [ + 'description' => '转码输出参数。', + 'type' => 'object', + 'properties' => [ + 'ChannelId' => ['description' => '转码流转推到的频道ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。(暂不支持转推到不同的频道,设置无效)', 'type' => 'string', 'required' => true, 'example' => 'myChannel'], + 'UserId' => ['description' => '转码流转推到频道的用户ID,需保证与频道内其它用户ID不同。', 'type' => 'string', 'required' => true, 'example' => 'userA_360p'], + 'UserToken' => ['description' => '转码流转推到频道所需的用户Token,详见[Token鉴权](https://help.aliyun.com/zh/live/token-based-authentication)。', 'type' => 'string', 'required' => true, 'example' => 'eyJhcHBpZCI********'], + 'TranscodeTemplate' => ['description' => '转码模板名。取值:'."\n" + ."\n" + .'- alimcopy'."\n" + .'- lld'."\n" + .'- lsd'."\n" + .'- lhd'."\n" + .'- lud', 'type' => 'string', 'required' => true, 'example' => 'lhd'], + ], + 'required' => false, + ], + 'required' => true, ], ], [ - 'name' => 'DataCenter', + 'name' => 'MaxIdleTime', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '空闲超时时间,当任务处于空闲状态(订阅不到指定主播流)的时长超过一定时间会自动停止。'."\n" + .'单位为秒,范围须在[10,14400]内,即最大 4 小时,默认为 300 秒。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '600'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回参数。', + 'description' => '返回内容。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B8EB4994-1368-1458-B9F3-5B88D76D734C', - ], - 'HasMore' => [ - 'description' => '是否有下一页。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'NextPageToken' => [ - 'description' => '下一页的起始位置,Hasmore为true时返回。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'AppList' => [ - 'description' => '互动消息应用列表。', - 'type' => 'array', - 'items' => [ - 'description' => '列表详细信息。', - 'type' => 'object', - 'properties' => [ - 'AppId' => [ - 'description' => '所查询的互动消息应用ID。', - 'type' => 'string', - 'example' => 'demo', - ], - 'AppKey' => [ - 'description' => '互动消息应用的AppKey,在该互动消息应用ID的相关操作鉴权时需要该信息。', - 'type' => 'string', - 'example' => '**********************************', - ], - 'AppSign' => [ - 'description' => '互动消息应用签名,互动消息服务SDK需要该信息。', - 'type' => 'string', - 'example' => '**************************************************************************', - ], - 'Disable' => [ - 'description' => '该互动消息应用是否被禁用。', - 'type' => 'string', - 'example' => 'false', - ], - 'AppName' => [ - 'description' => 'App名称。', - 'type' => 'string', - 'example' => 'testApp', - ], - 'CreateTime' => [ - 'description' => '创建时间,用UNIX时间戳表示,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1698305471', - ], - 'ModifyTime' => [ - 'description' => '修改时间,用UNIX时间戳表示,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1698305471', - ], - 'MsgLifeCycle' => [ - 'description' => 'App内群组消息的存储时效档位,取值:'."\n" - ."\n" - .'- 0:默认值,存储30天。'."\n" - .'- 1:存储90天。'."\n" - .'- 2:存储180天。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'DataCenter' => [ - 'description' => '数据中心。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], + 'TaskId' => ['description' => '云端转码任务ID。', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParameter%s', 'errorMessage' => '%s.', 'description' => ''], + ['errorCode' => 'MissingParameter%s', 'errorMessage' => '%s.', 'description' => ''], + ['errorCode' => 'TooManyRequests', 'errorMessage' => '%s.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s.', 'description' => ''], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'NotFound%s', 'errorMessage' => '%s.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建云端转码任务', + 'description' => '## 服务接入点'."\n" + .'本接口可用的服务接入点包括:'."\n" + ."\n" + .' |地域名称 |地域ID | 公网接入地址 |'."\n" + .' | --- | --- | --- |'."\n" + .' | 新加坡 | ap-southeast-1 | live.ap-southeast-1.aliyuncs.com |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B8EB4994-1368-1458-B9F3-5B88D76D734C\\",\\n \\"HasMore\\": true,\\n \\"NextPageToken\\": 1,\\n \\"AppList\\": [\\n {\\n \\"AppId\\": \\"demo\\",\\n \\"AppKey\\": \\"**********************************\\",\\n \\"AppSign\\": \\"**************************************************************************\\",\\n \\"Disable\\": \\"false\\",\\n \\"AppName\\": \\"testApp\\",\\n \\"CreateTime\\": 1698305471,\\n \\"ModifyTime\\": 1698305471,\\n \\"MsgLifeCycle\\": 1,\\n \\"DataCenter\\": \\"cn-shanghai\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n B8EB4994-1368-1458-B9F3-5B88D76D734C\\n true\\n 1\\n \\n demo\\n **********************************\\n **************************************************************************\\n false\\n testApp\\n 1698305471\\n 1698305471\\n 1\\n cn-shanghai\\n \\n","errorExample":""}]', - 'title' => '查询直播互动应用列表', - 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\"\\n}","type":"json"}]', ], - 'DescribeLiveMessageApp' => [ - 'summary' => '调用DescribeLiveMessageApp查询互动消息应用信息。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'StopCaster' => [ + 'summary' => '停止导播台。停止PVW(预览场景)、PGM(正式输出场景)场景。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '193804', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '待查询的AppID', - 'description' => '待查询的互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DataCenter', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '导播台ID,请确保传入的CasterId是正确的。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9FB68B5B-ED07-18F0-A3CF-083F4E74****', - ], - 'AppId' => [ - 'description' => '所查询的互动消息应用ID。', - 'type' => 'string', - 'example' => 'demo', - ], - 'AppName' => [ - 'description' => 'App名称。', - 'type' => 'string', - 'example' => 'testApp', - ], - 'AppKey' => [ - 'description' => '互动消息应用的AppKey,在进行与该互动消息应用ID相关的各种鉴权操作时需要该信息。', - 'type' => 'string', - 'example' => '**********************************', - ], - 'AppSign' => [ - 'description' => '互动消息应用签名,互动消息服务SDK需要该信息。', - 'type' => 'string', - 'example' => '**************************************************************************', - ], - 'AuditType' => [ - 'description' => '安全审核方式。取值:'."\n" - .'- 0:不开启安全审核。'."\n" - .'- 1:内置安全审核。'."\n" - .'- 2:自定义安全审核。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'AuditUrl' => [ - 'description' => 'AuditType取值为2时提供的安全审核地址。', - 'type' => 'string', - 'example' => 'http://example.aliyundoc.com/exampleaudit', - ], - 'EventCallbackUrl' => [ - 'description' => '用户登录、登出、加入、离开群组等事件的回调地址,若为空则不开启事件回调。', - 'type' => 'string', - 'example' => 'http://example.aliyundoc.com/examplecallback', - ], - 'Disable' => [ - 'description' => '是否禁用互动消息应用。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'CreateTime' => [ - 'description' => '创建时间,用UNIX时间戳表示,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1698305471', - ], - 'ModifyTime' => [ - 'description' => '修改时间,用UNIX时间戳表示,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1698305471', - ], - 'MsgLifeCycle' => [ - 'description' => 'App内群组消息的存储时效档位,取值:'."\n" - ."\n" - .'- 0:默认值,存储30天。'."\n" - .'- 1:存储90天。'."\n" - .'- 2:存储180天。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'DataCenter' => [ - 'description' => '数据中心。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态不支持,请检查后重试。'], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene不存在,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9FB68B5B-ED07-18F0-A3CF-083F4E74****\\",\\n \\"AppId\\": \\"demo\\",\\n \\"AppName\\": \\"testApp\\",\\n \\"AppKey\\": \\"**********************************\\",\\n \\"AppSign\\": \\"**************************************************************************\\",\\n \\"AuditType\\": 2,\\n \\"AuditUrl\\": \\"http://example.aliyundoc.com/exampleaudit\\",\\n \\"EventCallbackUrl\\": \\"http://example.aliyundoc.com/examplecallback\\",\\n \\"Disable\\": false,\\n \\"CreateTime\\": 1698305471,\\n \\"ModifyTime\\": 1698305471,\\n \\"MsgLifeCycle\\": 1,\\n \\"DataCenter\\": \\"cn-shanghai\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 9FB68B5B-ED07-18F0-A3CF-083F4E74****\\n demo\\n testApp\\n **********************************\\n **************************************************************************\\n 2\\n http://example.aliyundoc.com/exampleaudit\\n http://example.aliyundoc.com/examplecallback\\n false\\n 1698305471\\n 1698305471\\n 1\\n cn-shanghai\\n","errorExample":""}]', - 'title' => '查询直播互动应用信息', - 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'ModifyLiveMessageAppDisable' => [ - 'summary' => '修改App禁用。', - 'methods' => [ - 'post', + 'title' => '停止导播台', + 'description' => '先通过[CreateCaster接口](~~2848009~~)创建导播台,再调用本接口停止导播台。停止PVW(预览场景)、PGM(正式输出场景)场景。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopCaster'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopCaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + ], + 'StopCasterScene' => [ + 'summary' => '停止指定场景,限制仅用于停止PVW场景(预览场景)。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '需要修改信息的互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Disable', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '是否禁用互动消息应用。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****'], ], [ - 'name' => 'DataCenter', + 'name' => 'SceneId', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '场景ID。'."\n" + ."\n" + .'当场景是PVW场景时,本API接口才可用。场景类型请参见[查询导播台场景](~~2848102~~)。', 'type' => 'string', 'required' => true, 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '6AA1AE11-EA78-1FD4-A966-6BA84307****', - ], - 'AppId' => [ - 'description' => '需要修改信息的互动消息应用ID。', - 'type' => 'string', - 'example' => 'demo', - ], - 'AppSign' => [ - 'description' => '互动消息应用签名,互动消息服务SDK需要该信息。', - 'type' => 'string', - 'example' => '********************', - ], - 'Disable' => [ - 'description' => '该互动消息应用是否禁用。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidSceneId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SceneId无效,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态不支持,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态为空闲,请检查后重试。'], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6AA1AE11-EA78-1FD4-A966-6BA84307****\\",\\n \\"AppId\\": \\"demo\\",\\n \\"AppSign\\": \\"********************\\",\\n \\"Disable\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 6AA1AE11-EA78-1FD4-A966-6BA84307****\\n demo\\n ********************\\n true\\n","errorExample":""}]', - 'title' => '修改直播互动应用禁用信息', - 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'ModifyLiveMessageAppAudit' => [ - 'summary' => '修改互动消息应用安全审核设置。', - 'methods' => [ - 'post', + 'title' => '停止导播台场景', + 'description' => '调用本接口停止指定场景,限制仅用于停止PVW场景(预览场景)。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopCasterScene'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopCasterScene', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', + ], + 'StopEdgeTranscodeJob' => [ + 'summary' => '停止边缘转码任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '需要修改信息的互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], - ], - [ - 'name' => 'AuditType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'title' => '安全审核方式:0为不进行安全审核,1为内置安全审核, 2为自定义安全审核', - 'description' => '安全审核方式。取值:'."\n" - .'- 0:不进行安全审核'."\n" - .'- 1:内置安全审核'."\n" - .'- 2:自定义安全审核', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - 'enum' => [ - '0', - '1', - '2', - ], - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'AuditUrl', + 'name' => 'ClusterId', 'in' => 'query', - 'schema' => [ - 'title' => '如果是自定义安全审核,则需要提供安全审核的地址', - 'description' => '如果是自定义安全审核(AuditType=2),则需要提供安全审核的地址。安全审核地址以http://或https://开头,不包含私有IP,不允许带端口号。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://example.aliyundoc.com/exampleaudit', - ], + 'schema' => ['description' => '机房ID。', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******'], ], [ - 'name' => 'DataCenter', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '边缘转码任务ID。', 'type' => 'string', 'required' => true, 'example' => '****20b48fb04483915d4f2cd8ac****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4C4E8440-3838-1831-9BDE-AFC15803****', - ], - 'AppId' => [ - 'description' => '需要修改的互动消息应用ID。', - 'type' => 'string', - 'example' => 'demo', - ], - 'AppSign' => [ - 'description' => '互动消息应用签名,互动消息服务SDK需要该信息。', - 'type' => 'string', - 'example' => '**************************************************************************', - ], - 'AuditType' => [ - 'description' => '安全审核方式。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'AuditUrl' => [ - 'description' => 'AuditType为2时提供的安全审核地址。', - 'type' => 'string', - 'example' => 'http: //example.aliyundoc.com/exampleaudit', - ], - 'AuditNeedAuthentication' => [ - 'description' => '调用鉴权。如果是自定义安全审核,则默认为true开启调用鉴权。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'JobId' => ['description' => '边缘转码任务ID。', 'type' => 'string', 'example' => '****20b48fb04483915d4f2cd8ac****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'ErrorInvalidAuditUrl', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '操作拒绝,请检查后重试。'], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => '无权限,请检查后重试。'], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'JobNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '任务不存在,请检查后重试。'], ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ], + 'title' => '停止边缘转码任务', + 'description' => '- 本接口用于查停止边缘转码任务。'."\n" + ."\n" + .'- 用户需要具有访问边缘转码服务的权限,且转码任务处于运行中状态,才能正常调用本接口。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopEdgeTranscodeJob'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'live:StopEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"4C4E8440-3838-1831-9BDE-AFC15803****\\",\\n \\"AppId\\": \\"demo\\",\\n \\"AppSign\\": \\"**************************************************************************\\",\\n \\"AuditType\\": 2,\\n \\"AuditUrl\\": \\"http: //example.aliyundoc.com/exampleaudit\\",\\n \\"AuditNeedAuthentication\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 4C4E8440-3838-1831-9BDE-AFC15803****\\n demo\\n **************************************************************************\\n 2\\n http: //example.aliyundoc.com/exampleaudit\\n true\\n","errorExample":""}]', - 'title' => '修改直播互动应用鉴权信息', - 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ****20b48fb04483915d4f2cd8ac****\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', ], - 'ModifyLiveMessageAppCallback' => [ - 'summary' => '修改互动消息应用回调信息。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'StopLiveDomain' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '107251', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'DomainName', 'in' => 'query', + 'schema' => ['description' => '直播推流域名或播流域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '需要修改的互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '324AEFFF-308C-4DA7-8CD3-01B277B98F28'], + ], + 'description' => '', ], ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '停用直播域名', + 'summary' => '停用状态为启用的直播域名,将DomainStatus变更为offline。', + 'description' => '停用该直播域名后,域名信息仍保留。针对直播域名的请求,系统将自动回源处理。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-29T06:29:45.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopLiveDomain'], + ], + ], + 'ramActions' => [ [ - 'name' => 'EventCallbackUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '用户登录、登出、加入、离开群组等事件回调地址。若为空则不开启回调。事件回调地址以http://或https://开头,不包含私有IP,不允许带端口号。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://example.aliyundoc.com/examplecallback', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopLiveDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"324AEFFF-308C-4DA7-8CD3-01B277B98F28\\"\\n}","type":"json"}]', + ], + 'StopLiveMPUTask' => [ + 'summary' => '停止混流转推任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '178700', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], + ], + 'parameters' => [ [ - 'name' => 'DataCenter', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '应用ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourAppId'], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => ['description' => '任务ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大55字符。此ID为旁路转推的标识,需保证唯一。', 'type' => 'string', 'required' => true, 'example' => 'yourTaskId'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '1F0FFEAD-B7D5-1D4A-A6B9-8C63ADF6****', - ], - 'AppId' => [ - 'description' => '修改回调的互动消息应用ID。', - 'type' => 'string', - 'example' => 'demo', - ], - 'AppSign' => [ - 'description' => '互动消息应用签名,互动消息服务SDK需要该信息。', - 'type' => 'string', - 'example' => '**************************************************************************', - ], - 'EventCallbackUrl' => [ - 'description' => '用户登录、登出、加入、离开群组等事件回调地址。若为空则不返回。', - 'type' => 'string', - 'example' => 'http://example.aliyundoc.com/examplecallback', - ], - 'EventCallbackNeedAuthentication' => [ - 'description' => '事件回调是否需要鉴权。默认为true。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0F72851F-5DC1-1979-9B2C-450040316C3E'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'ErrorInvalidEventCallbackUrl', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], + ['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId无效,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => '无权限,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '停止混流转推任务(新)', + 'description' => '- 调用本接口前,您必须已经调用[StartLiveMPUTask](~~2848199~~)开始混流转推任务。'."\n" + .'- 如果需要停止混流转推任务时,此时混流转推任务异常(未调用StopLiveMPUTask停止任务),本次混流转推任务会在最后一个人离开频道2分钟后自动停止任务。停止后如果需要恢复混流转推,您需要重新调用[StartLiveMPUTask](~~2848199~~)接口。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为500次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-07-04T07:02:34.000Z', 'description' => '错误码发生变更'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1F0FFEAD-B7D5-1D4A-A6B9-8C63ADF6****\\",\\n \\"AppId\\": \\"demo\\",\\n \\"AppSign\\": \\"**************************************************************************\\",\\n \\"EventCallbackUrl\\": \\"http://example.aliyundoc.com/examplecallback\\",\\n \\"EventCallbackNeedAuthentication\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 1F0FFEAD-B7D5-1D4A-A6B9-8C63ADF6****\\n demo\\n **************************************************************************\\n http://example.aliyundoc.com/examplecallback\\n true\\n","errorExample":""}]', - 'title' => '修改直播互动应用回调信息', - 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'KickLiveMessageGroupUser' => [ - 'summary' => '踢出互动消息群组用户。', - 'methods' => [ - 'post', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopLiveMPUTask'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:StopLiveMPUTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0F72851F-5DC1-1979-9B2C-450040316C3E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0F72851F-5DC1-1979-9B2C-450040316C3E\\n","errorExample":""}]', + ], + 'StopLivePullToPush' => [ + 'summary' => '停止任务接口。', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '257294', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '需要踢人的互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'GroupId', + 'name' => 'Region', 'in' => 'query', 'schema' => [ - 'description' => '需要处理的群组的GroupID。', + 'description' => '指定直播中心查询。取值:'."\n" + .'- ap-southeast-1(新加坡)'."\n" + .'- ap-southeast-5(印度尼西亚)'."\n" + .'- cn-beijing(北京)'."\n" + .'- cn-shanghai(上海)', 'type' => 'string', 'required' => true, - 'example' => 'grouptest', + 'enumValueTitles' => ['cn-shenzhen' => '深圳', 'cn-qingdao' => '青岛', 'preregion' => '预发', 'cn-beijing' => '北京', 'cn-shanghai' => '上海', 'ap-southeast-1' => '新加坡', 'eu-central-1' => '德国-法兰克福', 'ap-northeast-1' => '日本-东京', 'ap-southeast-5' => '印度尼西亚', 'me-central-1' => '沙特-利雅得'], + 'example' => 'preregion', + 'enum' => ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-5', 'eu-central-1', 'me-central-1', 'cn-beijing', 'cn-shanghai', 'cn-shenzhen', 'cn-qingdao', 'preregion'], ], ], [ - 'name' => 'KickoffUser', + 'name' => 'TaskId', 'in' => 'query', 'schema' => [ - 'description' => '需要踢出去的用户。', + 'description' => '根据任务ID查询。', 'type' => 'string', 'required' => true, - 'example' => 'uid1', - ], - ], - [ - 'name' => 'DataCenter', - 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', + 'example' => '3bb44350-0c34-49c7-8c5e-cba5e6c0****', + 'enum' => [], ], ], ], @@ -60534,4010 +48811,253 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回参数。', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '97168878-5288-10CE-AE56-E2D1627F****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'a05e6b15-15af-405b-a4a2-0152245d****'], + 'TaskId' => ['description' => '新建任务id。', 'type' => 'string', 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'LiveServiceNotFound', 'errorMessage' => 'Your account does not open Live service yet', 'description' => '您的账户尚未开通直播服务'], + ['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => '这个aluid没有直播域名'], + ['errorCode' => 'InvalidParam.CodeIllegalDuration', 'errorMessage' => '%s.', 'description' => '开始时间应该小于结束时间。'], + ['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => '任务不存在。'], + ['errorCode' => 'CodeTaskHasStopped', 'errorMessage' => 'The task has been stopped.', 'description' => '任务已被停止。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"97168878-5288-10CE-AE56-E2D1627F****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 97168878-5288-10CE-AE56-E2D1627F****\\n","errorExample":""}]', - 'title' => '将指定用户从群组中踢出去', - 'description' => '调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"a05e6b15-15af-405b-a4a2-0152245d****\\",\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\"\\n}","type":"json"}]', + 'title' => '停止拉流转推任务', + 'description' => '- 调用本接口停止拉流转推任务。'."\n" + .'- 支持强制停止运行中(含异常重试状态)的任务,对未运行的任务无效。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'ModifyLiveMessageUserInfo' => [ - 'summary' => '修改用户信息。', - 'methods' => [ - 'post', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopLivePullToPush'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopLivePullToPush', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'StopLiveStreamMonitor' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '198649', - 'abilityTreeNodes' => [ - 'FEATUREliveSL6Y07', - ], + 'abilityTreeNodes' => ['FEATUREliveSM955S'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '需要修改用户信息的互动消息应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], - ], - [ - 'name' => 'UserId', - 'in' => 'query', - 'schema' => [ - 'description' => '需要修改的用户ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'uid2', - ], - ], - [ - 'name' => 'UserMetaInfo', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '修改后的用户扩展信息,长度不超过512字节。', - 'type' => 'string', - 'required' => false, - 'example' => 'uid2meta2', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DataCenter', + 'name' => 'MonitorId', 'in' => 'query', - 'schema' => [ - 'description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致,当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], + 'schema' => ['description' => '监播室ID。'."\n" + .'>可查看[CreateLiveStreamMonitor](~~2848129~~)接口返回参数值获取**MonitorId**。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。如果修改用户信息成功,或用户不存在,则接口返回成功。', 'type' => 'object', 'properties' => [ - 'FailList' => [ - 'description' => '对象数组。', - 'type' => 'array', - 'items' => [ - 'description' => '对象数组。', - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '错误码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '440', - ], - 'GroupId' => [ - 'description' => '用户所在的群组ID。若修改失败,则在查询群组用户列表时用户信息不会同步更新。可根据失败原因检查后重新尝试。', - 'type' => 'string', - 'example' => 'grouptest2', - ], - 'Reason' => [ - 'description' => '群组修改失败的原因。', - 'type' => 'string', - 'example' => 'group not exists or already deleted', - ], - 'Success' => [ - 'description' => '群组修改失败。', - 'type' => 'boolean', - 'example' => 'false', - ], - ], - ], - ], - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3271ACD2-F143-1204-AFDB-9A87C131****', - ], - 'SuccessList' => [ - 'description' => '对象数组。', - 'type' => 'array', - 'items' => [ - 'description' => '对象数组。', - 'type' => 'object', - 'properties' => [ - 'GroupId' => [ - 'description' => '用户所在的群组ID。若修改成功,则在查询群组用户列表时用户信息会同步更新。', - 'type' => 'string', - 'example' => 'grouptest1', - ], - 'Success' => [ - 'description' => '群组修改成功。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidMonitorId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数MonitorId无效,请检查后重试。'], + ['errorCode' => 'StreamMonitorAlreadyStop', 'errorMessage' => '%s, please check and try again later.', 'description' => '监播室已经停止,请检查后重试。'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'UserQuotaExceed', 'errorMessage' => 'Quota exceeded: %s.', 'description' => '超出配额:%s。'], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'StreamMonitorNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => '监播室不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"FailList\\": [\\n {\\n \\"Code\\": 440,\\n \\"GroupId\\": \\"grouptest2\\",\\n \\"Reason\\": \\"group not exists or already deleted\\",\\n \\"Success\\": false\\n }\\n ],\\n \\"RequestId\\": \\"3271ACD2-F143-1204-AFDB-9A87C131****\\",\\n \\"SuccessList\\": [\\n {\\n \\"GroupId\\": \\"grouptest1\\",\\n \\"Success\\": true\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 3271ACD2-F143-1204-AFDB-9A87C131****\\n \\n grouptest1\\n true\\n \\n \\n grouptest2\\n false\\n group not exists or already deleted\\n 440\\n \\n","errorExample":""}]', - 'title' => '修改用户信息', - 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'StartRtcCloudRecording' => [ - 'summary' => '启动rtc云端录制任务。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '269297', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], - 'tenantRelevance' => 'tenant', - ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '待录制的频道所属app的id。该app需要归属于当前调用接口账号所属的主账号。', - 'type' => 'string', - 'required' => true, - 'example' => '********-7074-****-9ef5-85c19a4*****', - ], - ], - [ - 'name' => 'ChannelId', - 'in' => 'query', - 'schema' => [ - 'description' => '待录制的频道对应的id。需要确保调用本接口时,该频道内有用户,否则会创建录制任务失败。', - 'type' => 'string', - 'required' => true, - 'example' => 'room1024', - ], - ], - [ - 'name' => 'SubscribeParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '订阅相关参数。', - 'type' => 'object', - 'properties' => [ - 'SubscribeUserIdList' => [ - 'description' => '订阅的UserId信息列表,单流录制模式下,会对其中每个UserId分别进行录制;混流录制模式下,会将所有UserId的音视频混合到一组音视频中。'."\n" - .'> - 数组不能为空,并且最多支持17个元素。', - 'type' => 'array', - 'items' => [ - 'description' => '订阅的UserId的信息。', - 'type' => 'object', - 'properties' => [ - 'UserId' => [ - 'description' => '订阅的UserId。', - 'type' => 'string', - 'required' => true, - 'example' => 'userA', - ], - 'StreamType' => [ - 'description' => '订阅的UserId的媒体类型。取值:'."\n" - ."\n" - .'- 0:原始流,即包括音频和视频。(默认值)'."\n" - ."\n" - .'- 1:仅音频流。'."\n" - ."\n" - .'- 2:仅视频流(混流录制模式下有效)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - '2', - ], - ], - 'SourceType' => [ - 'description' => '该UserId的视频输入流类型,仅订阅非纯音频流时(StreamType!=1)有效。取值:'."\n" - ."\n" - .'- 0:摄像头。(默认值)'."\n" - ."\n" - .'- 1:屏幕共享。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - ], - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 17, - 'minItems' => 1, - ], - ], - 'required' => true, - ], - ], - [ - 'name' => 'RecordParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '录制相关参数。', - 'type' => 'object', - 'properties' => [ - 'RecordMode' => [ - 'description' => '录制模式。取值:'."\n" - ."\n" - .'- 0:单流录制模式,对于订阅的每个UserId,各自生成录制文件。'."\n" - ."\n" - .'- 1:混流录制模式,对于订阅的UserId,将这些用户的流进行混合转码后,仅生成一组录制文件。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '0', - 'enum' => [ - '0', - '1', - ], - ], - 'StreamType' => [ - 'description' => '录制的输出流的媒体类型。取值:'."\n" - ."\n" - .'- 0:原始流,即包括音频和视频。(默认值)'."\n" - ."\n" - .'- 1:仅音频流。'."\n" - ."\n" - .'- 2:仅视频流。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - '2', - ], - ], - 'MaxFileDuration' => [ - 'description' => '录制文件最大时长(秒)。超过该时长的录制文件会被分割。取值范围须在[180,7200]内,即最大2小时。不指定时,则默认2小时。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '7200', - 'minimum' => '180', - 'example' => '7200', - 'default' => '7200', - ], - ], - 'required' => true, - ], - ], - [ - 'name' => 'StorageParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '存储相关参数。', - 'type' => 'object', - 'properties' => [ - 'StorageType' => [ - 'description' => '存储方式。取值:'."\n" - ."\n" - .'- 0:VOD'."\n" - .'- 1:OSS', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - 'enum' => [ - '0', - '1', - ], - ], - 'FileInfo' => [ - 'description' => '文件存储信息,用于指定录制文件的格式、存储位置和命名,仅在StorageType为OSS时有效。'."\n" - ."\n" - .'> 对于数组中每个元素,会分别生成对应配置的录制文件。不设置时,默认包含HLS格式的配置;设置时,如果未包含HLS格式的配置,会自动生成HLS格式的默认配置。', - 'type' => 'array', - 'items' => [ - 'description' => '不同文件格式的存储配置。', - 'type' => 'object', - 'properties' => [ - 'Format' => [ - 'description' => '文件存储格式。取值:'."\n" - ."\n" - .'- HLS'."\n" - .'- MP4'."\n" - .'- MP3', - 'type' => 'string', - 'required' => true, - 'example' => 'HLS', - 'enum' => [ - 'HLS', - 'MP4', - 'MP3', - ], - ], - 'FileNamePattern' => [ - 'description' => '文件命名格式。可以由以下变量按任意顺序选择并组合:'."\n" - ."\n" - .'- AppId'."\n" - .'- ChannelId'."\n" - .'- UserId(单流模式下必选;混流模式下无效,选择的话会保留为{UserId}字符串)'."\n" - .' - RecordMode'."\n" - .' - 值为0时对应Single'."\n" - .' - 值为1时对应Mix'."\n" - ."\n" - .'- SourceType'."\n" - .' - 单流模式下,当流类型为纯视频流时,配置生效,SourceType可配置为:'."\n" - .' - 当值为0时,对应C(Camera)摄像头视频流。'."\n" - .' - 当值为1时,对应S(Screen)屏幕共享视频流。'."\n" - .' - 单流模式下,当流类型为纯音频流时,SourceType自动配置为A(Audio),用于标识该录制内容为纯音频流。'."\n" - .' - 单流模式下,当流类型为原始流时,配置生效,SourceType可配置为:'."\n" - .' - 当值为0时,对应OC(Original Camera)摄像头原始流。'."\n" - .' - 当值为1时,对应OS(Original Screen)屏幕共享原始流。'."\n" - .' - 其他场景下,SourceType配置无效,若用户手动配置了SourceType,系统将会保留{SourceType}占位符字符串。'."\n" - ."\n" - .'- StreamType(使用RecordParams参数下的StreamType参数)'."\n" - .' - 当值为0时对应AV(Audio Video)音频流与视频流。'."\n" - .' - 当值为1时对应A(Audio)音频流。'."\n" - .' - 当值为2时对应V(Video)视频流。'."\n" - ."\n" - .'- StartTime:开始录制的时间,为东八区时区,格式类似2025-03-25-11:27:28。(不使用默认值时必选)'."\n" - ."\n" - .'默认值如下:'."\n" - .'- 单流录制模式'."\n" - .' - {AppId}\\_{ChannelId}\\_{UserId}\\_{StartTime}'."\n" - .' - 如果同时订阅了同一个UserId的不同StreamType或不同SourceType,则默认值为{AppId}\\_{ChannelId}\\_{UserId}\\_{SourceType}\\_{StartTime}'."\n" - .'- 混流录制模式'."\n" - .' - {AppId}\\_{ChannelId}\\_{StartTime}'."\n" - ."\n" - .'> - 字符串只能由以上变量组成,变量名需要用{}包裹,变量名之间用一个下划线(_)分隔,每个变量至多在字符串内出现一次。'."\n" - .'> - 当命名为xxx后,文件最终会保存为类似TaskId/xxx.m3u8的形式,其中TaskId是在启动云端录制任务时生成的任务id,会自动添加到存储路径中。', - 'type' => 'string', - 'required' => false, - 'example' => '{AppId}_{ChannelId}_{StartTime}_{UserId}', - ], - 'SliceNamePattern' => [ - 'description' => '切片命名格式,仅在HLS格式下有效。与FileNamePattern类似,只是可选变量多出了Sequence:'."\n" - ."\n" - .'- AppId'."\n" - .'- ChannelId'."\n" - .'- UserId(单流模式下必选;混流模式下无效,选择的话会保留为{UserId}字符串)'."\n" - .'- RecordMode'."\n" - .' - 值为0时对应Single'."\n" - .' - 值为1时对应Mix'."\n" - ."\n" - .'- SourceType'."\n" - .' - 单流模式下,当流类型为纯视频流时此参数生效,SourceType可配置为:'."\n" - .' - 取值为0,对应C(Camera)摄像头视频流。'."\n" - .' - 取值为1,对应S(Screen)屏幕共享流。'."\n" - .' - 单流模式下,当流类型为纯音频流时,SourceType自动配置为A(Audio),用于标识该录制内容为纯音频流。'."\n" - .' - 单流模式下,当流类型为原始流时,配置生效,SourceType可配置为:'."\n" - .' - 当值为0时,对应OC(Original Camera)摄像头原始流。'."\n" - .' - 当值为1时,对应OS(Original Screen)屏幕共享原始流。'."\n" - .' - 其他场景下,SourceType配置无效,若用户手动配置该参数,系统将保留`{SourceType}`占位符字符串。'."\n" - ."\n" - .'- StreamType(使用RecordParams参数下的StreamType参数)'."\n" - .' - 当值为0时对应AV(Audio Video)包含音频流与视频流。'."\n" - .' - 当值为1时对应A(Audio )音频流。'."\n" - .' - 当值为2时对应V(Video)视频流。'."\n" - .'- StartTime:开始录制的时间,为东八区时区,格式类似2025-03-25-11:27:28。(不使用默认值时必选)。'."\n" - ."\n" - .'- Sequence:HLS格式下,ts文件名中包含Sequence,其他格式下无效。(不使用默认值时必选)。'."\n" - ."\n" - .'默认值如下:'."\n" - .'- 单流录制模式'."\n" - .' - {AppId}\\_{ChannelId}\\_{UserId}\\_{StartTime}\\_{Sequence}'."\n" - .' - 如果同时订阅了同一个UserId的不同StreamType或不同SourceType,则默认值为{AppId}\\_{ChannelId}\\_{UserId}\\_{SourceType}\\_{StartTime}\\_{Sequence}'."\n" - .'- 混流录制模式'."\n" - .' - {AppId}\\_{ChannelId}\\_{StartTime}\\_{Sequence}'."\n" - ."\n" - .'> - 字符串只能由以上变量组成,变量名需要用{}包裹,变量名之间用一个下划线(_)分隔,每个变量至多在字符串内出现一次。'."\n" - .'> - 当命名为xxx后,切片文件最终会保存为类似TaskId/xxx.ts的形式,其中TaskId是在启动云端录制任务时生成的任务id,会自动添加到存储路径中。', - 'type' => 'string', - 'required' => false, - 'example' => '{AppId}_{ChannelId}_{StartTime}_{Sequence}', - ], - 'FilePathPrefix' => [ - 'description' => '文件存储路径。数组中的元素对应每一级目录,例如参数值为["dir1","dir2"]时,xxx.m3u8文件将被保存为dir1/dir2/TaskId/xxx.m3u8。该参数为空时,上述例子将直接保存为TaskId/xxx.m3u8。'."\n" - .'- 路径结尾会自动补充任务的TaskId,以避免不同任务的录制文件混在一起。'."\n" - .'- 如果设置了FilePathPrefix,那么数组中每个元素,只能由英文字母(a-zA-Z)、数字(0-9)、短横线(-)、下划线(_)组成,并且不能为空字符串。'."\n" - .'- 数组中各层路径拼接好后,总长度不能超过128个字符(包括连接的\'/\',不包括自动填入的TaskId)。例如参数值为["dir1","dir2"],那么拼接好的路径就是"dir1/dir2/",也即数组中所有元素的总字符数与数组长度之和(对应每层路径后的"/"),不得超过128。'."\n" - .'- 数组中元素个数不得超过5,即最多自定义5层路径。', - 'type' => 'array', - 'items' => [ - 'description' => '每一级目录名。', - 'type' => 'string', - 'required' => false, - 'example' => 'dir1', - ], - 'required' => false, - ], - 'SliceDuration' => [ - 'title' => '指定切片时长,单位为秒,仅HLS格式下有效。取值范围在[10,30]内', - 'description' => '指定切片时长,单位为秒,仅HLS格式下有效,取值范围须在[10,30]内。(默认值为30)'."\n" - ."\n" - .'没有特殊需求时,建议直接使用默认值。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '30', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - 'OSSParams' => [ - 'description' => 'OSS存储配置。当存储方式为OSS时必须配置,当存储方式为VOD时无效。', - 'type' => 'object', - 'properties' => [ - 'OSSEndpoint' => [ - 'description' => 'OSS存储的Endpoint名称。所对应的regionId需要与选择的服务接入点一致。', - 'type' => 'string', - 'required' => true, - 'example' => 'oss-cn-shanghai.aliyuncs.com', - ], - 'OSSBucket' => [ - 'description' => 'OSS存储的Bucket名称。该Bucket需要归属于当前调用接口账号所属的主账号。', - 'type' => 'string', - 'required' => true, - 'example' => 'mytest-bucket', - ], - ], - 'required' => false, - ], - 'VodParams' => [ - 'description' => 'VOD存储配置。当存储方式为VOD时必须配置,当存储方式为OSS时无效。', - 'type' => 'object', - 'properties' => [ - 'StorageLocation' => [ - 'description' => '点播控制台->媒资管理配置->存储管理中包含的存储地址,录制文件会先保存到这里,再上传到VOD。', - 'type' => 'string', - 'required' => false, - 'example' => 'mytest.oss-cn-shenzhen.aliyuncs.com', - ], - 'VodTranscodeGroupId' => [ - 'description' => '点播转码模板组ID。', - 'type' => 'string', - 'required' => false, - 'example' => '****8a914d3989e9825eb90530b2****', - ], - 'AutoCompose' => [ - 'description' => '自动合并。取值:'."\n" - .'- 0:关闭自动合并。(默认值)'."\n" - .'- 1:开启自动合并。开启时必须设置参数ComposeVodTranscodeGroupId。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - ], - ], - 'ComposeVodTranscodeGroupId' => [ - 'description' => '对自动合成出来的新视频在点播服务中进行一次转码,所使用的点播转码模板组ID。'."\n" - ."\n" - .'> - 当AutoCompose(是否开启自动合并)设为1时,本参数才必填。'."\n" - .'> - 自动合成和转码常见问题,请参见[直播转点播常见问题FAQ](~~99726~~)。'."\n" - .'> - 点播转码计费详情,请参见[媒资转码计费](~~188308~~)。', - 'type' => 'string', - 'required' => false, - 'example' => '****4c34112cfe68248f2f77759c****', - ], - ], - 'required' => false, - ], - ], - 'required' => true, - ], - ], - [ - 'name' => 'MixTranscodeParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '转码相关参数,单流录制模式下不填,混流录制模式下必填。', - 'type' => 'object', - 'properties' => [ - 'FrameFillType' => [ - 'description' => '断流补帧类型。取值:'."\n" - .'- 0:补最后一帧。(默认值)', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - ], - ], - 'AudioBitrate' => [ - 'description' => '音频码率(kbps),取值范围须在[8, 500]内。混流模式下必填。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '500', - 'minimum' => '8', - 'example' => '300', - ], - 'AudioChannels' => [ - 'description' => '音频声道数。取值:'."\n" - .'- 1:单通道。'."\n" - .'- 2:双通道。'."\n" - ."\n" - .'混流模式下必填。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '2', - 'enum' => [ - '1', - '2', - ], - ], - 'AudioSampleRate' => [ - 'description' => '音频采样率(Hz)。取值:'."\n" - .'- 8000'."\n" - .'- 16000'."\n" - .'- 32000'."\n" - .'- 44100'."\n" - .'- 48000'."\n" - ."\n" - .'混流模式下必填。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '32000', - 'enum' => [ - '8000', - '16000', - '32000', - '44100', - '48000', - ], - ], - 'VideoCodec' => [ - 'description' => '视频编码格式。取值:'."\n" - .'- H.264(默认值)'."\n" - .'- H.265', - 'type' => 'string', - 'required' => false, - 'example' => 'H.264', - 'default' => 'H.264', - 'enum' => [ - 'H.264', - 'H.265', - ], - ], - 'VideoBitrate' => [ - 'description' => '视频码率(kbps),取值范围须在[1,10000]内。'."\n" - .'混流模式下,期望录制输出包含画面时必填,其他情况下无效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '5000', - ], - 'VideoFramerate' => [ - 'description' => '视频帧率(fps),取值范围须在[1,60]内。'."\n" - .'混流模式下,期望录制输出包含画面时必填,其他情况下无效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '60', - 'minimum' => '1', - 'example' => '30', - ], - 'VideoGop' => [ - 'description' => '视频GOP,每VideoGop帧存在一个I帧,取值范围须在[1,60]内。'."\n" - .'混流模式下,期望录制输出包含画面时必填,其他情况下无效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '60', - 'minimum' => '1', - 'example' => '30', - ], - 'VideoHeight' => [ - 'description' => '视频高度(px),取值范围须在[0,1920]内。(默认值为0)', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '1920', - 'minimum' => '0', - 'example' => '480', - 'default' => '0', - ], - 'VideoWidth' => [ - 'description' => '视频宽度(px),取值范围须在[0,1920]内。(默认值为0)', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '1920', - 'minimum' => '0', - 'example' => '640', - 'default' => '0', - ], - ], - 'required' => false, - ], - ], - [ - 'name' => 'MixLayoutParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '布局相关参数,单流录制模式下不填,混流录制模式下期望录制出非纯音频文件时必填。', - 'type' => 'object', - 'properties' => [ - 'MixBackground' => [ - 'description' => '混流全局背景图。', - 'type' => 'object', - 'properties' => [ - 'RenderMode' => [ - 'description' => '画面输出时的显示模式。取值:'."\n" - .'- 0:裁剪。(默认值)'."\n" - .'- 1:缩放并显示黑底。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - ], - ], - 'Url' => [ - 'description' => '背景图URL,最大长度不超过2048个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://xxxx.com/photos/my-test-picture.png', - 'maxLength' => 2048, - ], - ], - 'required' => false, - ], - 'UserPanes' => [ - 'description' => '用于指定订阅的用户的窗口布局信息,只有设置了布局信息的UserId,才会被放到画面中。混流模式且录制非纯音频文件时必填。', - 'type' => 'array', - 'items' => [ - 'description' => '画面中窗口配置。', - 'type' => 'object', - 'properties' => [ - 'UserId' => [ - 'description' => '该窗口对应的UserId。'."\n" - .'- 不设置UserId时,会按照订阅的用户进入频道的顺序依次填入窗口。'."\n" - .'- 这里设置的UserId与SourceType的组合必须包含在SubscribeUserIdList中。'."\n" - .'- 订阅纯音频流是不能加入到布局中的', - 'type' => 'string', - 'required' => false, - 'example' => 'userA', - ], - 'SourceType' => [ - 'description' => '该UserId的视频输入流类型。不填写UserId时,此处设置SourceType无效。取值:'."\n" - .'- 0:摄像头。(默认值)'."\n" - .'- 1:屏幕共享。'."\n" - ."\n" - .'这里设置的UserId与SourceType的组合必须包含在SubscribeUserIdList中。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - ], - ], - 'Height' => [ - 'description' => '窗格高度,归一化百分比。取值范围须在[0,1]内。(默认为0)', - 'type' => 'string', - 'required' => false, - 'example' => '0.5', - 'default' => '0', - ], - 'Width' => [ - 'description' => '窗格宽度,归一化百分比。取值范围须在[0,1]内。(默认为0)', - 'type' => 'string', - 'required' => false, - 'example' => '0.5', - 'default' => '0', - ], - 'X' => [ - 'description' => '坐标X,归一化百分比。取值范围须在[0,1]内。(默认为0)', - 'type' => 'string', - 'required' => false, - 'example' => '0', - 'default' => '0', - ], - 'Y' => [ - 'description' => '坐标Y,归一化百分比。取值范围须在[0,1]内。(默认为0)', - 'type' => 'string', - 'required' => false, - 'example' => '0', - 'default' => '0', - ], - 'ZOrder' => [ - 'description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。(默认为0)', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - ], - 'SubBackground' => [ - 'description' => '子画面背景图,当用户关闭摄像头、或入会后未推流、或入会后中途离会时,会在布局位置填充为对应的图片。', - 'type' => 'object', - 'properties' => [ - 'RenderMode' => [ - 'description' => '子画面输出时的显示模式。取值:'."\n" - .'- 0:裁剪。(默认值)'."\n" - .'- 1:缩放并显示黑底。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - ], - ], - 'Url' => [ - 'description' => '背景图URL,最大长度不超过2048个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://xxxx.com/photos/my-test-pane-picture.png', - 'maxLength' => 2048, - ], - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => false, - ], - ], - [ - 'name' => 'NotifyUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '接受回调消息地址。任务状态消息会通过POST方式,以Json格式推送到该地址,最大长度不超过2048个字符。'."\n" - ."\n" - .'回调消息说明参考[文档](https://help.aliyun.com/zh/live/on-cloud-recording-callback-message)。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://xxxx/test/mycallback', - ], - ], - [ - 'name' => 'NotifyAuthKey', - 'in' => 'query', - 'schema' => [ - 'description' => '回调消息鉴权key,默认不填,即不做鉴权。如果填写,长度需要在[16,64]个字符内,且只由大小写英文字母和数字组成。'."\n" - .'- 当NotifyUrl未填写时,NotifyAuthKey也无效。'."\n" - .'- 当设置有效的NotifyAuthKey时,会在回调消息内携带鉴权内容。', - 'type' => 'string', - 'required' => false, - 'example' => 'mytestkeymytestkey', - ], - ], - [ - 'name' => 'NotifyFileUploadedFormat', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '指定在录制文件上传后,需要触发回调的格式', - 'description' => '指定的格式,在触发录制文件生成事件(RecordFileUploaded)时,将发送回调消息。', - 'type' => 'array', - 'items' => [ - 'title' => '需要回调的具体文件格式', - 'description' => '需要接收回调的具体文件格式。取值(可忽略大小写):'."\n" - ."\n" - .'- SLICE'."\n" - .'- HLS'."\n" - .'- MP4'."\n" - .'- MP3'."\n" - ."\n" - .'暂不支持VOD存储模式。'."\n" - .'对于OSS存储模式,选择的格式要包含在StorageParams.FileInfo的文件格式中。', - 'type' => 'string', - 'required' => false, - 'example' => 'MP4', - ], - 'required' => false, - 'maxItems' => 100, - ], - ], - [ - 'name' => 'MaxIdleTime', - 'in' => 'query', - 'schema' => [ - 'description' => '空闲超时时间,当任务处于空闲状态的时长超过MaxIdleTime时,自动停止任务。单位为秒,范围须在[10,14400]内,即最大4小时。(默认为300秒)'."\n" - .'- 对于混流录制模式,当所有订阅的用户流都停止推流时算作空闲'."\n" - .'- 对于单流录制模式,订阅的流之间彼此独立,任意一路流停止推流都算作空闲,达到MaxIdleTime后会停止该路流的录制,当所有订阅流都空闲超时后,会停止整个云端录制任务。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '86400', - 'minimum' => '10', - 'example' => '600', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回内容。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求id。', - 'type' => 'string', - 'example' => '******58-5876-****-83CA-B56278******', - ], - 'TaskId' => [ - 'description' => '任务id。', - 'type' => 'string', - 'example' => '******73-8501-****-8ac1-72295a******', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter.NotifyUrl', - 'errorMessage' => '%s, please check the notifyUrl.', - ], - [ - 'errorCode' => 'InvalidParameter.StorageParams.FileInfo', - 'errorMessage' => '%s, please check the fileInfo of storageParams.', - ], - [ - 'errorCode' => 'InvalidParameter.StorageParams.OSSParams', - 'errorMessage' => '%s, please check the ossParams of storageParams.', - ], - [ - 'errorCode' => 'NotFound.OSSBucket', - 'errorMessage' => '%s, please check the ossBucket of storageParams.', - ], - [ - 'errorCode' => 'InvalidParameter.SubscribeParams.SubscribeUserIdList', - 'errorMessage' => '%s, please check the subscribeUserIdList of subscribeParams.', - ], - [ - 'errorCode' => 'InvalidParameter.MixLayoutParams.UserPanes', - 'errorMessage' => '%s, please check the userPanes of mixLayoutParams.', - ], - [ - 'errorCode' => 'InvalidParameter.MixTranscodeParams', - 'errorMessage' => '%s, please check the transcodeParams.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'InvalidParameter.UserId', - 'errorMessage' => '%s, please check the UserId.', - ], - ], - [ - [ - 'errorCode' => 'InvalidParameter.ChannelId', - 'errorMessage' => '%s, please check the channelId.', - ], - [ - 'errorCode' => 'InvalidParameter.AppId', - 'errorMessage' => '%s, please check the appId.', - ], - ], - [ - [ - 'errorCode' => 'InvalidParameter.StorageParams.VodParams', - 'errorMessage' => '%s, please check the vodParams of storageParams.', - ], - [ - 'errorCode' => 'InvalidParameter.NotifyAuthKey', - 'errorMessage' => '%s, please check the notifyAuthKey.', - ], - [ - 'errorCode' => 'InvalidParameter.MaxIdleTime', - 'errorMessage' => '%s, please check the maxIdleTime.', - ], - [ - 'errorCode' => 'InvalidParameter.RecordParams', - 'errorMessage' => '%s, please check the recordParams.', - ], - [ - 'errorCode' => 'InvalidParameter.StorageParams.StorageType', - 'errorMessage' => '%s, please check the storageType of storageParams.', - ], - [ - 'errorCode' => 'InvalidParameter.NotifyFileUploadedFormat', - 'errorMessage' => '%s, please check the notifyFileUploadedFormat.', - ], - ], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\"\\n}","type":"json"}]', - 'title' => '启动Rtc云端录制任务', - 'description' => '云端录制属于收费功能,收费详情请参见[云端录制费用](~~2976391~~)。'."\n" - .'## 服务接入点'."\n" - .'本接口可用的服务接入点包括:'."\n" - ."\n" - .' |地域名称 |地域ID | 公网接入地址 |'."\n" - .' | --- | --- | --- |'."\n" - .' | 上海 | cn-shanghai | live.aliyuncs.com |'."\n" - .' | 新加坡 | ap-southeast-1 | live.ap-southeast-1.aliyuncs.com |'."\n" - .' | 美国(弗吉尼亚) | us-east-1 | live.us-east-1.aliyuncs.com |'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '- 对于单流录制模式:'."\n" - .' - 支持同时订阅同一个 UserId 的摄像头和屏幕共享,但FileNamePattern和SliceNamePattern参数中必须包含 SourceType 变量(避免出现录制文件互相覆盖的情况)。'."\n" - .' - 目前不支持只订阅某个 UserId 的纯视频流。即在单流模式下,UserInfo.StreamType 的值不能设置为2。'."\n" - ."\n" - .'- 在单流录制模式下:'."\n" - .' - 如果 RecordParams.StreamType 是纯音频流(取值为 1),那么 SubscribeParams 中不能存在订阅纯视频的情况(即SubscribeParams取值为2)。'."\n" - .' - 如果 RecordParams.StreamType 是纯视频流(值为 2),那么 SubscribeParams 中不能存在订阅纯音频的情况(即SubscribeParams取值为1)。'."\n" - ."\n" - .'- 在混流录制模式下:'."\n" - .' - 如果 RecordParams.StreamType 是纯音频流(值为 1),那么 SubscribeParams 中不能所有 UserId 都只订阅纯视频(即所有SubscribeParams取值为2)。'."\n" - .' - 如果 RecordParams.StreamType 是纯视频流(值为 2),那么 SubscribeParams 中不能所有 UserId 都只订阅纯音频(即所有SubscribeParams取值为1)。'."\n" - ."\n" - .'- 录制过程中,如果中途channel关闭,需要在空闲时长内重新入会推流,否则任务将自动停止。', - 'extraInfo' => '- UserId实际推流与订阅的流的对应关系要符合下表中为"✅"的场景:'."\n" - ."\n" - .' | |订阅音频流 | 订阅视频流 | 订阅音视频流 |'."\n" - .' | --- |--- | --- | --- |'."\n" - .' | 推音频流 | ✅ | ❌ | ❌ |'."\n" - .' | 推视频流 | ❌ | ✅ | ✅ |'."\n" - .' | 推音视频流 | ✅ | ✅ | ✅ |'."\n" - ."\n" - .'- 否则,录制出的文件可能与预期不符,或者暂时无文件生成。'."\n" - ."\n" - .'- 在单流录制模式下,如果某个UserId的源流在推流过程中发生分辨率变化,并且要求录制mp4文件,可能导致兼容性问题。具体表现为:当使用不支持动态分辨率切换的播放器打开该mp4文件时,从分辨率变更时刻起的画面可能停滞。'."\n" - ."\n" - .'- 当选择录制到VOD,在收到STOPPED回调时,只能表示文件开始上传到VOD,而不代表文件已上传完毕,这与录制到OSS是不同的。'."\n" - ."\n" - .'- 当选择录制到VOD,开启自动合并后,当录制结束时,至少要有两个媒体资源文件,才会进行自动合并,即如果结束录制时只有一个录制文件,那么不会生成合并文件。'."\n" - ."\n" - .' - 回调相关信息:'."\n" - .' - 在rtc云端录制任务的生命周期中,当任务的状态发生变化时,便会向用户推送回调信息,推送地址为创建录制任务时传入的NotifyUrl。'."\n" - .' - rtc云端录制任务会通过POST方式向NotifyUrl发送回调,Content-Type为application/json'."\n" - .' - 回调内容'."\n" - .' - Header'."\n" - .' - 当创建云端录制任务时,如果传入的NotifyAuthKey为有效值,在发送给用户端的回调中,Header会携带ALI-LIVE-TIMESTAMP和ALI-LIVE-SIGNATURE字段,供回调消息接收服务端进行签名认证。其中,ALI-LIVE-SIGNATURE的值由如下计算而得: ALI-LIVE-SIGNATURE=MD5SUM(MD5CONTENT); MD5CONTENT=ALI-LIVE-TIMESTAMP|NotifyAuthKey'."\n" - .'回调消息接收服务端在接收回调消息时,将ALI-LIVE-TIMESTAMP、NotifyAuthKey 进行拼接后计算 MD5 值,得到加密字符串,再将计算出的加密字符串与视频直播发起的 HTTP(S)请求头中的 ALI-LIVE-SIGNATURE 字段值进行对比。如果不一致,则请求非法。(注意,竖线\'|\'分隔符也需要拼接到MD5CONTENT中)'."\n" - ."\n" - .' |参数名 | 描述 |'."\n" - .' |--- | --- |'."\n" - .' | Content-Type | application/json; charset=utf-8 |'."\n" - .' | ALI-LIVE-TIMESTAMP | 仅当NotifyAuthKey有效时传递,示例值:1748417138 |'."\n" - .' | ALI-LIVE-SIGNATURE | 仅当NotifyAuthKey有效时传递,示例值:abcdefgxxx |'."\n" - ."\n" - .' - Body'."\n" - ."\n" - .' |参数名 | 类型 | 描述 |'."\n" - .' |--- | --- | --- |'."\n" - .' | appId | string | 应用Id。 |'."\n" - .' | channelId | string | 频道Id。 |'."\n" - .' | taskId | string | 录制任务Id。 |'."\n" - .' | eventType | string | 事件类型。取值:
TaskCreated(任务已创建)
TaskStarting(任务启动中)
TaskRunning(任务运行中)
TaskRecovering(异常恢复中)
TaskStopping(任务停止中)
TaskStopped(任务已停止)
TaskStartFailed(启动失败)
TaskUpdated(更新成功)
TaskUpdateFailed(更新失败)
RecordStart(录制正式开始)
RecordFailed(录制异常恢复超时) |'."\n" - .' | callbackTs | integer | 发送回调的时间,为毫秒级时间戳,如1744774345595。 |'."\n" - .' | payload | json string | 其他信息。 |'."\n" - .' - payload'."\n" - ."\n" - .' |参数名 | 类型 | 描述 |'."\n" - .' |--- | --- | --- |'."\n" - .' | eventTs | integer | 事件发生的时间,为毫秒级时间戳,如1744774345595。 |'."\n" - .' | taskStatus | string | 任务状态。取值:
CREATED(任务已创建)
STARTING(任务启动中)
RUNNING(任务运行中)
RECOVERING(异常恢复中)
STOPPING(任务停止中)
STOPPED(任务已停止)
FAILED(启动失败) | '."\n" - .' | errorCode | string | 错误码,仅当eventType为TaskRecovering、TaskStartFailed以及TaskUpdateFailed时不为空。取值:
StartTaskError(对应TaskStartFailed)
RunTaskError(对应TaskRecovering)
UpdateTaskError(对应TaskUpdateFailed) | '."\n" - .' | errorMessage | string | 错误信息,与errorCode类似。取值:
Channel already closed(对应TaskStartFailed,频道已关闭)
Start task error(对应TaskStartFailed的其他原因)
The rms task failed(对应TaskRecovering,rms任务运行异常)
The record task failed(对应TaskRecovering,record任务运行异常)
Update task error(对应TaskUpdateFailed)
Recovering status timeout(对应RecordFailed,异常恢复超时) | '."\n" - .' | recordFileList | FileList | 录制文件列表,详细见DescribeRtcCloudRecordingFiles的出参。仅当eventType为TaskRunning、TaskStopping、TaskStopped时会返回。 |'."\n" - .' - 期望回调接收方返回'."\n" - .' |参数名 | 类型 |'."\n" - .' |--- | --- |'."\n" - .' | Header | Content-Type: application/json |'."\n" - .' | HttpStatus | 200 |'."\n" - .' | Body | {
  "Code": 0,
  "Msg": "Success"
} |'."\n" - .' - 如果回调接收端的返回结果与期望结果不符,回调发送端会重复发送一次回调。', - ], - 'UpdateRtcCloudRecording' => [ - 'summary' => '更新rtc云端录制任务。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '269333', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], - 'tenantRelevance' => 'tenant', - ], - 'parameters' => [ - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '启动Rtc云端录制时返回的任务id。', - 'type' => 'string', - 'required' => true, - 'example' => '******73-8501-****-8ac1-72295a******'."\n", - ], - ], - [ - 'name' => 'SubscribeParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '更新后的订阅相关参数。', - 'type' => 'object', - 'properties' => [ - 'SubscribeUserIdList' => [ - 'description' => '订阅的UserId信息列表,单流录制模式下,会对其中每个UserId分别进行录制;混流录制模式下,会将所有UserId的音视频混合到一组音视频中。'."\n" - .'> '."\n" - .'> - 数组内最多支持17个元素。', - 'type' => 'array', - 'items' => [ - 'description' => '订阅的UserId的信息', - 'type' => 'object', - 'properties' => [ - 'UserId' => [ - 'description' => '订阅的UserId。', - 'type' => 'string', - 'required' => true, - 'example' => 'userA', - ], - 'StreamType' => [ - 'description' => '订阅的UserId的媒体类型。取值:'."\n" - ."\n" - .'- 0:原始流,即包括音频和视频。(默认值)'."\n" - ."\n" - .'- 1:仅音频流。'."\n" - ."\n" - .'- 2:仅视频流。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - '2', - ], - ], - 'SourceType' => [ - 'description' => '该UserId的视频输入流类型,仅针对订阅视频流时(StreamType=2)有效。取值:'."\n" - ."\n" - .'- 0:摄像头。(默认值)'."\n" - ."\n" - .'- 1:屏幕共享。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - ], - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 17, - 'minItems' => 1, - ], - ], - 'required' => true, - ], - ], - [ - 'name' => 'MixLayoutParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '更新后的布局相关参数,单流录制模式下不填,混流录制模式下非纯音频转码时必填。', - 'type' => 'object', - 'properties' => [ - 'MixBackground' => [ - 'description' => '混流全局背景图。', - 'type' => 'object', - 'properties' => [ - 'RenderMode' => [ - 'description' => '画面输出时的显示模式。取值:'."\n" - .'- 0:裁剪。(默认值)'."\n" - .'- 1:缩放并显示黑底。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - ], - ], - 'Url' => [ - 'description' => '背景图URL,最大长度不超过2048个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://xxxx.com/photos/my-test-picture.png'."\n", - 'maxLength' => 2048, - ], - ], - 'required' => false, - ], - 'UserPanes' => [ - 'description' => '用于指定订阅的用户的窗口布局信息,只有设置了布局信息的UserId,才会被放到画面中。混流模式且录制非纯音频文件时必填。', - 'type' => 'array', - 'items' => [ - 'description' => '画面中窗口配置。', - 'type' => 'object', - 'properties' => [ - 'UserId' => [ - 'description' => '该窗口对应的UserId。'."\n" - .'- 不设置UserId时,会按照订阅的用户进入频道的顺序依次填入窗口。'."\n" - .'- 这里设置的UserId与SourceType的组合必须包含在SubscribeUserIdList中。'."\n" - .'- 订阅纯音频流是不能加入到布局中的', - 'type' => 'string', - 'required' => false, - 'example' => 'userA', - ], - 'SourceType' => [ - 'description' => '该UserId的视频输入流类型。不填写UserId时,此处设置SourceType无效。取值:'."\n" - .'- 0:摄像头。(默认值)'."\n" - .'- 1:屏幕共享。'."\n" - .'这里设置的UserId与SourceType的组合必须包含在SubscribeUserIdList中。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - ], - ], - 'Height' => [ - 'description' => '窗格高度,归一化百分比。取值范围须在[0,1]内。(默认为0)', - 'type' => 'string', - 'required' => false, - 'example' => '0.5', - 'default' => '0', - ], - 'Width' => [ - 'description' => '窗格宽度,归一化百分比。取值范围须在[0,1]内。(默认为0)', - 'type' => 'string', - 'required' => false, - 'example' => '0.5', - 'default' => '0', - ], - 'X' => [ - 'description' => '坐标X,归一化百分比。取值范围须在[0,1]内。(默认为0)', - 'type' => 'string', - 'required' => false, - 'example' => '0', - 'default' => '0', - ], - 'Y' => [ - 'description' => '坐标Y,归一化百分比。取值范围须在[0,1]内。(默认为0)', - 'type' => 'string', - 'required' => false, - 'example' => '0', - 'default' => '0', - ], - 'ZOrder' => [ - 'description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。(默认为0)', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - ], - 'SubBackground' => [ - 'description' => '子画面背景图,当用户关闭摄像头、或入会后未推流、或入会后中途离会时,会在布局位置填充为对应的图片。', - 'type' => 'object', - 'properties' => [ - 'RenderMode' => [ - 'description' => '子画面输出时的显示模式。取值:'."\n" - .'- 0:裁剪。(默认值)'."\n" - .'- 1:缩放并显示黑底。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - ], - ], - 'Url' => [ - 'description' => '背景图URL,最大长度不超过2048个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://xxxx.com/photos/my-test-pane-picture.png'."\n", - 'maxLength' => 2048, - ], - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => false, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求id。', - 'type' => 'string', - 'example' => '******58-5876-****-83CA-B56278******'."\n", - ], - 'TaskId' => [ - 'description' => '任务id。', - 'type' => 'string', - 'example' => '******73-8501-****-8ac1-72295a******'."\n", - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'NotFound.Task', - 'errorMessage' => '%s, please check the TaskId.', - ], - [ - 'errorCode' => 'InvalidParameter.TaskId', - 'errorMessage' => '%s, please check the TaskId.', - ], - [ - 'errorCode' => 'InvalidParameter.SubscribeParams.SubscribeUserIdList', - 'errorMessage' => '%s, please check the subscribeUserIdList of subscribeParams.', - ], - [ - 'errorCode' => 'InvalidParameter.MixLayoutParams.UserPanes', - 'errorMessage' => '%s, please check the userPanes of mixLayoutParams.', - ], - [ - 'errorCode' => 'InvalidParameter.MixTranscodeParams', - 'errorMessage' => '%s, please check the transcodeParams.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'InvalidParameter.UserId', - 'errorMessage' => '%s, please check the UserId.', - ], - ], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\\\n\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\\\n\\"\\n}","type":"json"}]', - 'title' => '更新Rtc云端录制任务', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '- 支持同时订阅同一个UserId的摄像头和屏幕共享。对于单流录制模式,如果要同时订阅同一个UserId的摄像头和屏幕共享,FileNamePattern和SliceNamePattern中必须包含SourceType变量(避免出现录制文件互相覆盖的情况)。'."\n" - ."\n" - .'- 对于单流录制模式,目前不支持只订阅某个UserId的纯视频流。即在单流模式下,UserInfo.StreamType的值不能设置为2。'."\n" - ."\n" - .'- 如果只希望录制某个UserId的屏幕流,而不录制音频流,要么订阅该UserId的纯视频流并设置SourceType为1(单流录制模式下暂时不支持),要么订阅该UserId的原始流并在推流时视频流只推屏幕流,且不推音频流或静音;如果希望录制某个UserId的屏幕流和音频流,要么订阅该UserId的原始流并在推流时视频流只推屏幕流,且同时推音频流,要么订阅该UserId的纯视频流并设置SourceType为1(单流录制模式下暂时不支持),同时订阅该UserId的纯音频流。'."\n" - ."\n" - .'- 在单流录制模式下,如果RecordParams.StreamType是纯音频流(值为1),那么SubscribeParams中不能存在订阅纯视频的情况(值为2);如果RecordParams.StreamType是纯视频流(值为2),那么SubscribeParams中不能存在订阅纯音频的情况(值为1)。'."\n" - ."\n" - .'- 在混流录制模式下,如果RecordParams.StreamType是纯音频流(值为1),那么SubscribeParams中不能所有UserId都只订阅纯视频(值为2);如果RecordParams.StreamType是纯视频流(值为2),那么SubscribeParams中不能所有UserId都只订阅纯音频(值为1)。', - ], - 'StopRtcCloudRecording' => [ - 'summary' => '停止rtc云端录制任务。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '269331', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], - 'tenantRelevance' => 'tenant', - ], - 'parameters' => [ - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '启动Rtc云端录制时返回的任务id。', - 'type' => 'string', - 'required' => true, - 'example' => '******73-8501-****-8ac1-72295a******'."\n", - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回内容。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求id。', - 'type' => 'string', - 'example' => '******58-5876-****-83CA-B56278******', - ], - 'TaskId' => [ - 'description' => '任务id。', - 'type' => 'string', - 'example' => '******73-8501-****-8ac1-72295a******', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'NotFound.Task', - 'errorMessage' => '%s, please check the TaskId.', - ], - [ - 'errorCode' => 'InvalidParameter.TaskId', - 'errorMessage' => '%s, please check the TaskId.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'InvalidParameter.UserId', - 'errorMessage' => '%s, please check the UserId.', - ], - ], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\"\\n}","type":"json"}]', - 'title' => '停止Rtc云端录制任务', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeRtcCloudRecordingFiles' => [ - 'summary' => '查询rtc云端录制文件与任务信息。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '269336', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], - 'tenantRelevance' => 'tenant', - ], - 'parameters' => [ - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '启动Rtc云端录制时返回的任务id。', - 'type' => 'string', - 'required' => true, - 'example' => '******73-8501-****-8ac1-72295a******'."\n", - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回内容。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求id。', - 'type' => 'string', - 'example' => '******58-5876-****-83CA-B56278******'."\n", - ], - 'TaskInfo' => [ - 'description' => '任务信息。', - 'type' => 'object', - 'properties' => [ - 'TaskId' => [ - 'description' => '任务id。', - 'type' => 'string', - 'example' => '******73-8501-****-8ac1-72295a******'."\n", - ], - 'Status' => [ - 'description' => '任务状态:'."\n" - .'- RUNNING'."\n" - .'- RECOVERING'."\n" - .'- STOPPING'."\n" - .'- STOPPED', - 'type' => 'string', - 'example' => 'RUNNING', - ], - 'RecordFileList' => [ - 'description' => '录制文件列表。', - 'type' => 'object', - 'properties' => [ - 'Mp3FileList' => [ - 'description' => 'mp3格式录制文件名数组。', - 'type' => 'array', - 'items' => [ - 'description' => 'mp3格式录制文件名。', - 'type' => 'string', - 'example' => '******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp3', - ], - ], - 'Mp4FileList' => [ - 'description' => 'mp4格式录制文件名数组。', - 'type' => 'array', - 'items' => [ - 'description' => 'mp4格式录制文件名。', - 'type' => 'string', - 'example' => '******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp4', - ], - ], - 'HlsFileList' => [ - 'description' => 'hls格式录制文件名数组。', - 'type' => 'array', - 'items' => [ - 'description' => 'hls格式录制文件名。', - 'type' => 'string', - 'example' => '******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.m3u8', - ], - ], - 'VodMediaList' => [ - 'description' => 'VOD媒体资源数组。录制到VOD时,订阅的各个流的录制文件集合,其中每一项对应着一个订阅流。', - 'type' => 'array', - 'items' => [ - 'description' => '对应订阅的某条流的媒体资源信息。', - 'type' => 'object', - 'properties' => [ - 'Stream' => [ - 'description' => '表示订阅的流'."\n" - .' - 对于混流录制,值统一为Mix'."\n" - .' - 对于单流录制,值为Single::{UserId}::{Suffix}'."\n" - .' - UserId为这条流对应的UserId'."\n" - .' - Suffix与订阅时填写的StreamType和SourceType有关'."\n" - .' - 当StreamType为0时:如果SourceType为0,那么Suffix为AV::C;如果SourceType为1,那么Suffix为AV::S'."\n" - .' - 当StreamType为1时:Suffix只能为A'."\n" - .' - 当StreamType为2时(单流录制暂不支持):如果SourceType为0,那么Suffix为V::C;如果SourceType为1,那么Suffix为V::S', - 'type' => 'string', - 'example' => 'Single::UserA::AV::C', - ], - 'MediaIds' => [ - 'description' => '录制过程中生成的媒体资源id数组。', - 'type' => 'array', - 'items' => [ - 'description' => '录制过程中生成的媒体资源id。', - 'type' => 'string', - 'example' => '****bbd9f59c71ee80065017f0f8****', - ], - ], - 'MergedIds' => [ - 'description' => '录制结束后生成的自动合并的媒体资源id数组。', - 'type' => 'array', - 'items' => [ - 'description' => '录制结束后生成的自动合并的媒体资源id。', - 'type' => 'string', - 'example' => '****d2f9f59c71ee8006501790g7****', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'NotFound.Task', - 'errorMessage' => '%s, please check the TaskId.', - ], - [ - 'errorCode' => 'InvalidParameter.TaskId', - 'errorMessage' => '%s, please check the TaskId.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'InvalidParameter.UserId', - 'errorMessage' => '%s, please check the UserId.', - ], - ], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\\\n\\",\\n \\"TaskInfo\\": {\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\\\n\\",\\n \\"Status\\": \\"RUNNING\\",\\n \\"RecordFileList\\": {\\n \\"Mp3FileList\\": [\\n \\"******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp3\\"\\n ],\\n \\"Mp4FileList\\": [\\n \\"******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.mp4\\"\\n ],\\n \\"HlsFileList\\": [\\n \\"******73-8501-****-8ac1-72295a******/myappid_testroom_userA_2025-05-06-14:37:22.m3u8\\"\\n ],\\n \\"VodMediaList\\": [\\n {\\n \\"Stream\\": \\"Single::UserA::AV::C\\",\\n \\"MediaIds\\": [\\n \\"****bbd9f59c71ee80065017f0f8****\\"\\n ],\\n \\"MergedIds\\": [\\n \\"****d2f9f59c71ee8006501790g7****\\"\\n ]\\n }\\n ]\\n }\\n }\\n}","type":"json"}]', - 'title' => '查询Rtc云端录制文件及任务状态', - 'description' => '## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeChannelParticipants' => [ - 'summary' => '查询频道内在线用户列表。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'abilityTreeCode' => '169451', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], - ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用ID,仅支持传单个ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'aec****', - ], - ], - [ - 'name' => 'ChannelId', - 'in' => 'query', - 'schema' => [ - 'description' => '加入的频道,仅支持传单个ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'testId', - ], - ], - [ - 'name' => 'PageNum', - 'in' => 'query', - 'schema' => [ - 'description' => '当前页码。默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页显示用户数量,默认每页显示10条用户数据。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'Order', - 'in' => 'query', - 'schema' => [ - 'description' => '排序方式,取值:'."\n" - ."\n" - .'- **asc**:递增。'."\n" - ."\n" - .'- **desc**(默认值):递减。', - 'type' => 'string', - 'required' => false, - 'example' => 'asc', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '6159ba01-6687-4fb2-a831-f0cd8d1******', - ], - 'Times' => [ - 'description' => '返回结果时间,使用UNIX时间戳表示,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1557909133', - ], - 'TotalNum' => [ - 'description' => '返回结果数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'TotalPage' => [ - 'title' => 'TotalCount本次请求条件下的数据总量,此参数为可选参数,默认可不返回', - 'description' => '返回分页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'UserList' => [ - 'description' => '用户ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '用户ID列表,多个用英文逗号(,)分隔。', - 'type' => 'string', - 'example' => '27f9****,bb87****,df82****', - ], - ], - ], - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"6159ba01-6687-4fb2-a831-f0cd8d1******\\",\\n \\"Times\\": 1557909133,\\n \\"TotalNum\\": 3,\\n \\"TotalPage\\": 1,\\n \\"UserList\\": [\\n \\"27f9****,bb87****,df82****\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 6159ba01-6687-4fb2-a831-f0cd8d188648\\n 1557909133\\n 3\\n 1\\n \\n 27f9****\\n bb87****\\n df82****\\n \\n","errorExample":""}]', - 'title' => '查询频道内在线用户列表', - 'description' => '本接口用于查询频道内在线用户列表,不包含用户详细信息。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeChannelUsers' => [ - 'summary' => '查询频道内在线用户列表的详细信息。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用ID,仅支持传单个ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'aec****', - ], - ], - [ - 'name' => 'ChannelId', - 'in' => 'query', - 'schema' => [ - 'description' => '已加入的频道ID,仅支持传单个ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'testId', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'AD86847D-1F36-18C8-A995-5EEA34******', - ], - 'Timestamp' => [ - 'description' => '当前时刻的时间戳(UTC时间)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1691027655', - ], - 'IsChannelExists' => [ - 'description' => '频道是否存在,取值:'."\n" - ."\n" - .'- **true**:存在。'."\n" - ."\n" - .'- **false**:不存在。'."\n" - ."\n" - .'>频道无人后,会有若干秒的缓存,此时接口返回true,但互动者与观众人数都为0。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'InteractiveUserNumber' => [ - 'description' => '互动者用户总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'LiveUserNumber' => [ - 'description' => '频道内的观众总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'InteractiveUserList' => [ - 'description' => '互动用户列表。', - 'type' => 'array', - 'items' => [ - 'description' => '互动用户列表。', - 'type' => 'string', - 'example' => 'aaa', - ], - ], - 'LiveUserList' => [ - 'description' => '观众列表。', - 'type' => 'array', - 'items' => [ - 'description' => '观众列表,最多返回1000人。', - 'type' => 'string', - 'example' => 'bbb', - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => '400', - 'errorMessage' => 'InvalidInput', - ], - ], - [ - [ - 'errorCode' => '401', - 'errorMessage' => 'InvalidAuth', - ], - ], - 404 => [ - [ - 'errorCode' => '404', - 'errorMessage' => 'AppOrChannelNotExists', - ], - ], - 500 => [ - [ - 'errorCode' => '500', - 'errorMessage' => 'SystemError, Please Check App And Channel Exists, RETRY', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AD86847D-1F36-18C8-A995-5EEA34******\\",\\n \\"Timestamp\\": 1691027655,\\n \\"IsChannelExists\\": true,\\n \\"InteractiveUserNumber\\": 1,\\n \\"LiveUserNumber\\": 1,\\n \\"InteractiveUserList\\": [\\n \\"aaa\\"\\n ],\\n \\"LiveUserList\\": [\\n \\"bbb\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n AD86847D-1F36-18C8-A995-5EEA340B3202\\n 1691027655\\n true\\n 1\\n 1\\n aaa\\n bbb\\n","errorExample":""}]', - 'title' => '查询频道内在线用户列表', - 'description' => '本接口用于查询频道内在线用户列表的详细信息。例如:您可以查询直播模式下的用户总数。'."\n" - ."\n\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'RemoveTerminals' => [ - 'summary' => '从频道中踢出指定终端用户。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '178423', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], - ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用ID,仅支持传单个ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'aec****', - ], - ], - [ - 'name' => 'ChannelId', - 'in' => 'query', - 'schema' => [ - 'description' => '已加入的频道ID,仅支持传单个ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'testId', - ], - ], - [ - 'name' => 'TerminalIds', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '用户列表ID。', - 'type' => 'array', - 'items' => [ - 'description' => '用户ID列表,N的取值:**1~30**。格式如下所示:'."\n" - ."\n" - .'```'."\n" - .'TerminalIds.1=****'."\n" - .'TerminalIds.2=****'."\n" - .'......'."\n" - .'```', - 'type' => 'string', - 'required' => false, - 'example' => '1811****', - ], - 'required' => true, - 'maxItems' => 30, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回信息。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4AF8', - ], - 'Terminals' => [ - 'description' => '用户ID信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '用户ID信息列表。', - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '状态码,成功返回0,失败返回错误码描述。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Message' => [ - 'description' => '删除终端操作结果。取值:'."\n" - ."\n" - .'- Success:成功。'."\n" - ."\n" - .'- Failed:失败。', - 'type' => 'string', - 'example' => 'Success', - ], - 'Id' => [ - 'description' => '用户ID。', - 'type' => 'string', - 'example' => '1811****', - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], - ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4AF8\\",\\n \\"Terminals\\": [\\n {\\n \\"Code\\": 0,\\n \\"Message\\": \\"Success\\",\\n \\"Id\\": \\"1811****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4AF8\\n \\n 0\\n Success\\n 1811****\\n \\n","errorExample":""}]', - 'title' => '从频道中踢出指定终端用户', - 'description' => '本接口用于将指定终端用户从频道踢出。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'CreateRTCWhipStreamAddress' => [ - 'summary' => '调用CreateRTCWhipStreamAddress创建RTC频道WHIP推流地址', - 'path' => '', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], - ], - 'parameters' => [ - [ - 'name' => 'ClientToken', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '幂等参数', - 'description' => '幂等参数。'."\n" - .'> 用于区分多次请求是不是同一个请求的标识,针对本接口不建议填写。', - 'type' => 'string', - 'required' => false, - 'example' => '58E73333-xxxx-xxxx-xxxx', - ], - ], - [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'title' => '应用AppID', - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => '6a0**6dcc-xxxx-xxxx-xxxx-e**e3exxxxxx ', - 'maxLength' => 64, - 'minLength' => 1, - 'pattern' => '^[0-9a-zA-Z_-]+$', - ], - ], - [ - 'name' => 'ChannelId', - 'in' => 'query', - 'schema' => [ - 'title' => '频道号', - 'description' => '加入的频道ID。', - 'type' => 'string', - 'required' => true, - 'example' => ' ch00000****001', - 'maxLength' => 64, - 'minLength' => 1, - 'pattern' => '^[0-9a-zA-Z_-]+$', - ], - ], - [ - 'name' => 'UserId', - 'in' => 'query', - 'schema' => [ - 'title' => '用户ID,不要与其他进频道的用户重合。', - 'description' => '用户ID,不能与频道中的其他用户 ID 重复。', - 'type' => 'string', - 'required' => true, - 'example' => 'zb0000****0001', - 'maxLength' => 64, - 'minLength' => 1, - 'pattern' => '^[0-9a-zA-Z_-]+$', - ], - ], - [ - 'name' => 'DisplayName', - 'in' => 'query', - 'schema' => [ - 'title' => '在频道内显示的名称', - 'description' => '在频道中显示的用户名称。'."\n" - .'> 支持填写中文等字符,为避免名称过长,大小建议小于32个byte。', - 'type' => 'string', - 'required' => true, - 'example' => '主播小二', - 'maxLength' => 40, - 'minLength' => 1, - ], - ], - [ - 'name' => 'ExpireTime', - 'in' => 'query', - 'schema' => [ - 'description' => '推流有效时长,单位:秒,默认为43200秒。'."\n" - .'> 若超过设置的有效期,则正在使用由本接口所生成地址进行的推流不受影响,但是用该地址重新推流则会失败。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '43200', - 'default' => '43200', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '58E7**D4-xxxx-xxxx-xxxx-6B5**6Cxxxxx', - ], - 'WhipAddress' => [ - 'title' => 'whip协议推流服务地址', - 'description' => 'WHIP协议URL。', - 'type' => 'string', - 'example' => 'https://xxxxxx.media-sh.xxxxx.com/xxxxxxxxxxxx/3723a3xxxxxxxxx223c606b***5f7a2bc7c56ea5cdd0xxxxe?auth_key=17495xxxxx-xxxx-0-f013003067c78c4053f9cd0xxxxxxx&qqzr=H4sIAAAAAAAC_6pWSlayUkrOMxxxxxxrPyCxQ0lFKQTCLlKyUjM2Nj**NDQ1TEy2Mjc3xxxxxxxxxxqRYAAAD__xxxxx__xxxxxxxx', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], - ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"58E7**D4-xxxx-xxxx-xxxx-6B5**6Cxxxxx\\",\\n \\"WhipAddress\\": \\"https://xxxxxx.media-sh.xxxxx.com/xxxxxxxxxxxx/3723a3xxxxxxxxx223c606b***5f7a2bc7c56ea5cdd0xxxxe?auth_key=17495xxxxx-xxxx-0-f013003067c78c4053f9cd0xxxxxxx&qqzr=H4sIAAAAAAAC_6pWSlayUkrOMxxxxxxrPyCxQ0lFKQTCLlKyUjM2Nj**NDQ1TEy2Mjc3xxxxxxxxxxqRYAAAD__xxxxx__xxxxxxxx\\"\\n}","type":"json"}]', - 'title' => '创建RTC频道WHIP推流地址', - 'description' => '## 使用说明'."\n" - .'1. 通过调用CreateRTCWhipStreamAddress接口,创建在对应RTC房间(频道)的WhipAddress推流地址。'."\n" - .'2. 使用OBS工具,通过whip协议进行推流。'."\n" - .' - 运行OBS推流工具。'."\n" - .' - 在菜单栏中选择**文件>设置**。'."\n" - .' - 在设置页面选择**直播**,配置如下信息,单击**确定**。'."\n" - ."\n" - .' | 参数 | 描述 | '."\n" - .' | ------ | ------| '."\n" - .' | 服务| 选择**WHIP**。| '."\n" - .' | 服务器 | 使用步骤1中通过接口生成的WhipAddress地址。| '."\n" - .' | Bearer Token| 串流密钥为空。 | '."\n" - ."\n" - .' ![](https://img.alicdn.com/imgextra/i3/O1CN01xaAEK61umh8yP8NFe_!!6000000006080-2-tps-1746-685.png)'."\n" - ."\n" - .'3. 其他用户,进入相应房间(频道)观看。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户 QPS 限制为 40 次/秒。超过限制,API 调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'CreateRoomRealTimeStreamAddress' => [ - 'summary' => '创建RTMP流在房间中的推流地址。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '198619', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], - ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '实时音视频应用ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourAppId', - ], - ], - [ - 'name' => 'ChannelId', - 'in' => 'query', - 'schema' => [ - 'title' => '往哪个频道中推', - 'description' => '要加入的房间ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourChannelId', - ], - ], - [ - 'name' => 'UserId', - 'in' => 'query', - 'schema' => [ - 'title' => 'rtmp在房间中的userid,请不要与房间中的其他用户重复', - 'description' => '向RTMP地址推流的用户ID,不能和房间中的其他用户ID重复。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'rtmp-uuid', - 'maxLength' => 64, - 'minLength' => 1, - ], - ], - [ - 'name' => 'DisplayName', - 'in' => 'query', - 'schema' => [ - 'title' => 'rtmp在频道中的显示名称,长度1~40,必填', - 'description' => 'RTMP流在房间中显示的名称,最大40字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'rtmp-dname', - 'maxLength' => 40, - 'minLength' => 1, - ], - ], - [ - 'name' => 'ExpireTime', - 'in' => 'query', - 'schema' => [ - 'title' => '地址有效时长,单位秒,默认10个小时', - 'description' => 'RTMP地址有效时长,单位:秒,默认值36000,即10小时。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '43200', - 'default' => '43200', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F8DB7E25-6A35-161A-AA41-B7A658AF****', - ], - 'RtmpAddress' => [ - 'description' => 'RTMP推流地址。', - 'type' => 'string', - 'example' => 'rtmp://rtcpush****.rtmp.alivecdn.com/rtcdev****/H4sIAAAA****_6pWSlayUipJLS5R0lEqRTBTEMwiJSul1CRTMxNjsyQTM****-PUZCMz8yTDZLNkAwMDA6M0I0ulWgA****__wEAAP__a_e7YkkAAAA?auth_key=1700492701-6e33-0-c6d7e3a93dc2dbe3af42f6259ccd****', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], - ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8DB7E25-6A35-161A-AA41-B7A658AF****\\",\\n \\"RtmpAddress\\": \\"rtmp://rtcpush****.rtmp.alivecdn.com/rtcdev****/H4sIAAAA****_6pWSlayUipJLS5R0lEqRTBTEMwiJSul1CRTMxNjsyQTM****-PUZCMz8yTDZLNkAwMDA6M0I0ulWgA****__wEAAP__a_e7YkkAAAA?auth_key=1700492701-6e33-0-c6d7e3a93dc2dbe3af42f6259ccd****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n F8DB7E25-6A35-161A-AA41-B7A658AF0635\\n rtmp://rtcpush****.rtmp.alivecdn.com/rtcdev****/H4sIAAAA****_6pWSlayUipJLS5R0lEqRTBTEMwiJSul1CRTMxNjsyQTM****-PUZCMz8yTDZLNkAwMDA6M0I0ulWgA****__wEAAP__a_e7YkkAAAA?auth_key=1700492701-6e33-0-c6d7e3a93dc2dbe3af42f6259ccd****\\n","errorExample":""}]', - 'title' => '创建RTMP流在房间中的推流地址', - 'description' => '1. 调用此接口生成RTMP推流地址。'."\n" - .'2. 向RTMP地址推流,房间中的其他用户可以看到此路流。'."\n" - .'3. 停止推流,房间中的其他用户看到推RTMP流的用户离开房间。'."\n" - ."\n" - .'> - 在RTMP地址有效期内可以重复步骤2、3。'."\n" - .'>- 建议配合调用[DescribeChannelParticipants](~~2848193~~)查询频道用户列表,定时间隔的检查推RTMP流的用户是否还在房间中。如果不在,可能推流中断,建议停止推流再转到步骤2重推。'."\n" - ."\n" - .'## 注意事项'."\n" - ."\n" - .'在使用实时音视频时,需要通过阿里云ARTC SDK进行入会并推送RTC的流。但在部分特殊场景下,阿里云允许您使用RTMP协议推流(如OBS推流),并由阿里云将RTMP转换成RTC流进行推送和实现用户入会。您可以通过本接口实现该能力,本接口将为您生成RTMP推流地址,当您完成推流后阿里云将自动将流转换成RTC流。'."\n" - .'若您的业务是纯直播场景时,请勿使用该接口,您可以参见[生成推流地址和播放地址](~~198676~~)快速实现RTMP推流和直播播放。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteChannel' => [ - 'summary' => '关闭频道将使所有当前频道内的成员退出,但不影响后续重新使用该频道。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'abilityTreeCode' => '169448', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], - ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用ID,仅支持传单个ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'eo85****', - ], - ], - [ - 'name' => 'ChannelId', - 'in' => 'query', - 'schema' => [ - 'description' => '已入会的频道ID,仅支持传单个ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'testid', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => '400', - 'errorMessage' => 'InvalidInput', - ], - ], - [ - [ - 'errorCode' => '401', - 'errorMessage' => 'InvalidAuth', - ], - ], - 404 => [ - [ - 'errorCode' => '404', - 'errorMessage' => 'AppOrChannelNotExists', - ], - ], - 500 => [ - [ - 'errorCode' => '500', - 'errorMessage' => 'ServerError, Check App And Channel Exists,Retry', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', - 'title' => '关闭频道', - 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'ListRTCLiveRooms' => [ - 'summary' => '获取在线频道列表', - 'path' => '', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], - 'autoTest' => false, - 'notSupportAutoTestReason' => '需要前置客户端入会等操作', - ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'title' => '应用AppID', - 'description' => '应用AppID', - 'type' => 'string', - 'required' => true, - 'example' => 'a494caec-***-695ef345db77', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'title' => '分页大小,取值【10,100】,默认50', - 'description' => '分页大小,取值【10,100】,默认50', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '10', - 'example' => '50', - 'default' => '50', - ], - ], - [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'title' => '当前分页,从1开始', - 'description' => '当前分页,从1开始', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'Id of the request', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', - ], - 'Total' => [ - 'description' => '查询结果总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Rooms' => [ - 'title' => '活跃房间列表', - 'description' => '活跃房间列表', - 'type' => 'array', - 'items' => [ - 'description' => '房间号', - 'type' => 'string', - 'example' => 'room1', - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - ], - 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], - ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\",\\n \\"Total\\": 2,\\n \\"Rooms\\": [\\n \\"room1\\"\\n ]\\n}","type":"json"}]', - 'title' => '查询ARTC在线频道列表', - ], - 'StartLiveMPUTask' => [ - 'summary' => '创建混流转推任务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeCode' => '178410', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], - ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourAppId', - ], - ], - [ - 'name' => 'ChannelId', - 'in' => 'query', - 'schema' => [ - 'description' => '频道ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourChannelId', - ], - ], - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大55字符。此ID为旁路转推的标识,需保证唯一。'."\n" - .'启动任务时,如果同ID任务还在,未被清理,会返回InvalidParam。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourTaskId', - ], - ], - [ - 'name' => 'MixMode', - 'in' => 'query', - 'schema' => [ - 'description' => '混流模式。取值:'."\n" - .'- **0**:单路转推,不混流转码,仅转推原始单路流,无需配置混流转码参数。'."\n" - .'- **1(默认值)**:混流转码转推。', - 'type' => 'string', - 'required' => true, - 'example' => '0', - ], - ], - [ - 'name' => 'StreamURL', - 'in' => 'query', - 'schema' => [ - 'description' => '直播推流地址,仅支持RTMP协议,仅支持传单个地址,最大长度不超过2048个字符。生成规则请参见[推流地址和播放地址](~~199339~~)。'."\n" - ."\n" - .'>- 对已开防盗链鉴权的域名,需要在推流地址中包含鉴权串。'."\n" - .'- 禁止同一个StreamURL在不同任务中同时使用。'."\n" - .'- 任务停止10S之内,禁止使用同一个StreamURL。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://example.com/live/stream', - ], - ], - [ - 'name' => 'MultiStreamURL', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '多地址转推参数,可填写多个直播推流地址。'."\n" - .'> 在设置任务的转推地址时,StreamURL参数与MultiStreamURL参数,只能配置其中一个参数,且必须配置其中一个参数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'URL' => [ - 'description' => '直播推流地址,仅支持RTMP协议,最大长度不超过2048个字符。生成规则请参见[推流地址和播放地址](~~199339~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://example.com/live/stream****', - ], - 'IsAliCdn' => [ - 'description' => '是否转推到阿里云CDN。'."\n" - .'- false为转推非阿里云CDN。'."\n" - .'- true为转推阿里云CDN。'."\n" - ."\n" - .'> 该参数默认为false。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - [ - 'name' => 'Region', - 'in' => 'query', - 'schema' => [ - 'description' => '请求的混流服务所在区域。取值:'."\n" - ."\n" - .'- **CN-Shanghai(默认值)**:上海。'."\n" - .'- **AP-Singapore(默认值)**:新加坡。'."\n" - .'- **EMAA-Saudi**:沙特。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CN-Shanghai', - ], - ], - [ - 'name' => 'MaxIdleTime', - 'in' => 'query', - 'schema' => [ - 'description' => '空闲超时时间;单位为秒,取值范围为\\[10,86400\\]。'."\n" - .' > 设置此参数后,会在任务处于空闲状态的时长大于 MaxIdleTime 时,自动停止该任务;若不设置此参数,则会在房间关闭后,立刻停止该任务。', - 'type' => 'string', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'SingleSubParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '单流转推参数,单流转推(MixMode=0)时必填。需要混流转码时不填。', - 'type' => 'object', - 'properties' => [ - 'SourceType' => [ - 'description' => '单流转推模式下视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" - .'- **camera(默认值)**:摄像头。'."\n" - .'- **shareScreen**:屏幕共享。', - 'type' => 'string', - 'required' => false, - 'example' => 'camera', - ], - 'StreamType' => [ - 'description' => '单流转推模式下转推流类型。取值:'."\n" - .'- **0(默认值)**:转推原始流。'."\n" - .'- **1**:仅转推音频流。'."\n" - .'- **2**:仅转推视频流。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - 'UserId' => [ - 'description' => '单流转推的用户ID,一次只能转推一路流。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourSubUserId', - ], - ], - 'required' => false, - ], - ], - [ - 'name' => 'TranscodeParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '混流转码转推参数,混流转码转推(MixMode=1)时必填。需要单流转推时不填。', - 'type' => 'object', - 'properties' => [ - 'Background' => [ - 'description' => '混流全局背景图。', - 'type' => 'object', - 'properties' => [ - 'RenderMode' => [ - 'description' => '子画面输出时的显示模式:'."\n" - .'- **0**:缩放并显示黑底。'."\n" - .'- **1**(默认):裁剪。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - 'URL' => [ - 'description' => '全局背景图URL,最大长度不超过2048个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourImageUrl', - ], - ], - 'required' => false, - ], - 'EncodeParams' => [ - 'description' => '转推输出的编码参数。', - 'type' => 'object', - 'properties' => [ - 'AudioOnly' => [ - 'description' => '是否为纯音频,取值:'."\n" - .'- **true**:纯音频,仅需要设置音频相关参数。'."\n" - .'- **false(默认值)**:非纯音频,除VideoCodec参数与EnhancedParam参数外,其它参数均不能为空。', - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], - 'AudioBitrate' => [ - 'description' => '音频码率,取值范围:\\[8, 500\\],单位:kbps。', - 'type' => 'string', - 'required' => false, - 'example' => '128', - ], - 'AudioChannels' => [ - 'description' => '音频声道数,取值:1、2。', - 'type' => 'string', - 'required' => false, - 'example' => '2', - ], - 'AudioSampleRate' => [ - 'description' => '音频采样率,取值:8000、16000、32000、44100、48000,单位:Hz。', - 'type' => 'string', - 'required' => false, - 'example' => '44100', - ], - 'VideoCodec' => [ - 'description' => '视频编码格式。取值:'."\n" - .'- H.264(默认值)。'."\n" - .'- H.265。', - 'type' => 'string', - 'required' => false, - 'example' => 'H.264', - ], - 'VideoBitrate' => [ - 'description' => '视频码率,取值范围:\\[1, 10000\\],单位:kbps。', - 'type' => 'string', - 'required' => false, - 'example' => '3500', - ], - 'VideoFramerate' => [ - 'description' => '视频帧率,取值范围:\\[1, 60\\],单位:fps。', - 'type' => 'string', - 'required' => false, - 'example' => '25', - ], - 'VideoGop' => [ - 'description' => '视频GOP,取值范围:\\[1, 60\\]。', - 'type' => 'string', - 'required' => false, - 'example' => '20', - ], - 'VideoHeight' => [ - 'description' => '视频高,取值范围:\\[0, 1920\\],单位:px。', - 'type' => 'string', - 'required' => false, - 'example' => '1000', - ], - 'VideoWidth' => [ - 'description' => '视频宽,取值范围:\\[0, 1920\\],单位:px。', - 'type' => 'string', - 'required' => false, - 'example' => '1920', - ], - 'EnhancedParam' => [ - 'description' => '编码增强参数,JSON字符串,目前支持的可选配置包括profile与preset。'."\n" - .'- profile:编码级别。当视频编码格式为H.264时,profile支持的可选值包括:"baseline", "main", "high";当视频编码格式为H.265时,profile支持的可选值包括:"main"。'."\n" - ."\n" - .'- preset:调节编码速度和质量的平衡。preset支持的可选值包括:"ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow" "placebo"。每个值代表了一种编码速度与输出视频质量的策略,从"ultrafast"(极快,编码速度优先)到"placebo"(追求极致质量,编码极慢)。'."\n" - ."\n" - .'> 例如设置superfast,主要用于实时通讯领域。建议非编码器专业技术人员,不设置该选项。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"profile": "high", "preset": "veryfast"}', - ], - ], - 'required' => false, - ], - 'Layout' => [ - 'description' => '视频布局信息。'."\n" - .'> 视频转码时,需要指定视频布局信息,包括布局坐标(X,Y),布局窗格(Width,Height),叠放顺序(ZOrder);纯音频转码时,禁止填写视频布局信息。'."\n", - 'type' => 'object', - 'properties' => [ - 'UserPanes' => [ - 'description' => '混流用户窗格信息。', - 'type' => 'array', - 'items' => [ - 'description' => '混流用户窗格信息。', - 'type' => 'object', - 'properties' => [ - 'UserInfo' => [ - 'description' => '该窗格对应的混流用户信息,不填时后台按照上行主播的进房顺序自动填充。'."\n" - .'>- 如果指定混流用户信息,该用户信息需要已在TranscodeParams.UserInfos参数中配置。 '."\n" - .'- 仅针对原始流和视频流有效。', - 'type' => 'object', - 'properties' => [ - 'SourceType' => [ - 'description' => '混流转码模式下视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" - .'- **camera(默认值)**:摄像头。'."\n" - .'- **shareScreen**:屏幕共享。', - 'type' => 'string', - 'required' => false, - 'example' => 'camera', - ], - 'ChannelId' => [ - 'description' => '混流用户所在的频道ID,同频道内混流的用户可不填,跨频道混流时建议填写该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourChannelId', - ], - 'UserId' => [ - 'description' => '混流用户ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourSubUserId', - ], - ], - 'required' => false, - ], - 'Height' => [ - 'description' => '窗格高,归一化百分比。', - 'type' => 'string', - 'required' => false, - 'example' => '0.2632', - ], - 'Width' => [ - 'description' => '窗格宽,归一化百分比。', - 'type' => 'string', - 'required' => false, - 'example' => '0.3564', - ], - 'X' => [ - 'description' => '坐标X,归一化百分比。', - 'type' => 'string', - 'required' => false, - 'example' => '0.2456', - ], - 'Y' => [ - 'description' => '坐标Y,归一化百分比。', - 'type' => 'string', - 'required' => false, - 'example' => '0.3789', - ], - 'ZOrder' => [ - 'description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - 'BackgroundImageUrl' => [ - 'description' => '子画面的背景图URL,最大长度不超过2048个字符。当用户关闭摄像头或未进入房间时,会在布局位置填充为此图片。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourImageUrl', - ], - 'RenderMode' => [ - 'description' => '子画面输出时的显示模式,取值:'."\n" - .'- **0**:缩放并显示黑底。'."\n" - .'- **1(默认值)**:裁剪。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'UserInfos' => [ - 'description' => '混流时订阅的用户信息,不指定用户则所有用户混流。', - 'type' => 'array', - 'items' => [ - 'description' => '混流用户信息。', - 'type' => 'object', - 'properties' => [ - 'SourceType' => [ - 'description' => '混流时订阅的视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" - .'- **camera(默认值)**:摄像头。'."\n" - .'- **shareScreen**:屏幕共享。', - 'type' => 'string', - 'required' => false, - 'example' => 'camera', - ], - 'StreamType' => [ - 'description' => '混流时订阅的转推流类型。取值:'."\n" - .'- **0(默认值)**:转推原始流。'."\n" - .'- **1**:仅转推音频流。'."\n" - .'- **2**:仅转推视频流。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - 'ChannelId' => [ - 'description' => '混流时订阅用户所在的频道ID,同频道内混流的用户可不填,跨频道混流时建议填写该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourChannelId', - ], - 'UserId' => [ - 'description' => '混流时订阅的用户ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourSubUserId', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => false, - ], - ], - [ - 'name' => 'SeiParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => 'SEI配置参数。', - 'type' => 'object', - 'properties' => [ - 'LayoutVolume' => [ - 'description' => '布局和音量SEI,该参数内容可以为空,表示携带默认的布局和音量SEI。', - 'type' => 'object', - 'properties' => [ - 'FollowIdr' => [ - 'description' => '发送IDR关键帧时是否确保携带SEI,取值:'."\n" - .'- **0**:不确保带SEI。'."\n" - .'- **1**:确保带SEI。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - 'Interval' => [ - 'description' => 'SEI发送间隔,取值范围:\\[1000, 5000\\],单位:毫秒。', - 'type' => 'string', - 'required' => false, - 'example' => '1000', - ], - ], - 'required' => false, - ], - 'PassThrough' => [ - 'description' => '透传SEI。', - 'type' => 'object', - 'properties' => [ - 'FollowIdr' => [ - 'description' => '发送IDR关键帧时是否确保携带SEI,取值:'."\n" - .'- **0**:不确保带SEI。'."\n" - .'- **1**:确保带SEI。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - 'Interval' => [ - 'description' => 'SEI发送间隔,取值范围:\\[1000, 5000\\],单位:毫秒。', - 'type' => 'string', - 'required' => false, - 'example' => '1000', - ], - 'PayloadContent' => [ - 'description' => '透传SEI的payload内容。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourPayloadContent', - ], - 'PayloadContentKey' => [ - 'description' => '透传SEI的payload内容对应的key值。不设置时,key为默认值udd。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourPayloadContentKey', - ], - ], - 'required' => false, - ], - 'PayloadType' => [ - 'description' => 'SEI消息的自定义payload_type,取值范围100-254。不设置时,SEI的payload_type为默认值为5。', - 'type' => 'string', - 'required' => false, - 'example' => '100', - ], - ], - 'required' => false, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '请求ID。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0F72851F-5DC1-1979-9B2C-450040316C3E', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidAppId', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Your account has not enabled the Live service', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'InternalError', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0F72851F-5DC1-1979-9B2C-450040316C3E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0F72851F-5DC1-1979-9B2C-450040316C3E\\n","errorExample":""}]', - 'title' => '创建混流转推任务(新)', - 'description' => '单个应用ID默认支持单路转推任务上限为200个,混流转码转推任务上限为40。如果您需要提升配额,请[提交工单](https://smartservice.console.aliyun.com/service/create-ticket)。'."\n" - .'### 混流任务生命周期'."\n" - .'**启动**'."\n" - .'- 主播首次开播,可以调用StartLiveMPUTask启动旁路。'."\n" - .' '."\n" - .' - 若无用户入会,会返回channel不存在错误。'."\n" - .' - 用户开始推流时才会输出旁路流。若单路任务用户未推流,则旁路流无法播放。'."\n" - .' - 混流任务需保证至少有一个用户有推流,旁路流才可播放。未推流的用户对应的布局画面会展示黑屏。'."\n" - ."\n" - .'- 客户业务服务器建议记录旁路任务状态、任务类型、任务参数。'."\n" - .' - 任务状态:启动、停止。'."\n" - .' - 任务类型:单路、混流。'."\n" - .' - 任务参数:即最新的入参,例如:调用UpdateLiveMPUTask成功后,记录最新任务参数。'."\n" - .'- 在连麦或者PK场景下,此时任务已经被更新为混流。若当前主播异常退出重新入会后,客户业务服务器可以根据保存的最新的任务类型和任务参数,直接调用StartLiveMPUTask启动混流任务。'."\n" - .' - 如果启动前任务未被系统自动清理,则直接启动成功。'."\n" - .' - 如果任务还未被系统自动清理,则会返回**任务已存在**错误码。'."\n" - ."\n" - .'**结束**'."\n" - .'- 主播离会,需要主动调用[StopLiveMPUTask](~~2362742~~)停止旁路任务。'."\n" - .'- 若任务所指定的所有用户均已离会但未主动调用StopLiveMPUTask,系统会在2分钟后对旁路任务进行停止。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为500次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '### 布局和音量SEI'."\n" - ."\n" - .'| 参数 | 说明 |'."\n" - .'| ----- | --------- |'."\n" - .'| canvas | 画布信息,参数信息:
- w:画布宽,单位:像素。
- h:画布高,单位:像素。
- bgnd:画布的背景颜色,格式为RGB定义下的十六进制整数。 |'."\n" - .'| stream | 视频流信息,参数信息:
- uid:主播的用户ID。
- paneid:该区域在窗格编号,取值[0,8]。
- zorder:该区域的叠放层级,取值范围 [0,99]。
- x:该区域在画布中对应的x坐标,归一化百分比。
- y:该区域在画布中对应的y坐标,归一化百分比。
- w:该区域的宽度,归一化百分比。
- h:该区域的高度,归一化百分比。
- type:该区域视频流的类型,取值:0:摄像头;1:屏幕共享。
- status:该区域视频流的状态,取值:0:还未拉取到;1:已拉取到。
- muted:主播被静音状态,取值:0:未被静音;1:被静音。主播PK时,A主播将B主播静音,B主播muted字段将显示被静音状态。
- vol:主播的音量(分贝),取值:[0,255]。
- vad :语音检测,取值:[0,150],150是有人声,非150就是从有人声到无声的拖尾时间。 |'."\n" - .'| ts | 生成该信息时的操作系统时间戳,单位为毫秒。 |'."\n" - .'| ver | SEI格式版本信息,如当前版本为1.0.0.20220915。 |'."\n" - .'| udd | 客户自定义的场景化事件,通过PassThrough参数下发,内容由PayloadContent参数指定。 |'."\n" - ."\n" - .'> 用户拉取转推流时,转推流的流媒体数据会包含SEI信息,用户可借助此功能传递一些自定义信息。SEI信息在解码视频流时可以从视频帧数据中获取,具体格式参考参数说明表PassThrough参数。'."\n" - ."\n" - .'**以直播连麦场景为例:**'."\n" - ."\n" - .'如果只是单主播,观众端接收的SEI信息里stream集合只有一个成员信息;如果是主播正在连麦或者PK,观众端接收的SEI信息里stream集合会有多个成员信息。'."\n" - .'例如,当主播111单主播推流时,观众端收到的SEI帧格式如下:
`{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"111","paneid":-1,"zorder":0,"x":0,"y":0,"w":0,"h":0,"type":0,"status":1,"muted":0,"vol":0,"vad":0}],"ver":"1.0.0.20220915","ts":1697696105170}`'."\n" - .'当主播111和观众222进行连麦时,观众端收到的SEI帧格式如下:
`{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"111","paneid":0,"zorder":1,"x":0,"y":0.25,"w":0.5,"h":0.5,"type":0,"status":1,"muted":0,"vol":1,"vad":119},{"uid":"222","paneid":1,"zorder":1,"x":0.5018382,"y":0.25,"w":0.5,"h":0.5,"type":0,"status":1,"muted":0,"vol":60,"vad":123}],"ver":"1.0.0.20220915","ts":1697696106230}`'."\n" - .'判断stream数组的个数可以知道当前直播布局是否发生切换,stream数组的个数为1时,则是单主播推流;stream数组的个数大于1,则主播在连麦或PK中。通过成员的布局信息,知道每个成员在混流布局中的具体位置。'."\n" - ."\n" - .'### 透传SEI'."\n" - .'- 自定义SEI,通过StartLiveMPUTask命令启动混流转推任务,在PassThrough参数中,指定PayloadContent内容;也可以在UpdateLiveMPUTask命令更新混流转推任务时,在PassThrough参数中,指定PayloadContent内容。'."\n" - .'- 自定义SEI可以周期性发送,通过PassThrough参数中的Interval来设定周期,单位为ms;'."\n" - .'- 自定义SEI也可以跟随关键帧发送,通过PassThrough参数中的FollowIdr来设定。'."\n" - .' - 既可以按照Interval来周期性发送,也可以将SEI跟随关键帧来发送,如Interval:1000,FollowIdr: 1 表示每隔1000ms发送一次自定义SEI,并且在发送关键帧时携带自定义SEI。'."\n" - .' - 当不携带Interval以及不携带FollowIdr时,表示该自定义SEI只在调用时发送一次。'."\n" - ."\n" - .'例如,当主播111单主播推流时,调用UpdateLiveMPUTask命令下发周期性SEI,PassThrough参数中的Interval设置为1000,FollowIdr设置为0,PayloadContent设置为"hello world",那么每隔1000ms将发送一次自定义SEI,观众端收到的SEI帧格式如下:
`{"canvas":{"w":1920,"h":1080,"bgnd":0},"stream":[{"uid":"111","paneid":-1,"zorder":0,"x":0,"y":0,"w":0,"h":0,"type":0,"status":1,"muted":0,"vol":0,"vad":0}],"ver":"1.0.0.20220915","ts":1697696109876,"udd":"hello world"}`'."\n" - .'### 跨频道多用户混流'."\n" - .'若您需要将跨多个频道中的多个主播进行混流布局并转推到直播服务时,您需要将发起跨频道通话的主播的UserID、ChannelID,以及对端的UserID作为入参创建混流任务。示例如下:'."\n" - .'在直播PK场景中,频道channelA的主播userA,通过客户端接口发起了和频道channelB主播userB的跨频道PK,并将两个主播的混流画面输出给频道channelA的麦下观众观看。则,此时创建混流任务时关于频道和用户参数的指定示范如下:'."\n" - .'- ChannelID: 指定为channelA'."\n" - .'- UserInfos->UserId :分别指定userA和userB'."\n" - ."\n" - .'> 创建跨频道多用户的混流任务的前提是,已经通过客户端SDK接口发起了跨频道通话。如果不同频道的用户没有进行通话,则无法创建跨房间混流任务。如何发起跨房间通话,请参见[跨房间订阅功能](~~2642837~~)。', - ], - 'UpdateLiveMPUTask' => [ - 'summary' => '更新混流转推任务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '178411', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], - ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourAppId', - ], - ], - [ - 'name' => 'ChannelId', - 'in' => 'query', - 'schema' => [ - 'description' => '频道ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourChannelId', - ], - ], - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大55字符。此ID为旁路转推的标识,需保证唯一。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourTaskId', - ], - ], - [ - 'name' => 'MixMode', - 'in' => 'query', - 'schema' => [ - 'description' => '混流模式。取值:'."\n" - .'- **0**:单路转推,不混流转码,仅转推原始单路流,无需配置混流转码参数。'."\n" - .'- **1(默认值)**:混流转码转推。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - ], - [ - 'name' => 'StreamURL', - 'in' => 'query', - 'schema' => [ - 'description' => '直播推流地址,仅支持RTMP协议,仅支持传单个地址,最大长度不超过2048个字符。生成规则请参见[推流地址和播放地址](~~199339~~)。'."\n" - .'>- 对已开防盗链鉴权的域名,需要在推流地址中包含鉴权串。'."\n" - .'- 禁止同一个StreamURL在不同任务中同时使用。'."\n" - .'- 任务停止10S之内,禁止使用同一个StreamURL。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://example.com/live/stream', - ], - ], - [ - 'name' => 'MultiStreamURL', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '多地址转推参数,可填写多个直播推流地址。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'URL' => [ - 'description' => '直播推流地址,仅支持RTMP协议,最大长度不超过2048个字符。生成规则请参见[推流地址和播放地址](~~199339~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://example.com/live/stream****', - ], - 'IsAliCdn' => [ - 'description' => '是否转推到阿里云CDN。'."\n" - .'- false为转推非阿里云CDN。'."\n" - .'- true为转推阿里云CDN。'."\n" - .'> 该参数默认为false。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - [ - 'name' => 'SingleSubParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '单流转推参数,单流转推(MixMode=0)时必填。', - 'type' => 'object', - 'properties' => [ - 'SourceType' => [ - 'description' => '单流转推模式下视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" - .'- **camera(默认值)**:摄像头。'."\n" - .'- **shareScreen**:屏幕共享。', - 'type' => 'string', - 'required' => false, - 'example' => 'camera', - ], - 'StreamType' => [ - 'description' => '单流转推模式下转推流类型。取值:'."\n" - .'- **0(默认值)**:转推原始流。'."\n" - .'- **1**:仅转推音频流。'."\n" - .'- **2**:仅转推视频流。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - 'UserId' => [ - 'description' => '转推用户ID,一次只能转推一路流。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourSubUserId', - ], - ], - 'required' => false, - ], - ], - [ - 'name' => 'TranscodeParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '混流转码转推参数,混流转码转推(MixMode=1)时必填。', - 'type' => 'object', - 'properties' => [ - 'Background' => [ - 'description' => '混流全局背景图。', - 'type' => 'object', - 'properties' => [ - 'RenderMode' => [ - 'description' => '子画面输出时的显示模式:'."\n" - .'- **0**:缩放并显示黑底。'."\n" - .'- **1(默认)**:裁剪。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - 'URL' => [ - 'description' => '全局背景图URL。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourImageUrl', - ], - ], - 'required' => false, - ], - 'EncodeParams' => [ - 'description' => '转推输出的编码参数。', - 'type' => 'object', - 'properties' => [ - 'AudioOnly' => [ - 'description' => '是否为纯音频,取值:'."\n" - .'- **true**:纯音频,仅需要设置音频相关参数。'."\n" - .'- **false(默认值)**:非纯音频,除VideoCodec参数与EnhancedParam参数外,其它参数均不能为空。', - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], - 'AudioBitrate' => [ - 'description' => '音频码率,取值范围:\\[8, 500\\],单位:kbps。', - 'type' => 'string', - 'required' => false, - 'example' => '128', - ], - 'AudioChannels' => [ - 'description' => '音频声道数,取值:1、2。', - 'type' => 'string', - 'required' => false, - 'example' => '2', - ], - 'AudioSampleRate' => [ - 'description' => '音频采样率,取值:8000、16000、32000、44100、48000,单位:Hz。', - 'type' => 'string', - 'required' => false, - 'example' => '44100', - ], - 'VideoCodec' => [ - 'description' => '视频编码格式。取值:'."\n" - .'- H.264(默认值)。'."\n" - .'- H.265。', - 'type' => 'string', - 'required' => false, - 'example' => 'H.264', - ], - 'VideoBitrate' => [ - 'description' => '视频码率,取值范围:\\[1, 10000\\],单位:kbps。', - 'type' => 'string', - 'required' => false, - 'example' => '3500', - ], - 'VideoFramerate' => [ - 'description' => '视频帧率,取值范围:\\[1, 60\\],单位:fps。', - 'type' => 'string', - 'required' => false, - 'example' => '25', - ], - 'VideoGop' => [ - 'description' => '视频GOP,取值范围:\\[1, 60\\]。', - 'type' => 'string', - 'required' => false, - 'example' => '20', - ], - 'VideoHeight' => [ - 'description' => '视频高,取值范围:\\[0, 1920\\],单位:px。', - 'type' => 'string', - 'required' => false, - 'example' => '1000', - ], - 'VideoWidth' => [ - 'description' => '视频宽,取值范围:\\[0, 1920\\],单位:px。', - 'type' => 'string', - 'required' => false, - 'example' => '1920', - ], - 'EnhancedParam' => [ - 'description' => '编码增强参数,JSON字符串,目前支持的可选配置包括profile与preset。'."\n" - .'- profile:编码级别。当视频编码格式为H.264时,profile支持的可选值包括:"baseline", "main", "high";当视频编码格式为H.265时,profile支持的可选值包括:"main"。'."\n" - ."\n" - .'- preset:调节编码速度和质量的平衡。preset支持的可选值包括:"ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow" "placebo"。每个值代表了一种编码速度与输出视频质量的策略,从"ultrafast"(极快,编码速度优先)到"placebo"(追求极致质量,编码极慢)。'."\n" - ."\n" - .'> 例如设置superfast,主要用于实时通讯领域。建议非编码器专业技术人员,不设置该选项。', - 'type' => 'string', - 'required' => false, - 'example' => '{"profile": "high", "preset": "veryfast"}', - ], - ], - 'required' => false, - ], - 'Layout' => [ - 'description' => '视频布局信息。'."\n" - .'> 视频转码时,需要指定视频布局信息,包括布局坐标(X,Y),布局窗格(Width,Height),叠放顺序(ZOrder);纯音频转码时,禁止填写视频布局信息。', - 'type' => 'object', - 'properties' => [ - 'UserPanes' => [ - 'description' => '混流用户窗格信息。', - 'type' => 'array', - 'items' => [ - 'description' => '混流用户窗格信息。', - 'type' => 'object', - 'properties' => [ - 'UserInfo' => [ - 'description' => '该窗格对应的混流用户信息,不填时后台按照上行主播的进房顺序自动填充。'."\n" - ."\n" - .'> - 如果指定混流用户信息,该用户信息需要已在TranscodeParams.UserInfos参数中配置。'."\n" - .'- 仅针对原始流和视频流有效。', - 'type' => 'object', - 'properties' => [ - 'SourceType' => [ - 'description' => '混流转码模模式下视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" - .'- **camera(默认值)**:摄像头。'."\n" - .'- **shareScreen**:屏幕共享。', - 'type' => 'string', - 'required' => false, - 'example' => 'camera', - ], - 'ChannelId' => [ - 'description' => '混流用户所在的频道ID,同频道内混流的用户可不填,跨频道混流时建议填写该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourChannelId', - ], - 'UserId' => [ - 'description' => '混流用户ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourSubUserId', - ], - ], - 'required' => false, - ], - 'Height' => [ - 'description' => '窗格高,归一化百分比。', - 'type' => 'string', - 'required' => false, - 'example' => '0.2632', - ], - 'Width' => [ - 'description' => '窗格宽,归一化百分比。', - 'type' => 'string', - 'required' => false, - 'example' => '0.3564', - ], - 'X' => [ - 'description' => '坐标X,归一化百分比。', - 'type' => 'string', - 'required' => false, - 'example' => '0.2456', - ], - 'Y' => [ - 'description' => '坐标Y,归一化百分比。', - 'type' => 'string', - 'required' => false, - 'example' => '0.3789', - ], - 'ZOrder' => [ - 'description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - 'BackgroundImageUrl' => [ - 'description' => '子画面的背景图URL。当用户关闭摄像头或未进入房间时,会在布局位置填充为此图片。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourImageUrl', - ], - 'RenderMode' => [ - 'description' => '子画面输出时的显示模式,取值:'."\n" - .'- **0**:缩放并显示黑底。'."\n" - .'- **1(默认值)**:裁剪。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => false, - ], - 'UserInfos' => [ - 'description' => '混流时订阅的用户信息,不指定用户则所有用户混流。', - 'type' => 'array', - 'items' => [ - 'description' => '混流用户信息。', - 'type' => 'object', - 'properties' => [ - 'SourceType' => [ - 'description' => '混流时订阅的视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" - .'- **camera(默认值)**:摄像头。'."\n" - .'- **shareScreen**:屏幕共享。', - 'type' => 'string', - 'required' => false, - 'example' => 'camera', - ], - 'StreamType' => [ - 'description' => '混流时订阅的转推流类型。取值:'."\n" - .'- **0(默认值)**:转推原始流。'."\n" - .'- **1**:仅转推音频流。'."\n" - .'- **2**:仅转推视频流。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - 'ChannelId' => [ - 'description' => '混流时订阅用户所在的频道ID,同频道内混流的用户可不填,跨频道混流时建议填写该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourChannelId', - ], - 'UserId' => [ - 'description' => '混流时订阅的用户ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourSubUserId', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => false, - ], - ], - [ - 'name' => 'SeiParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => 'SEI配置参数。', - 'type' => 'object', - 'properties' => [ - 'LayoutVolume' => [ - 'description' => '布局和音量SEI,该参数内容可以为空,表示携带默认的布局和音量SEI。', - 'type' => 'object', - 'properties' => [ - 'FollowIdr' => [ - 'description' => '发送IDR关键帧时是否确保携带SEI,取值:'."\n" - .'- **0**:不确保带SEI。'."\n" - .'- **1**:确保带SEI。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - 'Interval' => [ - 'description' => 'SEI发送间隔,取值范围:\\[1000, 5000\\],单位:毫秒。', - 'type' => 'string', - 'required' => false, - 'example' => '1000', - ], - ], - 'required' => false, - ], - 'PassThrough' => [ - 'description' => '透传SEI。', - 'type' => 'object', - 'properties' => [ - 'FollowIdr' => [ - 'description' => '发送IDR关键帧时是否确保携带SEI,取值:'."\n" - .'- **0**:不确保带SEI。'."\n" - .'- **1**:确保带SEI。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - 'Interval' => [ - 'description' => 'SEI发送间隔,取值范围:\\[1000, 5000\\],单位:毫秒。', - 'type' => 'string', - 'required' => false, - 'example' => '1000', - ], - 'PayloadContent' => [ - 'description' => '透传SEI的payload内容。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourPayloadContent', - ], - 'PayloadContentKey' => [ - 'description' => '透传SEI的payload内容对应的key值。不设置时,key为默认值udd。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourPayloadContentKey', - ], - ], - 'required' => false, - ], - ], - 'required' => false, - ], + 'title' => '停止监播', + 'summary' => '停止监播。', + 'description' => '由创建监播室[CreateLiveStreamMonitor](~~2848129~~)接口返回参数获取**MonitorId**后开启监播,再调用本接口停止监播。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopLiveStreamMonitor'], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0F72851F-5DC1-1979-9B2C-450040316C3E', - ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopLiveStreamMonitor', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidAppId', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Your account has not enabled the Live service', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'InternalError', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0F72851F-5DC1-1979-9B2C-450040316C3E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0F72851F-5DC1-1979-9B2C-450040316C3E\\n","errorExample":""}]', - 'title' => '更新混流转推任务(新)', - 'description' => '调用本接口前,您必须已经调用[StartLiveMPUTask](~~2848199~~)创建混流转推任务。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为500次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', ], - 'StopLiveMPUTask' => [ - 'summary' => '停止混流转推任务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'StopPlaylist' => [ + 'summary' => '停止整个节目单。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '178700', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourAppId', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'TaskId', + 'name' => 'ProgramId', 'in' => 'query', - 'schema' => [ - 'description' => '任务ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大55字符。此ID为旁路转推的标识,需保证唯一。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourTaskId', - ], + 'schema' => ['description' => '节目单ID。如果您通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,请查看AddPlaylistItems接口调用返回的参数ProgramId值。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0F72851F-5DC1-1979-9B2C-450040316C3E', - ], + 'ProgramId' => ['description' => '节目单ID。', 'type' => 'string', 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b96****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidAppId', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidProgramId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ProgramId无效,请检查后重试。'], ], - 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Your account has not enabled the Live service', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s, please check and try again later.', - ], + 404 => [ + ['errorCode' => 'PlayListNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'PlayList不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'InternalError', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0F72851F-5DC1-1979-9B2C-450040316C3E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0F72851F-5DC1-1979-9B2C-450040316C3E\\n","errorExample":""}]', - 'title' => '停止混流转推任务(新)', - 'description' => '- 调用本接口前,您必须已经调用[StartLiveMPUTask](~~2848199~~)开始混流转推任务。'."\n" - .'- 如果需要停止混流转推任务时,此时混流转推任务异常(未调用StopLiveMPUTask停止任务),本次混流转推任务会在最后一个人离开频道2分钟后自动停止任务。停止后如果需要恢复混流转推,您需要重新调用[StartLiveMPUTask](~~2848199~~)接口。'."\n" + 'title' => '停止节目单', + 'description' => '先通过[AddPlaylistItems接口](~~2848078~~)添加节目单项,再调用本接口停止整个节目单。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为500次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'ListRtcMPUTaskDetail' => [ - 'summary' => '查询混流转推任务参数明细。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopPlaylist'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopPlaylist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProgramId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\",\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n5c6a2a0d-f228-4a64-af62-20e91b96****\\n445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', + ], + 'StopRtcAsrTask' => [ + 'summary' => '调用StopRtcAsrTask停止实时字幕任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '226001', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], + 'abilityTreeCode' => '219794', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。'."\n" - .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourAppId', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。'."\n" - ."\n\n" - .'>- 任务ID由大小写字母、数字、下划线、短划线(-)组成,最大55字符。'."\n" - .'- 指定任务ID时,优先按任务ID查询,返回结果为指定任务ID的旁路转推任务的参数明细。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourTaskId', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '单页显示记录的数量,取值范围:1~100。'."\n" - .'> 未指定任务ID时,需要指定PageSize与PageNo参数,此时会返回指定应用ID下所有旁路转推任务参数明细的分页查询结果。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => '任务ID。', 'type' => 'string', 'required' => true, 'example' => 'asr-d794cc89-a63e-4d08-8b44-242a6597****'], ], ], 'responses' => [ @@ -64545,1364 +49065,562 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], - 'MPUTasks' => [ - 'description' => '任务参数明细,参数明细格式与调用创建混流任务时的参数格式一致。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'AppId' => [ - 'description' => '应用ID。'."\n", - 'type' => 'string', - 'example' => 'yourAppId', - ], - 'ChannelId' => [ - 'description' => '频道ID。', - 'type' => 'string', - 'example' => 'yourChannelId', - ], - 'TaskId' => [ - 'description' => '任务ID,此ID为旁路转推任务的标识。', - 'type' => 'string', - 'example' => 'yourTaskId', - ], - 'MixMode' => [ - 'description' => '混流模式。取值:'."\n" - .'- 0:单路转推,不混流转码,仅转推原始单路流,无需配置混流转码参数。'."\n" - .'- 1(默认值):混流转码转推。', - 'type' => 'string', - 'example' => '0', - ], - 'StreamURL' => [ - 'description' => '直播推流地址。'."\n", - 'type' => 'string', - 'example' => 'rtmp://example.com/live/stream****', - ], - 'MultiStreamURL' => [ - 'description' => '多地址转推参数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'URL' => [ - 'description' => '直播推流地址。', - 'type' => 'string', - 'example' => 'rtmp://example.com/live/stream****', - ], - 'IsAliCdn' => [ - 'description' => '是否转推到阿里云CDN。'."\n" - .'- false为转推非阿里云CDN。'."\n" - .'- true为转推阿里云CDN。', - 'type' => 'boolean', - 'example' => 'false', - ], - ], - ], - ], - 'Region' => [ - 'description' => '请求的混流服务所在区域。取值:'."\n" - .'- **CN-Shanghai(默认值)**:上海。'."\n" - .'- **AP-Singapore(默认值)**:新加坡。'."\n" - .'- **EMAA-Saudi**:沙特。', - 'type' => 'string', - 'example' => 'CN-Shanghai', - ], - 'MaxIdleTime' => [ - 'description' => '空闲超时时间,单位:秒'."\n" - .'> 若设置了此参数,则会在任务处于空闲状态的时长大于 MaxIdleTime 时,自动停止该任务;若未设置此参数,则会在房间关闭后,立刻停止该任务。', - 'type' => 'string', - 'example' => '10', - ], - 'SingleSubParams' => [ - 'description' => '单流转推参数。', - 'type' => 'object', - 'properties' => [ - 'SourceType' => [ - 'description' => '单流转推模式下视频输入流类型,当视频流(StreamType=2)时有效。取值:'."\n" - .'- camera(默认值):摄像头。'."\n" - .'- shareScreen:屏幕共享。', - 'type' => 'string', - 'example' => 'camera', - ], - 'StreamType' => [ - 'description' => '单流转推模式下转推流类型。取值:'."\n" - .'- 0(默认值):转推原始流。'."\n" - .'- 1:仅转推音频流。'."\n" - .'- 2:仅转推视频流。', - 'type' => 'string', - 'example' => '0', - ], - 'UserId' => [ - 'description' => '转推用户ID,一次只能转推一路流。', - 'type' => 'string', - 'example' => 'yourSubUserId', - ], - ], - ], - 'TranscodeParams' => [ - 'description' => '混流转码转推参数。', - 'type' => 'object', - 'properties' => [ - 'Background' => [ - 'description' => '混流全局背景图。', - 'type' => 'object', - 'properties' => [ - 'RenderMode' => [ - 'description' => '子画面输出时的显示模式:'."\n" - .'- 0:缩放并显示黑底。'."\n" - .'- 1(默认):裁剪。', - 'type' => 'string', - 'example' => '1', - ], - 'URL' => [ - 'description' => '全局背景图URL。', - 'type' => 'string', - 'example' => 'yourImageUrl', - ], - ], - ], - 'EncodeParams' => [ - 'description' => '转推输出的编码参数。', - 'type' => 'object', - 'properties' => [ - 'AudioOnly' => [ - 'description' => '是否为纯音频,取值:'."\n" - .'- true:纯音频。'."\n" - .'- false(默认值):非纯音频。', - 'type' => 'string', - 'example' => 'false', - ], - 'AudioBitrate' => [ - 'description' => '音频码率,单位:kbps。', - 'type' => 'string', - 'example' => '128', - ], - 'AudioChannels' => [ - 'description' => '音频声道数,取值:1、2。', - 'type' => 'string', - 'example' => '2', - ], - 'AudioSampleRate' => [ - 'description' => '音频采样率,单位:Hz。', - 'type' => 'string', - 'example' => '44100', - ], - 'VideoCodec' => [ - 'description' => '视频编码格式。默认值H.264。', - 'type' => 'string', - 'example' => 'H.264', - ], - 'VideoBitrate' => [ - 'description' => '视频码率,单位:kbps。', - 'type' => 'string', - 'example' => '3500', - ], - 'VideoFramerate' => [ - 'description' => '视频帧率,单位:fps。', - 'type' => 'string', - 'example' => '25', - ], - 'VideoGop' => [ - 'description' => '视频GOP。', - 'type' => 'string', - 'example' => '20', - ], - 'VideoHeight' => [ - 'description' => '视频高,单位:px。', - 'type' => 'string', - 'example' => '1000', - ], - 'VideoWidth' => [ - 'description' => '视频宽,单位:px。', - 'type' => 'string', - 'example' => '1920', - ], - 'EnhancedParam' => [ - 'description' => '编码增强参数,JSON字符串,目前支持的可选配置包括profile与preset。'."\n" - .'- profile:编码级别。当视频编码格式为H.264时,profile支持的可选值包括:"baseline", "main", "high"。'."\n" - .'- preset:调节编码速度和质量的平衡。preset支持的可选值包括:"ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow" "placebo"。每个值代表了一种编码速度与输出视频质量的策略,从"ultrafast"(极快,编码速度优先)到"placebo"(追求极致质量,编码极慢)。', - 'type' => 'string', - 'example' => '{"profile": "high", "preset": "veryfast"}', - ], - ], - ], - 'Layout' => [ - 'description' => '视频布局信息。'."\n" - .'> 视频转码时所指定的视频布局信息,包括布局坐标(X,Y),布局窗格(Width,Height),叠放顺序(ZOrder);纯音频转码时,不包含视频布局信息。', - 'type' => 'object', - 'properties' => [ - 'UserPanes' => [ - 'description' => '混流用户窗格信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'UserInfo' => [ - 'description' => '混流用户信息。'."\n", - 'type' => 'object', - 'properties' => [ - 'SourceType' => [ - 'description' => '混流转码模模式下视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" - .'- camera(默认值):摄像头。'."\n" - .'- shareScreen:屏幕共享。', - 'type' => 'string', - 'example' => 'camera', - ], - 'ChannelId' => [ - 'description' => '混流用户所在的频道ID。', - 'type' => 'string', - 'example' => 'yourChannelId', - ], - 'UserId' => [ - 'description' => '混流用户ID。', - 'type' => 'string', - 'example' => 'yourSubUserId', - ], - ], - ], - 'Height' => [ - 'description' => '窗格高,归一化百分比。', - 'type' => 'string', - 'example' => '0.2632', - ], - 'Width' => [ - 'description' => '窗格宽,归一化百分比。', - 'type' => 'string', - 'example' => '0.3564', - ], - 'X' => [ - 'description' => '坐标X,归一化百分比。', - 'type' => 'string', - 'example' => '0.2456', - ], - 'Y' => [ - 'description' => '坐标Y,归一化百分比。', - 'type' => 'string', - 'example' => '0.3789', - ], - 'ZOrder' => [ - 'description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。', - 'type' => 'string', - 'example' => '0', - ], - 'BackgroundImageUrl' => [ - 'description' => '子画面的背景图URL。当用户关闭摄像头或未进入房间时,会在布局位置填充为此图片。', - 'type' => 'string', - 'example' => 'yourImageUrl', - ], - 'RenderMode' => [ - 'description' => '子画面输出时的显示模式,取值:'."\n" - .'- 0:缩放并显示黑底。'."\n" - .'- 1(默认值):裁剪。', - 'type' => 'string', - 'example' => '1', - ], - ], - ], - ], - ], - ], - 'UserInfos' => [ - 'description' => '混流用户信息,不指定用户则所有用户混流。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ChannelId' => [ - 'description' => '混流用户所在的频道ID。', - 'type' => 'string', - 'example' => 'yourChannelId', - ], - 'UserId' => [ - 'description' => '混流用户ID。', - 'type' => 'string', - 'example' => 'yourSubUserId', - ], - 'SourceType' => [ - 'description' => '混流转码模模式下视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" - .'- camera(默认值):摄像头'."\n" - .'- shareScreen:屏幕共享。', - 'type' => 'string', - 'example' => 'camera', - ], - 'StreamType' => [ - 'description' => '混流转码模式下转推流类型。取值:'."\n" - .'- 0(默认值):转推原始流。'."\n" - .'- 1:仅转推音频流。'."\n" - .'- 2:仅转推视频流。', - 'type' => 'string', - 'example' => '0', - ], - ], - ], - ], - ], - ], - 'SeiParams' => [ - 'description' => 'SEI配置参数。', - 'type' => 'object', - 'properties' => [ - 'LayoutVolume' => [ - 'description' => '布局和音量SEI,该参数内容为空则表示携带默认的布局和音量SEI。', - 'type' => 'object', - 'properties' => [ - 'FollowIdr' => [ - 'description' => '发送IDR关键帧时是否确保携带SEI,取值:'."\n" - .'- 0:不确保带SEI。'."\n" - .'- 1:确保带SEI。', - 'type' => 'string', - 'example' => '0', - ], - 'Interval' => [ - 'description' => 'SEI发送间隔,单位:毫秒。', - 'type' => 'string', - 'example' => '1000', - ], - ], - ], - 'PassThrough' => [ - 'description' => '透传SEI。', - 'type' => 'object', - 'properties' => [ - 'FollowIdr' => [ - 'description' => '发送IDR关键帧时是否确保携带SEI,取值:'."\n" - .'- 0:不确保带SEI。'."\n" - .'- 1:确保带SEI。', - 'type' => 'string', - 'example' => '0', - ], - 'Interval' => [ - 'description' => 'SEI发送间隔,单位:毫秒。', - 'type' => 'string', - 'example' => '1000', - ], - 'PayloadContent' => [ - 'description' => '透传SEI的payload内容。', - 'type' => 'string', - 'example' => 'yourPayloadContent', - ], - 'PayloadContentKey' => [ - 'description' => '透传SEI的payload内容对应的key值。不设置时,key为默认值udd。', - 'type' => 'string', - 'example' => 'yourPayloadContentKey', - ], - ], - ], - 'PayloadType' => [ - 'description' => 'SEI消息的自定义payload_type,取值范围100-254。不设置时,SEI的payload_type为默认值为5。', - 'type' => 'string', - 'example' => '100', - ], - ], - ], - ], - ], - ], + 'Description' => ['description' => '结果描述,为success时成功,失败则返回错误信息。', 'type' => 'string', 'example' => 'success'], + 'RequestId' => ['description' => '网关请求ID。', 'type' => 'string', 'example' => '3D208CC1-27C9-51E9-82B8-A6682D466421'], + 'RetCode' => ['description' => '状态码。返回2000表示成功,返回其他表示异常。', 'type' => 'integer', 'format' => 'int64', 'example' => '2000'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidAppId', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Your account has not enabled the Live service', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"MPUTasks\\": [\\n {\\n \\"AppId\\": \\"yourAppId\\",\\n \\"ChannelId\\": \\"yourChannelId\\",\\n \\"TaskId\\": \\"yourTaskId\\",\\n \\"MixMode\\": \\"0\\",\\n \\"StreamURL\\": \\"rtmp://example.com/live/stream****\\",\\n \\"MultiStreamURL\\": [\\n {\\n \\"URL\\": \\"rtmp://example.com/live/stream****\\",\\n \\"IsAliCdn\\": false\\n }\\n ],\\n \\"Region\\": \\"CN-Shanghai\\",\\n \\"MaxIdleTime\\": \\"10\\",\\n \\"SingleSubParams\\": {\\n \\"SourceType\\": \\"camera\\",\\n \\"StreamType\\": \\"0\\",\\n \\"UserId\\": \\"yourSubUserId\\"\\n },\\n \\"TranscodeParams\\": {\\n \\"Background\\": {\\n \\"RenderMode\\": \\"1\\",\\n \\"URL\\": \\"yourImageUrl\\"\\n },\\n \\"EncodeParams\\": {\\n \\"AudioOnly\\": \\"false\\",\\n \\"AudioBitrate\\": \\"128\\",\\n \\"AudioChannels\\": \\"2\\",\\n \\"AudioSampleRate\\": \\"44100\\",\\n \\"VideoCodec\\": \\"H.264\\",\\n \\"VideoBitrate\\": \\"3500\\",\\n \\"VideoFramerate\\": \\"25\\",\\n \\"VideoGop\\": \\"20\\",\\n \\"VideoHeight\\": \\"1000\\",\\n \\"VideoWidth\\": \\"1920\\",\\n \\"EnhancedParam\\": \\"{\\\\\\"profile\\\\\\": \\\\\\"high\\\\\\", \\\\\\"preset\\\\\\": \\\\\\"veryfast\\\\\\"}\\"\\n },\\n \\"Layout\\": {\\n \\"UserPanes\\": [\\n {\\n \\"UserInfo\\": {\\n \\"SourceType\\": \\"camera\\",\\n \\"ChannelId\\": \\"yourChannelId\\",\\n \\"UserId\\": \\"yourSubUserId\\"\\n },\\n \\"Height\\": \\"0.2632\\",\\n \\"Width\\": \\"0.3564\\",\\n \\"X\\": \\"0.2456\\",\\n \\"Y\\": \\"0.3789\\",\\n \\"ZOrder\\": \\"0\\",\\n \\"BackgroundImageUrl\\": \\"yourImageUrl\\",\\n \\"RenderMode\\": \\"1\\"\\n }\\n ]\\n },\\n \\"UserInfos\\": [\\n {\\n \\"ChannelId\\": \\"yourChannelId\\",\\n \\"UserId\\": \\"yourSubUserId\\",\\n \\"SourceType\\": \\"camera\\",\\n \\"StreamType\\": \\"0\\"\\n }\\n ]\\n },\\n \\"SeiParams\\": {\\n \\"LayoutVolume\\": {\\n \\"FollowIdr\\": \\"0\\",\\n \\"Interval\\": \\"1000\\"\\n },\\n \\"PassThrough\\": {\\n \\"FollowIdr\\": \\"0\\",\\n \\"Interval\\": \\"1000\\",\\n \\"PayloadContent\\": \\"yourPayloadContent\\",\\n \\"PayloadContentKey\\": \\"yourPayloadContentKey\\"\\n },\\n \\"PayloadType\\": \\"100\\"\\n }\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n \\n yourAppId\\n yourChannelId\\n yourTaskId\\n 0\\n rtmp://example.com/live/stream****\\n \\n rtmp://example.com/live/stream****\\n \\n CN-Shanghai\\n \\n camera\\n 0\\n yourSubUserId\\n \\n \\n \\n 1\\n yourImageUrl\\n \\n \\n false\\n 128\\n 2\\n 44100\\n H.264\\n 3500\\n 25\\n 20\\n 1000\\n 1920\\n {\\"profile\\": \\"high\\", \\"preset\\": \\"veryfast\\"}\\n \\n \\n \\n \\n camera\\n yourChannelId\\n yourSubUserId\\n \\n 0.2632\\n 0.3564\\n 0.2456\\n 0.3789\\n 0\\n yourImageUrl\\n 1\\n \\n \\n \\n yourChannelId\\n yourSubUserId\\n camera\\n 0\\n \\n \\n \\n \\n 0\\n 1000\\n \\n \\n 0\\n 1000\\n yourPayloadContent\\n yourPayloadContentKey\\n \\n 100\\n \\n \\n","errorExample":""}]', - 'title' => '查询混流转推任务参数明细', - 'description' => '- 本接口用于查询混流转推任务的参数明细,仅可查询通过API创建的混流转推任务。'."\n" - ."\n" - .'- 分页查询时,查询结果默认按照任务的更新时间倒序排列。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'SetLiveMpuTaskSei' => [ - 'summary' => '设置连麦旁路自定义sei。', - 'methods' => [ - 'post', - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '停止实时语音转文字或翻译', + 'description' => '本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopRtcAsrTask'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopRtcAsrTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"3D208CC1-27C9-51E9-82B8-A6682D466421\\",\\n \\"RetCode\\": 2000\\n}","errorExample":""},{"type":"xml","example":"\\n success\\n 3D208CC1-27C9-51E9-82B8-A6682D466421\\n 2000\\n","errorExample":""}]', + ], + 'StopRtcCloudRecording' => [ + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '167350', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], + 'abilityTreeCode' => '269331', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '订阅的应用ID。'."\n" - .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourAppId', - ], - ], - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。'."\n" - .'> 任务ID由大小写字母、数字、下划线、短划线(-)组成,最大55字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourTaskId', - ], - ], - [ - 'name' => 'CustomSei', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '自定义SEI。'."\n" - .'> 自定义SEI为json字符串,不超过4096个字符。', - 'type' => 'string', - 'required' => true, - 'example' => '{"key": "value"}', - ], + 'schema' => ['description' => '启动Rtc云端录制时返回的任务id。', 'type' => 'string', 'required' => true, 'example' => '******73-8501-****-8ac1-72295a******'."\n"], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回内容。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求id。', 'type' => 'string', 'example' => '******58-5876-****-83CA-B56278******'], + 'TaskId' => ['description' => '任务id。', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidAppId', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'NotFound.Task', 'errorMessage' => '%s, please check the TaskId.', 'description' => '参数TaskId不存在。'], + ['errorCode' => 'InvalidParameter.TaskId', 'errorMessage' => '%s, please check the TaskId.', 'description' => '指定的task必须处于运行中或者恢复中状态。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Your account has not enabled the Live service', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'InternalError', - ], + ['errorCode' => 'InvalidParameter.UserId', 'errorMessage' => '%s, please check the UserId.', 'description' => 'UserId无效,请检查。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', - 'title' => '设置自定义SEI', - 'description' => '## 使用说明'."\n" - .'本接口用于设置混流转推任务的自定义SEI信息。'."\n" - .'## QPS限制'."\n" + 'title' => '停止Rtc云端录制任务', + 'summary' => '停止rtc云端录制任务。', + 'description' => '## QPS限制'."\n" .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'CreateEventSub' => [ - 'summary' => '创建订阅房间消息的回调。', - 'methods' => [ - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopRtcCloudRecording'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:StopRtcCloudRecording', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\"\\n}","type":"json"}]', + ], + 'StopRtcCloudTranscode' => [ + 'path' => '', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '订阅的应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => '9qb1****', - ], - ], - [ - 'name' => 'ChannelId', - 'in' => 'query', - 'schema' => [ - 'title' => '要监听的频道,不填表示全部,每个appid 只允许1个全频道订阅', - 'description' => '订阅的频道ID。您可通过调用[ListEventSub](~~2848210~~)接口查询订阅的频道ID。'."\n" - ."\n" - .'>- 如果Users.N参数不为空,则此参数必填。'."\n" - .'>- ChannelId为*或者不填,表示为全频道订阅,每个AppId只允许1个全频道订阅。'."\n" - .'>- 每个AppId最多同时允许创建20个订阅。', - 'type' => 'string', - 'required' => false, - 'example' => '123333', - ], - ], - [ - 'name' => 'Users', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '只监听哪些用户,不填表示全部;与ChannelId过滤同时使用才生效', - 'description' => '订阅哪些用户的消息,参数为空表示订阅该房间全部用户(包含主播和观众)。格式如下所示:'."\n" - ."\n" - .'```'."\n" - .'Users.1=****'."\n" - .'Users.2=****'."\n" - .'......'."\n" - .'```', - 'type' => 'array', - 'items' => [ - 'description' => '用户ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'user1', - ], - 'required' => false, - 'maxItems' => 30, - ], - ], - [ - 'name' => 'Events', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => 'ChannelEvent, UserEvent', - 'description' => '订阅事件。', - 'type' => 'array', - 'items' => [ - 'description' => '订阅的事件,取值:'."\n" - ."\n" - .'- **ChannelEvent**:频道事件。'."\n" - ."\n" - .'- **UserEvent**:频道内用户事件。', - 'type' => 'string', - 'required' => true, - 'example' => 'ChannelEvent', - ], - 'required' => true, - 'maxItems' => 5, - ], + 'schema' => ['description' => '应用 ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。', 'type' => 'string', 'required' => true, 'example' => '********-7074-****-9ef5-85c19a4*****'], ], [ - 'name' => 'CallbackUrl', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'title' => '回调地址', - 'description' => '回调地址。回调内容请参见以下回调内容示例。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://****.com/callback', - ], + 'schema' => ['description' => '云端转码任务ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。', 'type' => 'string', 'required' => true, 'example' => '******73-8501-****-8ac1-72295a******'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '返回内容。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '760bad53276431c499e30dc36f6b****', - ], - 'SubscribeId' => [ - 'description' => '创建的订阅ID。', - 'type' => 'string', - 'example' => 'ad53276431c****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'QuotaLimitError', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'ErrorInvalidCallBackUrl', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParameter%s', 'errorMessage' => '%s.', 'description' => ''], + ['errorCode' => 'MissingParameter%s', 'errorMessage' => '%s.', 'description' => ''], + ['errorCode' => 'TooManyRequests', 'errorMessage' => '%s.', 'description' => ''], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s.', 'description' => ''], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'NotFound%s', 'errorMessage' => '%s.', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '停止云端转码任务', + 'summary' => '停止云端转码任务。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b****\\",\\n \\"SubscribeId\\": \\"ad53276431c****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 760bad53276431c499e30dc36f6b26be\\n ad53276431c****\\n","errorExample":""}]', - 'title' => '创建订阅房间消息回调', - 'description' => '本接口用于创建订阅房间消息的回调。例如:在创建回调时,您可以配置回调地址、事件类型等参数。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '## CallBack'."\n" - .'通过用户传入的CallbackUrl,回调用户的内容,示例如下所示:'."\n" - ."\n" - .'```'."\n" - .'Request:'."\n" - ."\n" - .'POST /callbackURL'."\n" - ."\n" - .'Body'."\n" - .'application/json'."\n" - ."\n" - .'{'."\n" - .' "MsgId": "消息ID",'."\n" - .' "MsgTimestamp": 12312324, // 消息发送时的Unix时间戳'."\n" - .' "SubscribeID": "订阅ID",'."\n" - .' "AppId":"", // 产生该消息的appid '."\n" - .' "ChannelID":"", // 产生该消息的频道'."\n" - .' "Contents": ['."\n" - .' {'."\n" - .' "Event": "UserEvent",//订阅的事件:频道内用户事件'."\n" - .' "UserEvent": {'."\n" - .' "UserId": "80331631628*****", // 用户ID'."\n" - .' "EventTag": "Publish", // 事件,包括Join, Leave, Publish, Unpublish, Roleupdate'."\n" - .' "SessionId": "0dr15rrnhkz0jnvz6o8sxo0*****", // 产生该事件的SessionID'."\n" - .' "Timestamp": 1609854786, // 事件发生Unix 时间戳'."\n" - .' "Reason": 1, // 入会、离会原因,仅Join事件有'."\n" - .' "Role": 1, // 角色类型, 主播,观众'."\n" - .' "CurrentMedias":"1,2,3"// 推流类型:用户推了哪些流'."\n" - .' }'."\n" - .' },'."\n" - .' {'."\n" - .' "Event": "ChannelEvent",//订阅的事件:频道事件'."\n" - .' "ChannelEvent": {'."\n" - .' "ChannelId": "88888****",'."\n" - .' "EventTag": "Open", // 频道事件,包括开启与关闭Open, Close'."\n" - .' "Timestamp": 1609854530 // 事件发生Unix 时间戳'."\n" - .' }'."\n" - .' }'."\n" - .' ]'."\n" - .'}'."\n" - ."\n" - .'Response '."\n" - .'HTTP STATUS 200'."\n" - .'```'."\n" - .'## UserEvent用户事件'."\n" - ."\n" - .'| 参数 | 类型 | 是否必填|描述|'."\n" - .'| ------ | ------ | ------ | ----- |'."\n" - .'| UserId |string | 是 |用户ID。 |'."\n" - .'| SessionId | string | 是 |用户SessionID。 |'."\n" - .'| EventTag | string | 是 |事件类型,取值:
Join:入会。
Leave:离会。
PublishVideo:开始推视频流。
PublishAudio:开始推音频流。
PublishScreen:开始屏幕共享。
UnpublishVideo:停止推视频流。
UnpublishAudio:停止推音频流。
UnpublishScreen:停止屏幕共享。
Roleupdate:角色切换。 |'."\n" - .'| Timestamp |number | 是 |事件发生的时间戳。 |'."\n" - .'| Reason | integer | 是 |入会、离会原因(仅Join事件有),取值:
1:正常入会、离会。
2:重连入会(当前会中已有该用户实例,该用户再次入会)。
3:跨频道转推。
4:超时离会。
5:用户启用新的会话,当前会话被挤下线。
6:被踢出。
7:频道解散。|'."\n" - .'| Role | integer | 是 |角色类型,取值:
1:主播。
2:观众。 |'."\n" - .'| CurrentMedias| integer | 是 |推流类型,取值:
1:音频。
2:视频。
3:屏幕共享。 |'."\n" - ."\n" - .'## ChannelEvent频道事件'."\n" - .'| 参数 | 类型 | 是否必填|描述|'."\n" - .'| ------ | ------ | ------ | ------- |'."\n" - .'| EventTag |string | 是 |事件类型,取值:
Open:会议开始。
Close:会议结束。 |'."\n" - .'| Timestamp| number | 是 |事件发生的时间戳。 |'."\n" - ."\n" - .'## 回调鉴权说明'."\n" - .'事件回调鉴权功能默认开启,鉴权逻辑如下所示:'."\n" - ."\n" - .'- 阿里云视频直播服务发起回调请求时在HTTP(S)请求头中包含Ali-Rtc-Timestamp和Ali-Rtc-Signature字段,供回调消息接收服务端进行签名认证。Ali-Rtc-Timestamp值计算方式为:Ali-Rtc-Signature=MD5SUM(MD5CONTENT)。其中,MD5CONTENT=回调域名|Ali-Rtc-Timestamp取值|鉴权Key;回调域名指配置回调URL的域名,鉴权Key指用户创建AppId时生成的AppKey。'."\n" - .'- 回调消息接收服务端接收回调消息时,将回调域名、Ali-Rtc-Timestamp取值、鉴权Key进行拼接后计算MD5值,得到加密字符串,再将计算出的加密字符串与音视频通信服务发起的HTTP(S)请求头中的Ali-Rtc-Signature字段值进行对比,如果不一致,则请求非法。'."\n" - .'## 回调异常重试'."\n" - .'阿里云发起回调请求时,仅当您的业务服务器响应HTTP状态码为200时认定为回调成功。若回调失败,阿里云会重试7次,分别间隔1秒、2秒、5秒、10秒、1分钟、2分钟、5分钟。每次重试请求均会产生对应的回调记录。'."\n" - .'## 异常处理'."\n" - .'已经入会或者推流的客户端和阿里云的服务端有心跳保活机制,当客户端因为断网、App关闭异常等原因导致心跳保活失败(90秒未收到客户端心跳信息则认定为失败),服务端会判定客户端异常超时离开,并产生用户停止推流和离会的事件回调。', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","type":"json"}]', ], - 'ListEventSub' => [ - 'summary' => '查询订阅房间消息列表。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'TagLiveResources' => [ + 'summary' => '调用TagLiveResources添加Live资源标签。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '198164', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], + 'abilityTreeCode' => '107259', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '资源ID。取值:直播域名。'."\n" + .'N的取值范围为**1~50**。', + 'type' => 'array', + 'items' => ['description' => '资源ID。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], + 'required' => true, + 'example' => 'example.com', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。N的取值范围为**1~20**。', 'type' => 'string', 'required' => true, 'example' => 'env'], + 'Value' => ['description' => '标签值。N的取值范围为**1~20**。', 'type' => 'string', 'required' => false, 'example' => 'product'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => true, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'ResourceType', 'in' => 'query', 'schema' => [ - 'description' => '应用ID。', + 'description' => '资源类型。固定值:**DOMAIN**。', 'type' => 'string', 'required' => true, - 'example' => '9qb1****', + 'enumValueTitles' => ['DOMAIN' => '域名资源', 'domain' => '域名资源'], + 'example' => 'DOMAIN', + 'enum' => ['DOMAIN', 'domain'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08', - ], - 'Subscribers' => [ - 'description' => '订阅事件列表。', - 'type' => 'array', - 'items' => [ - 'description' => '订阅事件详情。', - 'type' => 'object', - 'properties' => [ - 'SubId' => [ - 'title' => '订阅ID', - 'description' => '订阅事件ID。', - 'type' => 'string', - 'example' => '09be0d2254cb5a89f4cbd86403ec****', - ], - 'ChannelId' => [ - 'description' => '订阅的频道ID。', - 'type' => 'string', - 'example' => 'testmodify', - ], - 'Events' => [ - 'title' => 'ChannelEvent表示频道事件,包括频道开启与关闭;'."\n" - .'UserEvent表示用户事件,包括用户入离会等', - 'description' => '订阅的事件,取值:'."\n" - ."\n" - .'- ChannelEvent:频道事件,包括频道开启与关闭。'."\n" - .'- UserEvent:用户事件,包括用户入离会等。', - 'type' => 'array', - 'items' => [ - 'description' => '订阅的事件,取值:'."\n" - ."\n" - .'- ChannelEvent:频道事件,包括频道开启与关闭。'."\n" - .'- UserEvent:用户事件,包括用户入离会等。', - 'type' => 'string', - 'example' => 'ChannelEvent', - ], - ], - 'CallbackUrl' => [ - 'description' => '回调地址。', - 'type' => 'string', - 'example' => 'http://****.com/callback', - ], - 'CreateTime' => [ - 'title' => '创建时间', - 'description' => '创建订阅时间。东八区时间,是UTC+8时区的时间。格式:yyyy-MM-dd hh:mm:ss。', - 'type' => 'string', - 'example' => '2023-08-18 10:14:49', - ], - 'ModifyTime' => [ - 'title' => '修改时间', - 'description' => '修改订阅时间。东八区时间,是UTC+8时区的时间。格式:yyyy-MM-dd hh:mm:ss。', - 'type' => 'string', - 'example' => '2023-08-18 10:14:49', - ], - 'Users' => [ - 'title' => '只回调指定userid的事件;不建议与role同用;'."\n" - .'指定此参数必须同时指定ChannelId', - 'description' => '只回调此用户的事件,不建议与Roles同用。', - 'type' => 'array', - 'items' => [ - 'description' => '只回调此用户的事件,不建议与Roles同用。', - 'type' => 'string', - 'example' => 'testUser', - ], - ], - 'Roles' => [ - 'title' => '1只回调主播事件,2只回调观众事件;'."\n" - .'无值、0、其他值表示回调所有用户事件', - 'description' => '回调哪个角色的事件,取值:'."\n" - ."\n" - .'- 1:只回调主播事件。'."\n" - .'- 2:只回调观众事件。'."\n" - ."\n" - .'无值或其他值表示回调所有用户事件。'."\n" - .'> 创建订阅不再支持此参数,此参数已废弃。', - 'type' => 'integer', - 'format' => 'int32', - 'deprecated' => true, - 'example' => '1', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB'], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + 401 => [ + ['errorCode' => 'InvalidResourceType', 'errorMessage' => 'The resourceType is invalid.', 'description' => '指定的resourceType参数无效。'], + ['errorCode' => 'QuotaExceed.TagsPerResource', 'errorMessage' => 'The maximum number of tags for each resource is exceeded.', 'description' => '资源的标签数量超过上限。'], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The tag key is invalid, %s.', 'description' => '标签键无效。'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'Duplicate.TagKey', 'errorMessage' => 'The tags should not contain duplicate keys.', 'description' => '标签中不应该包含重复键。'], + ['errorCode' => 'InvalidResourcesCount', 'errorMessage' => 'The count of resources is invalid, %s.', 'description' => '输入的资源数组,资源总数不能超过最大值,同时必须大于0个。'], ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\r\\n","errorExample":""}]', + 'title' => '添加Live资源标签', + 'description' => ' 单用户调用频率为100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '### 特殊错误码'."\n" + .'|错误代码 |描述 |Http状态码 |语义 |'."\n" + .'|------------|--------|---------|------|'."\n" + .'|InvalidRegionId.Malformed |The specified RegionId is invalid. |400 |RegionId无效|'."\n" + .'|Resource.NotExist |Resources doesn\'t exist. |400 |Resource不存在|'."\n" + .'|TagKeyIsInvalid |The specified TagKey is invalid. |400 |TagKey格式错误|'."\n" + .'|TooManyTags |Too many tags. |400 |Tag超限|'."\n" + .'|TagValueIsInvalid |The specified TagValue is invalid. |400 |TagValue格式错误|'."\n" + .'|TagKeyRepeated |The specified TagKey is duplicated. |400 |TagKey存在重复值|'."\n" + .'|TagIsInvalid |The number of Tag exceeds 20. |400 |Tag不能超过20|'."\n" + .'|ResourceIdIsInvalid |The number of ResourceId exceeds 50. |400 |ResourceId不能超过50个|'."\n" + .'|SystemTagIsInvalid |The number of System Tag exceeds 50. |400 |系统标签累计不能超过50个|'."\n" + .'|CustomTagIsInvalid |The number of Custom Tag exceeds 20. |400 |用户标签累计不能超过20个|', + 'changeSet' => [ + ['createdAt' => '2023-12-14T02:40:09.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TagLiveResources'], ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:TagLiveResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08\\",\\n \\"Subscribers\\": [\\n {\\n \\"SubId\\": \\"09be0d2254cb5a89f4cbd86403ec****\\",\\n \\"ChannelId\\": \\"testmodify\\",\\n \\"Events\\": [\\n \\"ChannelEvent\\"\\n ],\\n \\"CallbackUrl\\": \\"http://****.com/callback\\",\\n \\"CreateTime\\": \\"2023-08-18 10:14:49\\",\\n \\"ModifyTime\\": \\"2023-08-18 10:14:49\\",\\n \\"Users\\": [\\n \\"testUser\\"\\n ],\\n \\"Roles\\": 1\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08\\n \\n 09be0d2254cb5a89f4cbd86403ec****\\n testmodify\\n ChannelEvent\\n http://****.com/callback\\n 2023-08-18 10:14:49\\n 2023-08-18 10:14:49\\n testUser\\n 1\\n \\n","errorExample":""}]', - 'title' => '查询订阅房间消息列表', - 'description' => '本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', ], - 'ListEventSubEvent' => [ - 'summary' => '查询回调记录。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'UnTagLiveResources' => [ + 'summary' => '调用UnTagLiveResources删除Live资源标签。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', + 'abilityTreeCode' => '107264', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '订阅的应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => '9qb1****', - ], - ], - [ - 'name' => 'SubscribeId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '订阅ID。您可通过[CreateEventSub](~~2848209~~)接口的返回参数查询订阅ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'ad53276431c****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'StartTime', + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '起始时间,用UNIX时间戳表示,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', + 'description' => '资源ID。直播域名。'."\n" + .'N的取值范围为1~50。', + 'type' => 'array', + 'items' => ['description' => '资源ID。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], 'required' => true, - 'maximum' => '2234313863', - 'minimum' => '0', - 'example' => '1698195600', + 'example' => 'example.com', + 'maxItems' => 51, ], ], [ - 'name' => 'EndTime', + 'name' => 'TagKey', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '结束时间,用UNIX时间戳表示,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '2234313863', - 'minimum' => '0', - 'example' => '1698201013', + 'description' => '标签键。N的取值范围为**1~20**。', + 'type' => 'array', + 'items' => ['description' => '标签键。', 'type' => 'string', 'required' => false, 'example' => 'testKey'], + 'required' => false, + 'example' => 'env', + 'maxItems' => 21, ], ], [ - 'name' => 'PageSize', + 'name' => 'ResourceType', 'in' => 'query', 'schema' => [ - 'description' => '单页显示记录的数量,取值范围:1~100。', - 'type' => 'integer', - 'format' => 'int64', + 'description' => '资源类型。枚举类型。', + 'type' => 'string', 'required' => true, - 'maximum' => '100', - 'minimum' => '10', - 'example' => '10', + 'enumValueTitles' => ['DOMAIN' => '域名资源', 'domain' => '域名资源', 'Domain' => '域名资源'], + 'example' => 'DOMAIN', + 'enum' => ['DOMAIN', 'domain', 'Domain'], ], ], [ - 'name' => 'PageNo', + 'name' => 'All', 'in' => 'query', - 'schema' => [ - 'description' => '页码。取值范围:大于等于1。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9999999999', - 'minimum' => '1', - 'example' => '20', - ], + 'schema' => ['description' => '删除所有标签。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'默认取值为**false**。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CC8CB656-A7BA-1811-9D6B-4CC187E988BD', - ], - 'Count' => [ - 'description' => '当前页返回的回调记录总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'HasMore' => [ - 'description' => '是否有下一页。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Logs' => [ - 'description' => '回调记录。', - 'type' => 'array', - 'items' => [ - 'description' => '回调记录。', - 'type' => 'object', - 'properties' => [ - 'AppId' => [ - 'description' => '订阅的应用ID。', - 'type' => 'string', - 'example' => '9qb1****', - ], - 'SubId' => [ - 'description' => '订阅事件ID。', - 'type' => 'string', - 'example' => 'ad53276431c****', - ], - 'MessageId' => [ - 'description' => '回调记录ID。', - 'type' => 'string', - 'example' => '875d5266cbabb1834cc84a105cf6****', - ], - 'Data' => [ - 'description' => '回调内容详情。', - 'type' => 'string', - 'example' => '{\\"MsgId\\":\\"875d5266cbabb1834cc84a105cf68454\\",\\"MsgTimestamp\\":1697545591,\\"SubscribeId\\":\\"09be0d2254cb5a89f4cbd86403ec5343\\",\\"AppId\\":\\"xxx\\",\\"ChannelId\\":\\"9099\\",\\"Contents\\":[{\\"Event\\":\\"UserEvent\\",\\"UserEvent\\":{\\"UserId\\":\\"linux_test\\",\\"EventTag\\":\\"Leave\\",\\"SessionId\\":\\"je7y2sBZJZQ0VBJZrh4LnBkxvGH2WyVs\\",\\"Timestamp\\":1697545591,\\"ChannelProfile\\":\\"interactive_live\\",\\"US\\":5068748604047364,\\"Reason\\":1,\\"Role\\":1,\\"TerminalType\\":6,\\"UserType\\":2}}]}', - ], - 'Cost' => [ - 'description' => '回调时长,单位:毫秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '22', - ], - 'Time' => [ - 'description' => '产生回调记录的时间。', - 'type' => 'string', - 'example' => '2023-10-17 20:26:31.988', - ], - 'Url' => [ - 'description' => '回调地址。', - 'type' => 'string', - 'example' => 'http://****.com/callback', - ], - 'Code' => [ - 'description' => '错误码,200为回调成功。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508'], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + 401 => [ + ['errorCode' => 'InvalidResourceType', 'errorMessage' => 'The resourceType is invalid.', 'description' => '指定的resourceType参数无效。'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'Duplicate.TagKey', 'errorMessage' => 'The tags should not contain duplicate keys.', 'description' => '标签中不应该包含重复键。'], + ['errorCode' => 'InvalidResourcesCount', 'errorMessage' => 'The count of resources is invalid, %s.', 'description' => '输入的资源数组,资源总数不能超过最大值,同时必须大于0个。'], ], - [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76508\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 97C68796-EB7F-4D41-9D5B-12B909D76508\\r\\n","errorExample":""}]', + 'title' => '删除Live资源标签', + 'description' => '单用户调用频率为100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '### 特殊错误码'."\n" + .'|错误代码 |描述 |Http 状态码 |语义 |'."\n" + .'|------------|--------|---------|------|'."\n" + .'|TagIsInvalid |The number of Tag exceeds 20. |400 |Tag不能超过20|'."\n" + .'|ResourceIdIsInvalid |The number of ResourceId exceeds 50. |400 |ResourceId不能超过50个|', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnTagLiveResources'], ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UnTagLiveResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CC8CB656-A7BA-1811-9D6B-4CC187E988BD\\",\\n \\"Count\\": 1,\\n \\"HasMore\\": false,\\n \\"Logs\\": [\\n {\\n \\"AppId\\": \\"9qb1****\\",\\n \\"SubId\\": \\"ad53276431c****\\",\\n \\"MessageId\\": \\"875d5266cbabb1834cc84a105cf6****\\",\\n \\"Data\\": \\"{\\\\\\\\\\\\\\"MsgId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"875d5266cbabb1834cc84a105cf68454\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"MsgTimestamp\\\\\\\\\\\\\\":1697545591,\\\\\\\\\\\\\\"SubscribeId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"09be0d2254cb5a89f4cbd86403ec5343\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"AppId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"xxx\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"ChannelId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"9099\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Contents\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"Event\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"UserEvent\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"UserEvent\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"UserId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"linux_test\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"EventTag\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Leave\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"SessionId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"je7y2sBZJZQ0VBJZrh4LnBkxvGH2WyVs\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Timestamp\\\\\\\\\\\\\\":1697545591,\\\\\\\\\\\\\\"ChannelProfile\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"interactive_live\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"US\\\\\\\\\\\\\\":5068748604047364,\\\\\\\\\\\\\\"Reason\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"Role\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"TerminalType\\\\\\\\\\\\\\":6,\\\\\\\\\\\\\\"UserType\\\\\\\\\\\\\\":2}}]}\\",\\n \\"Cost\\": 22,\\n \\"Time\\": \\"2023-10-17 20:26:31.988\\",\\n \\"Url\\": \\"http://****.com/callback\\",\\n \\"Code\\": 200\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n CC8CB656-A7BA-1811-9D6B-4CC187E988BD\\n 1\\n false\\n \\n 9qb1****\\n ad53276431c****\\n 875d5266cbabb1834cc84a105cf6****\\n {\\\\\\"MsgId\\\\\\":\\\\\\"875d5266cbabb1834cc84a105cf68454\\\\\\",\\\\\\"MsgTimestamp\\\\\\":1697545591,\\\\\\"SubscribeId\\\\\\":\\\\\\"09be0d2254cb5a89f4cbd86403ec5343\\\\\\",\\\\\\"AppId\\\\\\":\\\\\\"xxx\\\\\\",\\\\\\"ChannelId\\\\\\":\\\\\\"9099\\\\\\",\\\\\\"Contents\\\\\\":[{\\\\\\"Event\\\\\\":\\\\\\"UserEvent\\\\\\",\\\\\\"UserEvent\\\\\\":{\\\\\\"UserId\\\\\\":\\\\\\"linux_test\\\\\\",\\\\\\"EventTag\\\\\\":\\\\\\"Leave\\\\\\",\\\\\\"SessionId\\\\\\":\\\\\\"je7y2sBZJZQ0VBJZrh4LnBkxvGH2WyVs\\\\\\",\\\\\\"Timestamp\\\\\\":1697545591,\\\\\\"ChannelProfile\\\\\\":\\\\\\"interactive_live\\\\\\",\\\\\\"US\\\\\\":5068748604047364,\\\\\\"Reason\\\\\\":1,\\\\\\"Role\\\\\\":1,\\\\\\"TerminalType\\\\\\":6,\\\\\\"UserType\\\\\\":2}}]}\\n 22\\n \\n http://****.com/callback\\n 200\\n \\n","errorExample":""}]', - 'title' => '查询回调记录', - 'description' => '- 最大查询跨度:7天。'."\n" - .'- 最小查询粒度:1分钟。'."\n" - .'- 最大查询范围:最近7天的数据。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', ], - 'UpdateEventSub' => [ - 'summary' => '更新订阅房间消息回调。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'UnbanLiveMessageGroup' => [ + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], + 'abilityTreeCode' => '237380', + 'abilityTreeNodes' => ['FEATUREliveSL6Y07'], ], 'parameters' => [ [ 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '订阅的应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => '9qb1****', - ], - ], - [ - 'name' => 'SubscribeId', - 'in' => 'query', - 'schema' => [ - 'title' => '订阅ID', - 'description' => '订阅事件ID。您可通过[CreateEventSub](~~2848209~~)接口的返回参数查询订阅ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'ad53276431c****', - ], - ], - [ - 'name' => 'ChannelId', - 'in' => 'query', - 'schema' => [ - 'description' => '订阅的频道ID。订阅的频道ID。您可通过调用[ListEventSub](~~2848210~~)接口查询订阅的频道ID。'."\n" - ."\n" - .'>- 如果Users.N参数不为空,则此参数必填。'."\n" - .'> - ChannelId为*或者不填,表示为全频道订阅,每个AppId只允许1个全频道订阅。'."\n" - .'> - 每个AppId最多同时允许创建20个订阅事件。', - 'type' => 'string', - 'required' => false, - 'example' => '123333', - ], - ], - [ - 'name' => 'Users', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => '只监听指定用户的事件,必须同时指定ChannelId才有效。', - 'description' => '订阅哪些用户的消息。', - 'type' => 'array', - 'items' => [ - 'description' => '订阅哪些用户的消息,参数为空表示订阅该房间全部用户(包含主播和观众)。格式如下所示:'."\n" - ."\n" - .'```'."\n" - .'Users.1=****'."\n" - .'Users.2=****'."\n" - .'......'."\n" - .'```', - 'type' => 'string', - 'required' => false, - 'example' => 'user1', - ], - 'required' => false, - 'maxItems' => 30, - ], + 'schema' => ['description' => '应用ID。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'Events', + 'name' => 'GroupId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'title' => 'ChannelEvent, UserEvent', - 'description' => '订阅事件。', - 'type' => 'array', - 'items' => [ - 'description' => '订阅的事件,取值:'."\n" - ."\n" - .'- **ChannelEvent**:频道事件。'."\n" - .'- **UserEvent**:频道内用户事件。', - 'type' => 'string', - 'required' => true, - 'example' => 'ChannelEvent', - ], - 'required' => true, - 'maxItems' => 5, - ], + 'schema' => ['description' => '群组ID。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], [ - 'name' => 'CallbackUrl', + 'name' => 'DataCenter', 'in' => 'query', - 'schema' => [ - 'title' => '回调地址,因为安全需求,回调地址必须是域名,用标准端号,回调地址不允许包含端口号。示例: http(s)://xxxx.com/xxxx', - 'description' => '回调地址。回调内容请参见[CallBack](~~610983~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://****.com/callback', - ], + 'schema' => ['description' => '数据中心,需要与[CreateLiveMessageApp](~~2848162~~)中的数据中心一致。'."\n" + .'> 当前支持上海(取值为cn-shanghai)、新加坡(取值为ap-southeast-1)。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回参数。', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '84AF36BF-0B39-1F8A-A416-FAC7C484****'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'QuotaLimitError', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'ErrorInvalidCallBackUrl', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], ], 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08\\"\\n}","errorExample":""},{"type":"xml","example":"\\n AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08\\n","errorExample":""}]', - 'title' => '更新订阅房间消息回调', - 'description' => '- 调用本接口前,您必须已经调用[CreateEventSub](~~2848209~~)创建订阅房间消息回调。'."\n" - .'- 已有关联频道,依然使用原规则。频道关闭20分钟以上,再次开启才会适用新规则。'."\n" - .'- 如果只想更新某些字段,则其他字段也需要用原有内容进行填充。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '解除群组全员禁言', + 'summary' => '调用UnbanLiveMessageGroup新增禁言用户。', + 'description' => '- 调用本接口前,您必须已经调用[CreateLiveMessageGroup](~~2848163~~)创建互动消息群组。'."\n" + .'- 调用解除全员禁言接口后,若是被单独禁言的,则依然是禁言状态,无法解除禁言。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteEventSub' => [ - 'summary' => '删除订阅房间消息的回调。', - 'methods' => [ - 'post', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnbanLiveMessageGroup'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UnbanLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"84AF36BF-0B39-1F8A-A416-FAC7C484****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 84AF36BF-0B39-1F8A-A416-FAC7C484****\\n","errorExample":""}]', + ], + 'UpdateCasterResourceGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '233607', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => '9qb1****', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'SubscribeId', + 'name' => 'NewResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '订阅ID。您可通过[CreateEventSub](~~2848209~~)接口的返回参数查询订阅ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'ad53276431c****', - ], + 'schema' => ['description' => '待转入的新资源组ID。', 'type' => 'string', 'required' => true, 'example' => 'rg-aekz7***34cn5ty'], + ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'a41300c9-23d3-470e-b9bd-****663e0700'], ], ], 'responses' => [ @@ -65912,326 +49630,302 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '760bad53276431c499e30dc36f6b26be', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '0D776BD1-****-59D0-9A1B-272832D999F6'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InputInvalid', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParameter.PurchaseTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PurchaseTime无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.ExpireTime', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ExpireTime无效,请检查后重试。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidChargeType.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidChargeType.PostSupport', 'errorMessage' => '%s, please check and try again later.', 'description' => 'ChargeType仅支持后付费,请检查后重试。'], + ['errorCode' => 'InvalidCasterTemplate.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterTemplate无效,请检查后重试。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidParameter.ChargeType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ChargeType无效,请检查后重试。'], + ['errorCode' => 'InvalidPeriod.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '时间间隔无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidClientToken.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数ClientToken无效,请检查后重试。'], + ['errorCode' => 'IncorrectCasterStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台状态有误,请检查后重试。'], + ], + [ + ['errorCode' => 'CasterNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台数量超限,请检查后重试。'], ], 403 => [ - [ - 'errorCode' => 'NoAuth', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'PermissionDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '访问拒绝,请检查后重试。'], ], [ - [ - 'errorCode' => 'ResourceNotExist', - 'errorMessage' => '%s.', - ], - ], - 500 => [ - [ - 'errorCode' => 'ServerError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParameter.NormType', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数NormType无效,请检查后重试。'], + ['errorCode' => 'InvalidConfiguration.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"760bad53276431c499e30dc36f6b26be\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 760bad53276431c499e30dc36f6b26be\\n","errorExample":""}]', - 'title' => '删除订阅房间消息回调', - 'description' => '调用本接口前,您必须已经调用[CreateEventSub](~~2848209~~)创建订阅房间消息的回调。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '更新导播台所在资源组', + 'summary' => '调用UpdateCasterResourceGroup更新导播台所在资源组。', + 'description' => '## 使用说明'."\n" + .'调用此接口执行更新导播台所在资源组操作时,操作账号需要对原资源组和目标资源组都具备操作权限。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'CreateRtcMPUEventSub' => [ - 'summary' => '创建混流转推事件订阅。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCasterResourceGroup'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:UpdateCasterResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0D776BD1-****-59D0-9A1B-272832D999F6\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0D776BD1-****-59D0-9A1B-272832D999F6\\n","errorExample":""}]', + ], + 'UpdateCasterSceneAudio' => [ + 'summary' => '增加场景音频配置,将原场景音频添加到新场景。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '219222', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '订阅的应用ID。'."\n" - .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourAppId', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ChannelIds', + 'name' => 'AudioLayer', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '指定接收回调的混流任务的频道ID,可以同时填多个频道ID,多个频道ID之间采用英文逗号“,”隔开。'."\n" - .'> - 如果不填,则默认接收该AppId下所有混流转推任务的回调事件。'."\n" - .'> - 同时填多个频道ID时,不能填写重复的频道ID,最多同时填20个频道ID。'."\n" - .'> - 每个频道ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', + 'description' => '音频配置。', + 'type' => 'array', + 'items' => [ + 'description' => '音频配置。', + 'type' => 'object', + 'properties' => [ + 'Filter' => ['description' => '3A美音算法开关。该参数由以下字段组成:'."\n" + ."\n" + .'- **enableAgc**:(可选)3A算法的智能增益算法开关。**0**:不开启(默认值); **1**:开启。'."\n" + ."\n" + .'- **enableAns**:(可选)3A算法的智能降噪算法开关。**0**:不开启(默认值);**1**:开启。'."\n" + ."\n" + .'- **ansMode**:(可选)智能降噪算法的模式,该字段只有在**enableAns**取值为**1**时有效。**0**:语音降噪(默认值);**1**:音乐降噪。'."\n" + .'> 为保证更好的降噪效果,建议将ansMode取值为1:音乐降噪。'."\n" + ."\n" + .'- **enableBeautify**:(可选)美声处理开关。 **0**:不开启(默认值);**1**:开启。'."\n" + ."\n" + .'- **voiceBeautifyMode**:(可选)美声模式,该字段只有在**enableBeautify**取值为**1**时有效。**0**:磁性男声(默认值);**1**:清新女声。', 'type' => 'string', 'required' => false, 'example' => '{ "enableAgc":0, "enableAns":1 }'], + 'FixedDelayDuration' => ['description' => '该字段对视频进行固定延迟设置,可用于字幕同步。 '."\n" + .' '."\n" + .'单位:毫秒。取值范围为**0~5000**。默认值为**0**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + 'ValidChannel' => ['description' => '确定哪些声道可以作为音量输入。取值:'."\n" + ."\n" + .'- **leftChannel**:左声道。'."\n" + .'- **rightChannel**:右声道。'."\n" + .'- **all**(默认值):双声道。', 'type' => 'string', 'required' => false, 'example' => 'all'], + 'VolumeRate' => ['description' => '调节音频流的音量大小倍数。取值范围为**0~10.0**,默认值为**1.0** 。'."\n" + .' '."\n" + .'- **1.0**:保持原有音量。'."\n" + .'- 小于**1**:降低音量的倍数。'."\n" + .'- 大于**1**:放大音量的倍数。'."\n" + .' '."\n" + ."\n\n", 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '1'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'yourChannelIds', + 'maxItems' => 12, ], ], [ - 'name' => 'CallbackUrl', + 'name' => 'MixList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '回调地址。地址格式请参见以下回调内容规范。'."\n" - .'> 回调地址协议头为HTTP、HTTPS等,仅可包含以下字符:a-z 、A-Z、0-9、-、_、?、%、=、#、.、/ 和 +,不超过2083个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://****.com/callback', + 'description' => '位置关联列表,与audiolayers顺序保持一致。', + 'type' => 'array', + 'items' => ['description' => '资源位置LocationId关联列表。'."\n" + ."\n" + .'与AudioLayers顺序保持一致,若启用Channel时,引用Channel的LocationId,否则引用视频源的LocationId。', 'type' => 'string', 'required' => false, 'example' => 'RV01'], + 'required' => false, + 'example' => 'RV01', + 'maxItems' => 12, ], ], + [ + 'name' => 'CasterId', + 'in' => 'query', + 'schema' => ['description' => '导播台ID。'."\n" + .'- 如果您通过[CreateCaster](~~2848009~~)接口创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => 'LIVEPRODUCER_POST-cn-0pp1czt****'], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => ['description' => '场景ID。如果您通过[DescribeCasterScenes](~~2848039~~)接口查询导播台场景列表,请查看DescribeCasterScenes接口调用返回的参数ComponentId值。', 'type' => 'string', 'required' => true, 'example' => 'a2b8e671-2fe5-4642-a2ec-bf93880e1****'], + ], + [ + 'name' => 'FollowEnable', + 'in' => 'query', + 'schema' => ['description' => '是否启用音频跟随。 默认启用音频跟随,为空则保持最近一次配置不变。取值: '."\n" + ."\n" + .'- **0**:混音模式。'."\n" + .'- **1**:音频跟随视频模式。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], - 'SubId' => [ - 'description' => '订阅ID。', - 'type' => 'string', - 'example' => 'Sub-******9799B2C4500******', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidAppId', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'InvalidAudioLayersAndMixListSize.Mismatch', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AudioLayers的大小与MixList的大小不匹配,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态不支持,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.ConfigError', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene配置错误,请检查后重试。'], + ['errorCode' => 'InvalidMixList.ExceedNorm', 'errorMessage' => '%s, please check and try again later.', 'description' => 'MixList大小超过规格,请检查后重试。'], ], - 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Your account has not enabled the Live service', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s, please check and try again later.', - ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene不存在,请检查后重试。'], + ['errorCode' => 'ResourceInChannel.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], + ], + 412 => [ + ['errorCode' => 'ResourceInChannel.PreConditionFailed', 'errorMessage' => '%s, please try again later.', 'description' => '资源预校验失败,请稍后重试。'], + ['errorCode' => 'ResourceInChannel.Invalid', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源与通道素材地址不一致,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'InternalError', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"SubId\\": \\"Sub-******9799B2C4500******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n Sub-******9799B2C4500******\\n","errorExample":""}]', - 'title' => '创建混流转推事件订阅', - 'description' => '本接口用于创建混流转推事件订阅。在创建订阅时,您可以配置回调地址、订阅应用与频道信息等参数。'."\n" + 'title' => '更新场景音频配置', + 'description' => '先通过[CreateCaster](~~2848009~~)接口创建导播台,再调用本接口更新场景音频配置。本接口目前支持的音频模式为混音模式和音频跟随视频模式。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '## 回调内容示例'."\n" - .'回调内容以**HTTP/HTTPS POST**请求发送到您的业务服务器,字符编码格式为**UTF-8**格式,请求体为**JSON**结构体,当您的业务服务器响应**HTTP状态码为200**时,认定为回调成功。回调内容示例如下:'."\n" - ."\n" - .'> 建议在判断混流转推是否正常时,不仅需要根据回调通知判断,也要同时配合接入的对应CDN厂商提供的在线流状态判断是否正常。'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "EventType": 1,'."\n" - .' "MsgId": "42bba8b5-94ab-468c-9dae-9b501dd****",'."\n" - .' "AppId": "rtcdev",'."\n" - .' "SubId": "Sub-9799B2C45009799B2*****",'."\n" - .' "TaskId": "mpucallbacktest",'."\n" - .' "CallbackTs": 1712656430476,'."\n" - .' "Payload": {'."\n" - .' "DstUrl": "rtmp://domain/app/stream?auth",'."\n" - .' "EventTs": 1712656430384,'."\n" - .' "EventCode": 1,'."\n" - .' "ErrorCode": 0,'."\n" - .' "ErrorMessage": ""'."\n" - .' }'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'### 回调信息'."\n" - .'回调信息的header包括如下字段:'."\n" - ."\n" - .'| 属性 | 描述 |'."\n" - .'| ------ | ----- |'."\n" - .'| Content-Type | 数据类型,固定值:application/json |'."\n" - .'| Ali-Rtc-Timestamp | 时间戳 |'."\n" - .'| Ali-Rtc-Signature | 签名值 |'."\n" - ."\n" - .'回调信息的回调内容包括如下字段:'."\n" - .'| 属性 | 类型| 描述 | 示例值 |'."\n" - .'| ------ | ----- | ----- | -----|'."\n" - .'| EventType | Integer| 回调事件类型,对于混流转推回调,类型为固定值:1| 1 |'."\n" - .'| MsgId| String| 回调ID,唯一表示本次回调 | \\*\\*\\*\\*\\*973C-4529-A334\\*\\*\\*\\*\\*|'."\n" - .'| AppId| String| 订阅的应用ID | yourAppId |'."\n" - .'| SubId| String| 订阅ID | Sub-\\*\\*\\*\\*\\*\\*9799B2C4500\\*\\*\\*\\*\\*\\* |'."\n" - .'| TaskId| String| 旁路任务ID | yourTaskId |'."\n" - .'| CallbackTs| Integer| 发起回调请求的毫秒时间戳 | 1712656430476 |'."\n" - .'| Payload| JSON Object| 回调事件信息 | - |'."\n" - ."\n" - .'* 回调事件信息(Payload)'."\n" - ."\n" - .'| 属性 | 类型| 描述 | 示例值 |'."\n" - .'| ------ | ----- | ----- | -----|'."\n" - .'| DstUrl | String | 转推目的URL地址 | rtmp://domain/app/stream?auth |'."\n" - .'| EventTs | Integer | 回调事件发生的毫秒时间戳 | 1712656430384 |'."\n" - .'| EventCode | Integer | 回调事件Code | 1 |'."\n" - .'| ErrorCode | Integer | 回调事件的错误码 | 10001 |'."\n" - .' | ErrorMessage | String| 回调事件的错误原因 | rtmp server init failed |'."\n" - ."\n" - .'## 回调事件Code'."\n" - .'| 字段名 | 值| 含义 | 回调频率 |'."\n" - .'| ------ | ----- | ----- | -----|'."\n" - .'| MPU_STATE_PREPARING | 0 | 旁路转推任务创建成功,任务被触发 | 仅回调1次 |'."\n" - .'| MPU_STATE_ESTABLISHING | 1 | 旁路转推任务建联中 | 每5秒回调1次 |'."\n" - .'| MPU_STATE_RUNNING | 2 | 旁路转推任务运行中 | 仅回调1次 |'."\n" - .'| MPU_STATE_RECOVERING | 3 | 旁路转推异常中断,正在恢复中 | 每5秒回调1次 |'."\n" - .'| MPU_STATE_TERMINATED | 4 | 旁路转推任务结束,包括正常停止、启动失败、异常退出等,通过ErrorCode与ErrorMessage区分 | 仅回调1次 |'."\n" - ."\n" - .'回调事件的状态转移示例如下:'."\n" - .'![](https://img.alicdn.com/imgextra/i2/O1CN01XYVSiA1oERjKdEOgt_!!6000000005193-0-tps-1277-328.jpg)'."\n" - .'**注意:** '."\n" - .'1. 回调信息有可能会乱序到达您的业务服务器,您可以根据 Payload 中的 EventTs 做事件排序,如果您只关心回调事件的最新状态,可以忽略后续到达的过期事件。'."\n" - .'2. 对于通过API[创建混流转推任务(新)](~~2848199~~)创建的混流转推任务,当房间内所有用户均离开房间后一段时间,任务会自动停止,停止时会发送一个MPU_STATE_TERMINATED的回调。'."\n" - .'3. 回调配置只影响增量任务,不影响存量任务。即:'."\n" - ."\n" - .' a. 开启回调配置前已启动的任务,不发送回调;'."\n" - ."\n" - .' b. 开启回调配置后启动的任务,会发送回调;'."\n" - ."\n" - .' c. 删除回调配置前已启动的任务,会继续发送回调直到任务结束;'."\n" - ."\n" - .' d. 删除回调配置后启动的任务,不发送回调。'."\n" - ."\n" - .'### 回调错误码'."\n" - .'当旁路转推任务结束时,通过ErrorCode与ErrorMessage标识结束的原因。'."\n" - ."\n" - .'| 错误码 | 错误信息 | 含义 |'."\n" - .'| ------ | ----- | ----- |'."\n" - .'| 0 | | 任务正常停止 |'."\n" - .'| 10001 | rtmp server init failed | 建联失败,任务异常结束 |'."\n" - .'| 10002 | rtmp server internal error| 服务内部错误,任务异常结束 |'."\n" - .'| 10003 | task idle timeout | 任务空闲超时后结束 |'."\n" - ."\n" - .'## 回调鉴权说明'."\n" - .'事件回调鉴权功能默认开启,鉴权逻辑如下所示:'."\n" - .'- 阿里云视频直播服务发起回调请求时,在HTTP(S)请求头中包含Ali-Rtc-Timestamp和Ali-Rtc-Signature字段,供回调消息接收服务端进行签名认证。Ali-Rtc-Signature值计算方式为:Ali-Rtc-Signature=MD5SUM(MD5CONTENT)。其中,MD5CONTENT=回调域名|Ali-Rtc-Timestamp取值|鉴权Key;回调域名指配置回调URL的域名,鉴权Key指用户创建AppId时生成的AppKey。'."\n" - .'- 回调消息接收服务端接收回调消息时,将回调域名、Ali-Rtc-Timestamp取值、鉴权Key进行拼接后计算MD5值,得到加密字符串,再将计算出的加密字符串与音视频通信服务发起的HTTP(S)请求头中的Ali-Rtc-Signature字段值进行对比,如果不一致,则请求非法。'."\n" - .'## 回调异常重试'."\n" - .'阿里云发起回调请求时,仅当您的业务服务器响应HTTP状态码为200时认定为回调成功。若回调失败,阿里云会重试7次,分别间隔1秒、2秒、5秒、10秒、1分钟、2分钟、5分钟。每次重试请求均会产生对应的回调记录。', - ], - 'UpdateRtcMPUEventSub' => [ - 'summary' => '更新混流转推事件订阅。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '请求参数中的N表示第几个的意思。例如:'."\n" + .'- AudioLayer.N.VolumeRate表示传入第几个元素的音量倍数。'."\n" + .'- AudioLayer.1.VolumeRate表示传入第1个元素的音量倍数。'."\n" + .'- AudioLayer.2.VolumeRate表示传入第2个元素的音量倍数。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-03-06T07:31:05.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCasterSceneAudio'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateCasterSceneAudio', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n}"}]', + ], + 'UpdateCasterSceneConfig' => [ + 'summary' => '增量设置场景配置,不清空原配置,布局信息在原场景上增量修改,效率较全量设置高。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '219223', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '订阅的应用ID。'."\n" - .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourAppId', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'ChannelIds', + 'name' => 'ComponentId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '指定接收回调的混流任务的频道ID,可以同时填多个频道ID,多个频道ID之间采用英文逗号“,”隔开。'."\n" - .'> - 如果不填,则默认接收该AppId下的所有混流转推的回调事件。'."\n" - .'- 同时填多个频道ID时,不能填写重复的频道ID,最多同时填20个频道ID。'."\n" - .'- 每个频道ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', + 'description' => '组件ID列表,数组内按照由下至上的顺序排列组件。'."\n" + ."\n" + .'>N表示第几个的意思。例如:
ComponentId.1表示第1个组件ID,
ComponentId.2表示第2个组件ID。', + 'type' => 'array', + 'items' => ['description' => '组件ID列表,数组内按照由下至上的顺序排列组件。'."\n" + ."\n" + .'>N表示第几个的意思。例如:
ComponentId.1表示第1个组件ID,
ComponentId.2表示第2个组件ID。', 'type' => 'string', 'required' => false, 'example' => '["98778372-c30f-4442-85ba-2e3e4e3d****"]'], 'required' => false, - 'example' => 'yourChannelIds', + 'example' => '["98778372-c30f-4442-85ba-2e3e4e3d****"]', + 'maxItems' => 10, ], ], [ - 'name' => 'CallbackUrl', + 'name' => 'CasterId', 'in' => 'query', - 'schema' => [ - 'description' => '回调地址。'."\n" - .'> 回调地址协议头为HTTP、HTTPS等,仅可包含以下字符:a-z 、A-Z、0-9、-、_、?、%、=、#、.、/ 和 +,不超过2083个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://****.com/callback', - ], + 'schema' => ['description' => '导播台ID。'."\n" + ."\n" + .'- 如果您通过[CreateCaster接口](~~2848009~~)创建导播台,请查看CreateCaster接口调用返回的参数CasterId值。'."\n" + ."\n" + .'- 如果您通过直播控制台创建导播台,请通过**直播控制台** > **导播台** > **云导播台**页面查看。'."\n" + ."\n" + .'> 直播控制台云导播台页面导播台列表中的导播台名称即导播台ID。', 'type' => 'string', 'required' => true, 'example' => '80787064-1c94-4dc1-85ce-9409960a****'], + ], + [ + 'name' => 'SceneId', + 'in' => 'query', + 'schema' => ['description' => '场景ID。', 'type' => 'string', 'required' => true, 'example' => '242b4e2c-c30f-4442-85ba-2e3e4e3d****'], + ], + [ + 'name' => 'LayoutId', + 'in' => 'query', + 'schema' => ['description' => '布局ID。如果您通过[DescribeCasterLayouts接口](~~2848028~~)查询导播台布局列表,请查看DescribeCasterLayouts接口调用返回的参数LayoutId值。', 'type' => 'string', 'required' => true, 'example' => 'eeab74fb-379d-4599-a93d-86d16a05****'], ], ], 'responses' => [ @@ -66239,179 +49933,361 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A52FA7'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidAppId', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidCasterId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数CasterId无效,请检查后重试。'], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'IncorrectSceneStatus.ConfigError', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene配置错误,请检查后重试。'], + ['errorCode' => 'ComponentNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => '组件数量超限,请检查后重试。'], + ['errorCode' => 'SceneNumberExceed', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene数量超限,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus.Waiting', 'errorMessage' => '%s, please try again later.', 'description' => 'Scene等待中,请稍后重试。'], + ['errorCode' => 'IncorrectSceneStatus.Idle', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态为空闲,请检查后重试。'], + ['errorCode' => 'InvalidCaptionResource', 'errorMessage' => '%s, please check and try again later.', 'description' => '语音字幕组件引用的资源不存在或不为直播源,请检查后重试。'], + ['errorCode' => 'IncorrectSceneStatus', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene状态不支持,请检查后重试。'], ], - 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Your account has not enabled the Live service', - ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidCaster.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '导播台不存在,请检查后重试。'], + ['errorCode' => 'InvalidScene.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'Scene不存在,请检查后重试。'], + ['errorCode' => 'InvalidLayout.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => 'LayoutId不存在,请检查后重试。'], + ['errorCode' => 'InvalidComponent.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '待操作的组件不存在,请检查后重试。'], + ['errorCode' => 'InvalidVideo.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '视频资源不存在,请检查后重试。'], + ['errorCode' => 'ResourceInChannel.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源不存在,请检查后重试。'], + ], + 412 => [ + ['errorCode' => 'ResourceInChannel.PreConditionFailed', 'errorMessage' => '%s, please try again later.', 'description' => '资源预校验失败,请稍后重试。'], + ['errorCode' => 'ResourceInChannel.Invalid', 'errorMessage' => '%s, please check and try again later.', 'description' => '资源与通道素材地址不一致,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'InternalError', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', - 'title' => '更新混流转推事件订阅', - 'description' => '- 本接口用于更新混流转推事件订阅。您可以更新回调地址、订阅频道信息等参数。'."\n" - .'- 调用本接口前,您必须已经调用CreateRtcMPUEventSub创建混流转推事件订阅。'."\n" + 'title' => '更新导播场景配置', + 'description' => '调用本接口增量设置场景配置,不清空原配置,布局信息在原场景上增量修改,效率较全量设置高。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteRtcMPUEventSub' => [ - 'summary' => '删除混流转推事件订阅。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCasterSceneConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateCasterSceneConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\tCF60DB6A-7FD6-426E-9288-122CC1A52FA7\\n\\t\\n","errorExample":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A52FA7\\"\\n}"}]', + ], + 'UpdateCustomLiveStreamTranscode' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '219225', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], + 'abilityTreeCode' => '206837', + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '订阅的应用ID。'."\n" - .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourAppId', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => ['description' => '主播流域名,不可修改。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => ['description' => '播流所属应用名称,不可修改。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => ['description' => '转码模板自定义名称,不可修改。', 'type' => 'string', 'required' => true, 'example' => 'LiveCusTranscode****'], + ], + [ + 'name' => 'TemplateType', + 'in' => 'query', + 'schema' => ['description' => '自定义转码模版类型,不可修改。', 'type' => 'string', 'required' => true, 'example' => 'h264'], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => ['description' => '转码视频高度。单位:像素。取值:'."\n" + ."\n" + .'需要同时满足如下三个条件:'."\n" + .'- Height ≥ 100:视频的高需要不小于100像素。'."\n" + .'- max(Height,Width)≤ 2560:视频的宽、高中较大的一个最大不能大于2560。'."\n" + .'- min(Height,Width)≤ 1440:视频的宽、高中较小的一个最大不能大于1440。'."\n" + .'> 265窄带高清模板不得超过1280×720。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '720'], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => ['description' => '转码视频宽度。单位:像素。取值:'."\n" + ."\n" + .'需要同时满足如下三个条件:'."\n" + .'- Width ≥ 100:视频的宽需要不小于100像素。'."\n" + .'- max(Height,Width)≤ 2560:视频的宽、高中较大的一个最大不能大于2560。'."\n" + .'- min(Height,Width)≤ 1440:视频的宽、高中较小的一个最大不能大于1440。'."\n" + ."\n" + .'> 265窄带高清模板不得超过1280×720。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '576'], + ], + [ + 'name' => 'FPS', + 'in' => 'query', + 'schema' => ['description' => '转码视频帧率。单位:FPS,取值:1~60。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], + ], + [ + 'name' => 'VideoBitrate', + 'in' => 'query', + 'schema' => ['description' => '转码视频比特率。单位:kbps,取值:1~6000。'."\n" + ."\n" + .'> 转码视频会尽量接近您所设定的比特率,但转码视频的实际比特率不能保证和您所设定的完全一致,尤其是当您设定的比特率过大或过小时。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '720'], + ], + [ + 'name' => 'AudioBitrate', + 'in' => 'query', + 'schema' => ['description' => '转码音频比特率。单位:kbps,取值:1~1000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '512'], + ], + [ + 'name' => 'Gop', + 'in' => 'query', + 'schema' => ['description' => '视频GOP(Group of Picture),支持以帧或秒为单位,以帧为单位时,取值为{数字};以秒为单位时,取值为{数字}s。'."\n" + .'- 单位为帧时,取值:1~3000。'."\n" + .'- 单位为秒时,取值:1~20s。', 'type' => 'string', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'Profile', + 'in' => 'query', + 'schema' => ['description' => '编码级别。视频支持的一组特定的编码功能,一般值越大得到的画面质量越好,同时编解码消耗的资源也越高。取值:'."\n" + .'- 1:baseline(适合移动设备)。'."\n" + .'- 2:main(适合标准分辨率设备)。'."\n" + .'- 3:high(适合高分辨率设备)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + ], + [ + 'name' => 'AudioProfile', + 'in' => 'query', + 'schema' => ['description' => '音频编码。取值:'."\n" + .'- aac_low'."\n" + .'- aac_he'."\n" + .'- aac_he_v2'."\n" + .'- aac_ld', 'type' => 'string', 'required' => false, 'example' => 'aac_low'], + ], + [ + 'name' => 'AudioCodec', + 'in' => 'query', + 'schema' => ['description' => '音频编码格式。取值:'."\n" + .'- aac'."\n" + .'- mp3', 'type' => 'string', 'required' => false, 'example' => 'aac'], + ], + [ + 'name' => 'AudioRate', + 'in' => 'query', + 'schema' => ['description' => '音频采样率。取值:22050,32000,44100,48000,96000。单位:Hz。'."\n" + ."\n" + .'> 如果**AudioProfile**取值为**aac_ld**,则采样率不能超过44100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '96000'], + ], + [ + 'name' => 'AudioChannelNum', + 'in' => 'query', + 'schema' => ['description' => '音频声道数。取值'."\n" + .'- 1:单声道。'."\n" + .'- 2:双声道。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + ], + [ + 'name' => 'Lazy', + 'in' => 'query', + 'schema' => ['description' => '是否开启触发转码。取值:'."\n" + .'- **yes**:开启触发转码。'."\n" + .'- **no**:不开启触发转码。', 'type' => 'string', 'required' => false, 'example' => 'yes'], + ], + [ + 'name' => 'EncryptParameters', + 'in' => 'query', + 'schema' => ['description' => '加密配置。JSON格式,各字段说明如下:'."\n" + .'- EncryptType:加密类型。固定取值aliyun。'."\n" + .'- KmsKeyID:用户KMS主密钥ID。'."\n" + .'- KmsKeyExpireInterval:换Key周期。取值范围:60~3600,单位:秒。'."\n" + ."\n" + .'> 当使用DRM加密时,KmsKeyID不可修改。', 'type' => 'string', 'required' => false, 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}'], + ], + [ + 'name' => 'ResWithSource', + 'in' => 'query', + 'schema' => ['description' => '分辨率随源配置,若设置了该字段,分辨率以该字段为主。包含的字段如下:'."\n" + .'- **Type string** (必须添加):只可以传 short (短边自适应)、long(长边自适应) 、screen(横竖屏自适应) 。'."\n" + .'- **Value string**(必须添加): '."\n" + .' - 短边自适应取值可选:360、480、540、720、1080。'."\n" + .' - 长边自适应取值可选:640、848、960、1280、1920。'."\n" + .' - 横竖屏自适应取值可选:640\\*360、848\\*480、960\\*540、1280\\*720、1920\\*1080。', 'type' => 'string', 'required' => false, 'example' => '{"Type":"short","Value":"1080"}'], + ], + [ + 'name' => 'FpsWithSource', + 'in' => 'query', + 'schema' => ['description' => '帧率随源配置,若设置了该字段,帧率以该字段为主。包含的字段如下:'."\n" + .'- **UpLimit int**(必须添加):帧率上限,输入范围1-60的整数,且大于帧率下限。'."\n" + .'- **LowerLimit int**(必须添加):帧率下限,输入范围1-60的整数,且小于帧率上限。', 'type' => 'string', 'required' => false, 'example' => '{"UpLimit":60,"LowerLimit":1}'], + ], + [ + 'name' => 'BitrateWithSource', + 'in' => 'query', + 'schema' => ['description' => '码率随源配置,若设置了该字段,码率以该字段为主。包含的字段如下:'."\n" + .'- **UpLimit int**(必须添加):码率上限,输入范围128-10000的整数,且大于码率下限。'."\n" + .'- **LowerLimit int**(必须添加):码率下限,输入范围128-10000的整数,且小于码率上限。'."\n" + .'- **Factor float** (必须添加):按源码率输出倍率,输入范围0.1-1,精确至小数点后一位,“1”为按源流输出。', 'type' => 'string', 'required' => false, 'example' => '{"UpLimit":2500,"LowerLimit":800,"Factor":1}'], + ], + [ + 'name' => 'ExtWithSource', + 'in' => 'query', + 'schema' => ['description' => '其他随源配置,包含的字段如下:'."\n" + .'- **KeyFrameOpen**: yes或no。'."\n" + .'- **Copyts string** :yes或no。'."\n" + .'- **SeiMode** :取值有0(不透传)、 1( 透传但不是所有)、 2( 透传并且所有)。', 'type' => 'string', 'required' => false, 'example' => '{"KeyFrameOpen":"yes","Copyts":"yes","SeiMode":1}'], + ], + [ + 'name' => 'DeInterlaced', + 'in' => 'query', + 'schema' => ['description' => '转码过程中是否自动检测并去除隔行处理(将隔行扫描内容转换为逐行扫描):'."\n" + ."\n" + .'- true:开启去隔行处理。'."\n" + ."\n" + .'- false:保持源格式,不做处理(默认)。', 'type' => 'boolean', 'required' => false], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidAppId', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'TemplateLimit', 'errorMessage' => '%s Please check and try again later.', 'description' => '模板数量达到上限。'], ], - 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Your account has not enabled the Live service', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s, please check and try again later.', - ], + ], + 'title' => '更新自定义转码配置', + 'summary' => '更新自定义转码配置信息。', + 'description' => '本接口目前支持以下自定义转码模版类型,取值:'."\n" + .'- h264:自定义H264标准模版。'."\n" + .'- h264-nbhd:自定义H264窄带高清™模版。'."\n" + .'- h265:自定义H265标准模版。 '."\n" + .'- h265-nbhd:自定义H265窄带高清模版。'."\n" + .'- audio:纯音频模板。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为6000次/分钟。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCustomLiveStreamTranscode'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'InternalError', + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateCustomLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', - 'title' => '删除混流转推事件订阅', - 'description' => '- 本接口用于删除混流转推事件订阅。'."\n" - .'- 调用本接口前,您必须已经调用CreateRtcMPUEventSub创建混流转推事件订阅。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', ], - 'DescribeRtcMPUEventSub' => [ - 'summary' => '查询混流转推事件订阅。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateEdgeTranscodeJob' => [ + 'summary' => '更新边缘转码任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '219226', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => ['description' => '机房ID。', 'type' => 'string', 'required' => true, 'example' => '******3b-4d18-395c-8106-ff21a6******'], + ], + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => ['description' => '边缘转码任务ID。', 'type' => 'string', 'required' => true, 'example' => '****20b48fb04483915d4f2cd8ac****'], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => '任务名称。', 'type' => 'string', 'required' => false, 'example' => 'task1'], ], - ], - 'parameters' => [ [ - 'name' => 'AppId', + 'name' => 'TemplateId', 'in' => 'query', - 'schema' => [ - 'description' => '订阅的应用ID。'."\n" - .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourAppId', - ], + 'schema' => ['description' => '模板ID。', 'type' => 'string', 'required' => false, 'example' => '****96e8864746a0b6f3****'], + ], + [ + 'name' => 'StreamInput', + 'in' => 'query', + 'schema' => ['description' => '输入流地址。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://mydomain/app/stream1'], + ], + [ + 'name' => 'StreamOutput', + 'in' => 'query', + 'schema' => ['description' => '输出流地址。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://testdomain/app/stream2'], ], ], 'responses' => [ @@ -66419,489 +50295,331 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], - 'SubInfo' => [ - 'description' => '事件回调信息', - 'type' => 'object', - 'properties' => [ - 'SubId' => [ - 'description' => '事件回调ID', - 'type' => 'string', - 'example' => 'Sub-******9799B2C4500******', - ], - 'AppId' => [ - 'description' => '订阅的应用ID', - 'type' => 'string', - 'example' => 'yourAppId', - ], - 'ChannelIds' => [ - 'description' => '指定接收回调的混流任务的频道ID,用英文逗号“,”隔开。如果为空,表示所有频道都接收回调', - 'type' => 'string', - 'example' => 'yourCh1,yourCh2', - ], - 'CreateTime' => [ - 'description' => '事件回调的创建时间,格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)', - 'type' => 'string', - 'example' => '2024-04-09 18:00:00Z', - ], - 'CallbackUrl' => [ - 'description' => '回调地址', - 'type' => 'string', - 'example' => 'http://testcallback***.com/callback', - ], - ], - ], + 'JobId' => ['description' => '边缘转码任务ID。', 'type' => 'string', 'example' => '****20b48fb04483915d4f2cd8ac****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidAppId', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Your account has not enabled the Live service', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'OperationDenied', 'errorMessage' => '%s, please check and try again later.', 'description' => '操作拒绝,请检查后重试。'], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => '无权限,请检查后重试。'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'InternalError', - ], + [ + ['errorCode' => 'TemplateNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '模板不存在,请检查后重试。'], + ['errorCode' => 'JobNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '任务不存在,请检查后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"SubInfo\\": {\\n \\"SubId\\": \\"Sub-******9799B2C4500******\\",\\n \\"AppId\\": \\"yourAppId\\",\\n \\"ChannelIds\\": \\"yourCh1,yourCh2\\",\\n \\"CreateTime\\": \\"2024-04-09 18:00:00Z\\",\\n \\"CallbackUrl\\": \\"http://testcallback***.com/callback\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n \\n Sub-******9799B2C4500******\\n yourAppId\\n yourCh1,yourCh2\\n 2024-04-09 18:00:00Z\\n http://testcallback***.com/callback\\n \\n","errorExample":""}]', - 'title' => '查询混流转推事件订阅', - 'description' => '- 本接口用于查询混流转推事件订阅。'."\n" - .'- 调用本接口前,您必须已经调用CreateRtcMPUEventSub创建混流转推事件订阅。'."\n" + 'title' => '更新边缘转码任务', + 'description' => '- 本接口用于更新边缘转码任务。'."\n" + ."\n" + .'- 用户需要具有访问边缘转码服务的权限,且转码任务处于未启动状态,才能正常调用本接口。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'ListRtcMPUEventSubRecord' => [ - 'summary' => '查询混流转推事件订阅记录。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为6000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEdgeTranscodeJob'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"****20b48fb04483915d4f2cd8ac****\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ****20b48fb04483915d4f2cd8ac****\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + ], + 'UpdateEventSub' => [ + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '225589', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '订阅的应用ID。'."\n" - .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'yourAppId', - ], + 'schema' => ['description' => '订阅的应用ID。', 'type' => 'string', 'required' => true, 'example' => '9qb1****'], ], [ - 'name' => 'SubId', + 'name' => 'SubscribeId', 'in' => 'query', - 'schema' => [ - 'description' => '订阅的回调ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourSubId', - ], + 'schema' => ['title' => '订阅ID', 'description' => '订阅事件ID。您可通过[CreateEventSub](~~2848209~~)接口的返回参数查询订阅ID。', 'type' => 'string', 'required' => true, 'example' => 'ad53276431c****'], ], [ - 'name' => 'StartTime', + 'name' => 'ChannelId', 'in' => 'query', - 'schema' => [ - 'description' => '查询记录的开始时间。'."\n" - .'格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)', - 'type' => 'string', - 'required' => true, - 'example' => '1970-01-01T00:00:00Z', - ], + 'schema' => ['description' => '订阅的频道ID。订阅的频道ID。您可通过调用[ListEventSub](~~2848210~~)接口查询订阅的频道ID。'."\n" + ."\n" + .'>- 如果Users.N参数不为空,则此参数必填。'."\n" + .'> - ChannelId为*或者不填,表示为全频道订阅,每个AppId只允许1个全频道订阅。'."\n" + .'> - 每个AppId最多同时允许创建20个订阅事件。', 'type' => 'string', 'required' => false, 'example' => '123333'], ], [ - 'name' => 'EndTime', + 'name' => 'Users', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '查询记录的结束时间。'."\n" - .'格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)', - 'type' => 'string', - 'required' => true, - 'example' => '1970-01-01T00:00:00Z', + 'title' => '只监听指定用户的事件,必须同时指定ChannelId才有效。', + 'description' => '订阅哪些用户的消息。', + 'type' => 'array', + 'items' => ['description' => '订阅哪些用户的消息,参数为空表示订阅该房间全部用户(包含主播和观众)。格式如下所示:'."\n" + ."\n" + .'```'."\n" + .'Users.1=****'."\n" + .'Users.2=****'."\n" + .'......'."\n" + .'```', 'type' => 'string', 'required' => false, 'example' => 'user1'], + 'required' => false, + 'maxItems' => 30, ], ], [ - 'name' => 'PageSize', + 'name' => 'Events', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '单页显示记录的数量,取值范围:1~100。', - 'type' => 'integer', - 'format' => 'int32', + 'title' => 'ChannelEvent, UserEvent', + 'description' => '订阅事件。', + 'type' => 'array', + 'items' => ['description' => '订阅的事件,取值:'."\n" + ."\n" + .'- **ChannelEvent**:频道事件。'."\n" + .'- **UserEvent**:频道内用户事件。', 'type' => 'string', 'required' => true, 'example' => 'ChannelEvent'], 'required' => true, - 'example' => '10', + 'maxItems' => 5, ], ], [ - 'name' => 'PageNo', + 'name' => 'CallbackUrl', 'in' => 'query', - 'schema' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '20', - ], + 'schema' => ['title' => '回调地址,因为安全需求,回调地址必须是域名,用标准端号,回调地址不允许包含端口号。示例: http(s)://xxxx.com/xxxx', 'description' => '回调地址。回调内容请参见[CallBack](~~610983~~)。', 'type' => 'string', 'required' => true, 'example' => 'http://****.com/callback'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], - 'Count' => [ - 'description' => '当前页返回的回调记录总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'HasMore' => [ - 'description' => '是否有下一页。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Logs' => [ - 'description' => '回调记录。', - 'type' => 'array', - 'items' => [ - 'description' => '回调记录。', - 'type' => 'object', - 'properties' => [ - 'AppId' => [ - 'description' => '订阅的应用ID。', - 'type' => 'string', - 'example' => 'yourAppId', - ], - 'SubId' => [ - 'description' => '事件回调ID。', - 'type' => 'string', - 'example' => 'Sub-******9799B2C4500******', - ], - 'MsgId' => [ - 'description' => '回调记录ID。', - 'type' => 'string', - 'example' => '42bba8b5-********-9b501dd6cb6e', - ], - 'Data' => [ - 'description' => '回调内容,详见[创建混流转推事件回调](~~2804583~~)。', - 'type' => 'string', - 'example' => '{\\"EventType\\":1,\\"MsgId\\":\\"42bba8b5-94ab-468c-9dae-9b501dd6c***\\",\\"AppId\\":\\"rtcdev\\",\\"SubId\\":\\"Sub-9799B2C45009799B2C4***\\",\\"TaskId\\":\\"mpucallbacktest\\",\\"CallbackTs\\":1712656430***,\\"Payload\\":{\\"DstUrl\\":\\"rtmp://domain/app/stream?auth\\",\\"EventTs\\":1712656430***,\\"EventCode\\":1,\\"ErrorCode\\":0,\\"ErrorMessage\\":\\"\\"}}', - ], - 'Time' => [ - 'description' => '回调调用时间。'."\n" - .'格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)', - 'type' => 'string', - 'example' => '1970-01-01T00:00:00Z', - ], - 'Cost' => [ - 'description' => '回调时长,单位:毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '22', - ], - 'CallbackUrl' => [ - 'description' => '回调地址。', - 'type' => 'string', - 'example' => 'http://testcallback***.com/callback', - ], - 'HTTPCode' => [ - 'description' => '错误码,200为回调成功。', - 'type' => 'string', - 'example' => '200', - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidAppId', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParam', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InputInvalid', 'errorMessage' => '%s.', 'description' => '输入参数不合法'], + ['errorCode' => 'QuotaLimitError', 'errorMessage' => '%s.', 'description' => '每个AppId,最多同时允许创建20个订阅,并且只允许1个全频道订阅'], + ['errorCode' => 'ErrorInvalidCallBackUrl', 'errorMessage' => '%s.', 'description' => 'CallBackURL无效,请检查后重新尝试。'], ], 403 => [ - [ - 'errorCode' => 'OperationDenied', - 'errorMessage' => 'Your account has not enabled the Live service', - ], - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'NoAuth', 'errorMessage' => '%s.', 'description' => '没有权限'], + ], + [ + ['errorCode' => 'ResourceNotExist', 'errorMessage' => '%s.', 'description' => '请求资源不存在,请检查后重新尝试'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'InternalError', - ], + ['errorCode' => 'ServerError', 'errorMessage' => '%s.', 'description' => '未知错误,请稍后重试或提交工单咨询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"Count\\": 1,\\n \\"HasMore\\": false,\\n \\"Logs\\": [\\n {\\n \\"AppId\\": \\"yourAppId\\",\\n \\"SubId\\": \\"Sub-******9799B2C4500******\\",\\n \\"MsgId\\": \\"42bba8b5-********-9b501dd6cb6e\\",\\n \\"Data\\": \\"{\\\\\\\\\\\\\\"EventType\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"MsgId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"42bba8b5-94ab-468c-9dae-9b501dd6c***\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"AppId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"rtcdev\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"SubId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Sub-9799B2C45009799B2C4***\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"TaskId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"mpucallbacktest\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CallbackTs\\\\\\\\\\\\\\":1712656430***,\\\\\\\\\\\\\\"Payload\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"DstUrl\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"rtmp://domain/app/stream?auth\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"EventTs\\\\\\\\\\\\\\":1712656430***,\\\\\\\\\\\\\\"EventCode\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"ErrorCode\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"ErrorMessage\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"\\\\\\\\\\\\\\"}}\\",\\n \\"Time\\": \\"1970-01-01T00:00:00Z\\",\\n \\"Cost\\": 22,\\n \\"CallbackUrl\\": \\"http://testcallback***.com/callback\\",\\n \\"HTTPCode\\": \\"200\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n 1\\n false\\n \\n yourAppId\\n Sub-******9799B2C4500******\\n 42bba8b5-********-9b501dd6cb6e\\n {\\\\\\"EventType\\\\\\":1,\\\\\\"MsgId\\\\\\":\\\\\\"42bba8b5-94ab-468c-9dae-9b501dd6c***\\\\\\",\\\\\\"AppId\\\\\\":\\\\\\"rtcdev\\\\\\",\\\\\\"SubId\\\\\\":\\\\\\"Sub-9799B2C45009799B2C4***\\\\\\",\\\\\\"TaskId\\\\\\":\\\\\\"mpucallbacktest\\\\\\",\\\\\\"CallbackTs\\\\\\":1712656430***,\\\\\\"Payload\\\\\\":{\\\\\\"DstUrl\\\\\\":\\\\\\"rtmp://domain/app/stream?auth\\\\\\",\\\\\\"EventTs\\\\\\":1712656430***,\\\\\\"EventCode\\\\\\":1,\\\\\\"ErrorCode\\\\\\":0,\\\\\\"ErrorMessage\\\\\\":\\\\\\"\\\\\\"}}\\n \\n 22\\n http://testcallback***.com/callback\\n 200\\n \\n","errorExample":""}]', - 'title' => '查询混流转推事件订阅记录', - 'description' => '本接口用于查询混流转推事件订阅记录,查询范围为近7天的数据。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '更新订阅房间消息回调', + 'summary' => '更新订阅房间消息回调。', + 'description' => '- 调用本接口前,您必须已经调用[CreateEventSub](~~2848209~~)创建订阅房间消息回调。'."\n" + .'- 已有关联频道,依然使用原规则。频道关闭20分钟以上,再次开启才会适用新规则。'."\n" + .'- 如果只想更新某些字段,则其他字段也需要用原有内容进行填充。'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveInteractionMetricData' => [ - 'summary' => '调用DescribeLiveInteractionMetricData查询实时音视频指标数据。', - 'methods' => [ - 'get', - 'post', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEventSub'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:UpdateEventSub', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08\\"\\n}","errorExample":""},{"type":"xml","example":"\\n AE050E24-BE9B-1E79-BB30-7EA0BBAE7F08\\n","errorExample":""}]', + ], + 'UpdateLiveAIProduceRules' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '193672', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', - ], + 'abilityTreeCode' => '218935', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ - 'name' => 'MetricType', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '指标类型。取值:'."\n" - .'- JoinChannelSucRate:5秒加入频道成功率。'."\n" - .'- VideoStuckRate:视频卡顿率。'."\n" - .'- AudioStuckRate:音频卡顿率。'."\n" - .'- FirstFrameCost:首帧耗时。', - 'type' => 'string', - 'required' => true, - 'example' => 'FirstFrameCost', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'BeginTs', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '开始时间,用UNIX时间戳表示,单位:毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1698195600000', - ], + 'schema' => ['description' => '主播放域名。', 'type' => 'string', 'required' => true, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'EndTs', + 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间,用UNIX时间戳表示,单位:毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1698201013000', - ], + 'schema' => ['description' => '直播流应用名称。', 'type' => 'string', 'required' => true, 'example' => 'AppName'], ], [ - 'name' => 'Os', + 'name' => 'Suffix', 'in' => 'query', - 'schema' => [ - 'description' => '操作系统。取值:iOS、Android。', - 'type' => 'string', - 'required' => false, - 'example' => 'Android', - ], + 'schema' => ['description' => '后缀匹配', 'type' => 'string', 'required' => false, 'example' => 'test01'], ], [ - 'name' => 'TerminalType', + 'name' => 'SubtitleName', 'in' => 'query', - 'schema' => [ - 'description' => '终端类型。取值:web、mobile。', - 'type' => 'string', - 'required' => false, - 'example' => 'mobile', - ], + 'schema' => ['description' => '字幕模板名称', 'type' => 'string', 'required' => false, 'example' => 'sub01'], ], [ - 'name' => 'AppId', + 'name' => 'StudioName', 'in' => 'query', - 'schema' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'e4d7f08a-01fe-41b5-a091-fe41060a****', - ], + 'schema' => ['description' => '虚拟背景模板名称', 'type' => 'string', 'required' => false, 'example' => 'sub02'], ], [ - 'name' => 'ChannelId', + 'name' => 'IsLazy', 'in' => 'query', - 'schema' => [ - 'title' => '管道ID'."\n" - .'频道标识', - 'description' => '管道ID', - 'type' => 'string', - 'required' => false, - 'example' => '770513', - ], + 'schema' => ['description' => '是否拉流触发。取值:'."\n" + .'- true:拉流时启动字幕,若5分钟内没有拉流则会断掉字幕,后续再有拉流才会启动。'."\n" + .'- false:只要有推流就启动字幕,与是否有拉流无关。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'RulesId', + 'in' => 'query', + 'schema' => ['description' => '字幕规则ID。', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****'], + ], + [ + 'name' => 'LiveTemplate', + 'in' => 'query', + 'schema' => ['description' => '字幕输出规格,取值:'."\n" + .'- 横屏流畅360P 640x360:`lp_ld`'."\n" + .'- 竖屏流畅 360P 360x640:`lp_ld_v`'."\n" + .'- 横屏标清 480P 854x480:`lp_sd`'."\n" + .'- 竖屏标清 480P 480x854:`lp_sd_v`'."\n" + .'- 横屏高清 720P 1280x720:`lp_hd`'."\n" + .'- 竖屏高清 720P 720x1280:`lp_hd_v`'."\n" + .'- 横屏超清 1080P 1920x1080:`lp_ud`'."\n" + .'- 竖屏超清 1080P 1080x1920:`lp_ud_v`', 'type' => 'string', 'required' => false, 'example' => 'lp_ld'], + ], + [ + 'name' => 'SubtitleId', + 'in' => 'query', + 'schema' => ['description' => '字幕模板ID。', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => '字幕规则描述。可包含中英文、数字、字符,不超过128位。', 'type' => 'string', 'required' => false, 'example' => 'live AI subtitle template'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回参数。', 'type' => 'object', 'properties' => [ - 'Nodes' => [ - 'description' => '节点数据。', - 'type' => 'array', - 'items' => [ - 'description' => '节点数据。', - 'type' => 'object', - 'properties' => [ - 'Timestamp' => [ - 'description' => '查询时间,用UNIX时间戳表示,单位:毫秒。', - 'type' => 'string', - 'example' => '1548670257000', - ], - 'Value' => [ - 'description' => '指标对应的值。', - 'type' => 'string', - 'example' => '66.670000', - ], - ], - ], - ], - 'RequestId' => [ - 'title' => 'Id', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A01C98C5-25AE-124A-83FE-514DF5C5BE36', - ], - 'SummaryData' => [ - 'description' => '汇总数据。', - 'type' => 'string', - 'example' => '2000', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b96****'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Meter.ParamError', - 'errorMessage' => 'Param Error:%s,Please Check Again.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Meter.AuthError', - 'errorMessage' => 'Authentication Failed,Please Try Again.', - ], - ], - 500 => [ - [ - 'errorCode' => 'Meter.ServerInternalError', - 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', - ], - [ - 'errorCode' => 'Meter.DataSourceQueryError', - 'errorMessage' => 'Data Source Error:%s,Please Try Again.', - ], - ], - 502 => [ - [ - 'errorCode' => 'Meter.ReadyTsError', - 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Nodes\\": [\\n {\\n \\"Timestamp\\": \\"1548670257000\\",\\n \\"Value\\": \\"66.670000\\"\\n }\\n ],\\n \\"RequestId\\": \\"A01C98C5-25AE-124A-83FE-514DF5C5BE36\\",\\n \\"SummaryData\\": \\"2000\\"\\n}","errorExample":""},{"type":"xml","example":"\\n A01C98C5-25AE-124A-83FE-514DF5C5BE36\\n 2000\\n \\n 1548670257000\\n 66.670000\\n \\n","errorExample":""}]', - 'title' => '查询实时音视频指标数据', - 'description' => '- 可以查询最近30天内的数据,查询时间跨度不能超过24小时。'."\n" - .'- 查询粒度:5分钟。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'title' => '更新实时字幕规则', + 'summary' => '更新字幕规则。', + 'description' => '本接口支持对指定字幕规则各项参数进⾏更新调整。'."\n" + ."\n" + .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" + .'>'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'CreateRtcAsrTask' => [ - 'summary' => '创建一个新的实时字幕任务,用于实时转录音频流为文本。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-10-14T03:46:55.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-07-04T02:57:18.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAIProduceRules'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveAIProduceRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64-af62-20e91b96****\\n","errorExample":""}]', + ], + 'UpdateLiveAISubtitle' => [ + 'summary' => '调用UpdateLiveAISubtitle更新字幕模板。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -66909,178 +50627,133 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '219527', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '218740', + 'abilityTreeNodes' => ['FEATUREliveY7SMJ1'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Mode', + 'name' => 'SubtitleName', 'in' => 'query', - 'schema' => [ - 'description' => '流模式,live或者rtc。live为正常直播流如rtmp。', - 'type' => 'string', - 'required' => true, - 'example' => 'live', - 'enum' => [ - 'rtc', - 'live', - ], - ], + 'schema' => ['description' => '字幕模板名称,仅支持数字、大小写字母或短横线-,短横线不和位于首位。', 'type' => 'string', 'required' => false, 'example' => 'live AI subtitle template'], ], [ - 'name' => 'SDKAppID', + 'name' => 'SrcLanguage', 'in' => 'query', - 'schema' => [ - 'description' => 'ARTC应用ID。'."\n" - .'> 当参数Mode取值为rtc时,此参数必填,否则不生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'appId', - ], + 'schema' => ['description' => '源语言,取值:'."\n" + .'- 英文:en-US'."\n" + .'- 中文:zh-CN'."\n" + .'- 俄文:ru-RU', 'type' => 'string', 'required' => false, 'example' => 'zh-CN'], ], [ - 'name' => 'ChannelID', + 'name' => 'DstLanguage', 'in' => 'query', - 'schema' => [ - 'description' => '房间号。'."\n" - .'> 参数Mode取值为rtc时,此参数必填,否则不生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'channelId', - ], + 'schema' => ['description' => '翻译目标语言,取值:'."\n" + .'- 英文:en-US'."\n" + .'- 中文:zh-CN'."\n" + .'- 西班牙文:es-ES'."\n" + .'- 俄文:ru-RU', 'type' => 'string', 'required' => false, 'example' => 'zh-CN'], ], [ - 'name' => 'RtcUserId', + 'name' => 'FontColor', 'in' => 'query', - 'schema' => [ - 'description' => '推流用户ID。'."\n" - .'> 参数Mode取值为rtc时,此参数必填,且只能填写一个,否则不生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'user1', - ], + 'schema' => ['description' => '字体颜色,RGBA值。', 'type' => 'string', 'required' => false, 'example' => '0xFFFFFF'], ], [ - 'name' => 'StreamURL', + 'name' => 'FontName', + 'in' => 'query', + 'schema' => ['description' => '字体,取值:'."\n" + .'- KaiTi-楷体,默认'."\n" + .'- AlibabaPuHuiTi-Regular-阿里巴巴普惠体-常规'."\n" + .'- AlibabaPuHuiTi-Bold-阿里巴巴普惠体-粗体'."\n" + .'- AlibabaPuHuiTi-Light-阿里巴巴普惠体-细体'."\n" + .'- NotoSansHans-Regular-思源黑体-常规'."\n" + .'- NotoSansHans-Bold-思源黑体-粗体'."\n" + .'- NotoSansHans-Light-思源黑体-细体', 'type' => 'string', 'required' => false, 'example' => 'KaiTi'], + ], + [ + 'name' => 'BgColor', + 'in' => 'query', + 'schema' => ['description' => '字幕背景颜色,RGBA值。', 'type' => 'string', 'required' => false, 'example' => '0xFF0000'], + ], + [ + 'name' => 'PositionNormalized', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '直播流地址。'."\n" - .'> 参数Mode取值为live时,此参数必填,否则不生效。', - 'type' => 'string', + 'description' => '字幕位置信息,以屏幕左下角为起点的 x,y 轴坐标。', + 'type' => 'array', + 'items' => ['description' => '字幕位置坐标值。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.32'], 'required' => false, - 'example' => 'rtmp://xxx', + 'example' => '[0.32,0.27]', ], ], [ - 'name' => 'Language', + 'name' => 'ShowSourceLan', 'in' => 'query', - 'schema' => [ - 'description' => '原音频语言,取值:'."\n" - .'- 日语:ja。'."\n" - .'- 粤语:yue。'."\n" - .'- 中英文自由说:fspk。'."\n" - .'- 英文:en。'."\n" - .'- 中文:cn。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn', - ], + 'schema' => ['description' => '是否显示源语言,ShowSourceLan默认为false。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'CallbackURL', + 'name' => 'MaxLines', 'in' => 'query', - 'schema' => [ - 'description' => '回调地址。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://xxx.com', - ], + 'schema' => ['description' => '显示行数', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], ], [ - 'name' => 'AuthKey', + 'name' => 'WordPerLine', 'in' => 'query', - 'schema' => [ - 'description' => '校验AuthKey,用于生成回调信息的MD5签名。'."\n" - .'> 回调时会在请求头中加两个鉴权字段,"SIG-TIME"表示当前时间戳,"ASR-SIG"表示md5鉴权字段,"ASR-SIG"字段的生成规则为md5(`${SIG-TIME}/${callbackurl}/${authKey}`)', - 'type' => 'string', - 'required' => false, - 'example' => 'abcd', - ], + 'schema' => ['description' => '每行显示字数,取值范围:支持输入【1,500】内的整数', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], [ - 'name' => 'TranslateEnabled', + 'name' => 'FontSizeNormalized', 'in' => 'query', - 'schema' => [ - 'description' => '开启翻译。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '字体尺寸,取值范围:【0,1】', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.037'], ], [ - 'name' => 'TargetLanguages', + 'name' => 'BorderWidthNormalized', 'in' => 'query', - 'schema' => [ - 'description' => '目标翻译语种,取值:'."\n" - .'- 中文:cn。'."\n" - .'- 英文:en。'."\n" - .'- 日文:ja。', - 'type' => 'string', - 'required' => false, - 'example' => 'en', - ], + 'schema' => ['description' => '字体粗细,取值范围:【0,1】', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.05'], ], [ - 'name' => 'AutoTerminateEnabled', + 'name' => 'BgWidthNormalized', 'in' => 'query', - 'schema' => [ - 'description' => '断流最大延迟,超过则自动关闭任务。默认值:false。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '字幕背景尺寸,取值范围:【0,1】', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '0.09'], ], [ - 'name' => 'AutoTerminateDelay', + 'name' => 'SubtitleId', 'in' => 'query', - 'schema' => [ - 'description' => '自动断流延时,单位秒,取值:1~10秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '5', - ], + 'schema' => ['description' => '字幕模板ID', 'type' => 'string', 'required' => true, 'example' => '597991f3-6ef9-4100-9238-82951de1****'], ], [ - 'name' => 'ReportInterval', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => '回调上报间隔,单位毫秒,取值范围:-1~500毫秒。'."\n" - .'- -1:不接受中间结果,只接受整句回调。'."\n" - .'- 0或不设置:实时上报回调结果。'."\n" - .'- <=500毫秒:周期性间隔上报回调结果。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '5', - ], + 'schema' => ['description' => '自定义字幕描述信息。可包含中英文、数字、字符,不超过128位。', 'type' => 'string', 'required' => false, 'example' => 'live AI subtitle template'], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => ['description' => '预览画面宽度,单位:px', 'type' => 'string', 'required' => false, 'example' => '1280'], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => ['description' => '预览画面高度,单位:px'."\n" + ."\n" + .'预览画面宽度x高度仅支持以下规格:'."\n" + .'- 横屏流畅 360P 640x360'."\n" + .'- 竖屏流畅 360P 360x640'."\n" + .'- 横屏标清 480P 854x480'."\n" + .'- 竖屏标清 480P 480x854'."\n" + .'- 横屏高清 720P 1280x720'."\n" + .'- 竖屏高清 720P 720x1280'."\n" + .'- 横屏超清 1080P 1920x1080'."\n" + .'- 竖屏超清 1080P 1080x1920', 'type' => 'string', 'required' => false, 'example' => '720'], ], ], 'responses' => [ @@ -67088,98 +50761,208 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Description' => [ - 'description' => '结果描述,为success时成功,有错误信息则返回。', - 'type' => 'string', - 'example' => 'success', - ], - 'RequestId' => [ - 'description' => '网关请求ID。', - 'type' => 'string', - 'example' => '7FF5417D-06E9-5A2C-9A70-581F6149E6C1', - ], - 'RetCode' => [ - 'description' => '状态码。返回2000表示成功,返回其他表示异常。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2000', - ], - 'TaskId' => [ - 'description' => '生成的任务ID。', - 'type' => 'string', - 'example' => 'asr-a6ac15e0-9118-4b4c-9e64-306163a0****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'String 5c6a2a0df228-4a64- af62-20e91b96****'], ], + 'description' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"7FF5417D-06E9-5A2C-9A70-581F6149E6C1\\",\\n \\"RetCode\\": 2000,\\n \\"TaskId\\": \\"asr-a6ac15e0-9118-4b4c-9e64-306163a0****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n success\\n 7FF5417D-06E9-5A2C-9A70-581F6149E6C1\\n 2000\\n asr-a6ac15e0-9118-4b4c-9e64-306163a0****\\n","errorExample":""}]', - 'title' => '创建实时语音转文字或翻译', - 'description' => '本接口用于创建一个新的实时字幕任务,用于实时转录音频流为文本。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"String\\\\t5c6a2a0df228-4a64- af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n String\\t5c6a2a0df228-4a64- af62-20e91b96****\\n","errorExample":""}]', + 'title' => '更新字幕模板', + 'description' => '## 使用说明'."\n" + ."\n" + .'本接口支持对指定字幕模板各项参数进⾏更新调整。'."\n" + ."\n" + .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" + .'>'."\n" + ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '## 回调示例'."\n" - .'通过用户提供的 CallbackUrl,以 HTTP POST 请求的形式将 JSON 格式的数据放在请求体(Request Body)中回调至指定地址。回调参数Content详细说明及回调流程请参见:[交互流程与实现](~~2609586~~),示例如下所示:'."\n" - .'```'."\n" - .'{'."\n" - .' "task_id": "asr-cf8c70d7-3b8d-496c-98f8-4785******",'."\n" - .' "sdk_app_id": "",'."\n" - .' "channel_id": "",'."\n" - .' "rtc_user_id": "",'."\n" - .' "callback_time_stamp": 1723433155645,'."\n" - .' "language": "cn",'."\n" - .' "content": "{\\"header\\":{\\"nls_task_id\\":\\"af95c5cc332549f689f3153bc9******\\",\\"task_key\\":\\"tl_2977564_17234*****\\",\\"namespace\\":\\"SpeechTranscriber\\",\\"name\\":\\"TranscriptionResultChanged\\",\\"task_id\\":\\"413937911b874146b5796******\\",\\"message_id\\":\\"abfc9e9994e748a38499e1******\\",\\"status_text\\":\\"Success.\\",\\"status\\":20000000},\\"payload\\":{\\"result\\":\\"在这里与各位相聚\\",\\"confidence\\":0.0,\\"words\\":[{\\"startTime\\":0,\\"text\\":\\"在这\\",\\"endTime\\":510},{\\"startTime\\":510,\\"text\\":\\"里与\\",\\"endTime\\":1020},{\\"startTime\\":1020,\\"text\\":\\"各位\\",\\"endTime\\":1530},{\\"startTime\\":1530,\\"text\\":\\"相聚\\",\\"endTime\\":2040}],\\"index\\":0,\\"time\\":2040,\\"fixed_result\\":\\"\\",\\"unfixed_result\\":\\"\\",\\"status\\":0}}"'."\n" - .' }'."\n" - .'```', - ], - 'QueryRtcAsrTasks' => [ - 'summary' => '查询当前已创建的实时语音转文字或翻译任务的状态信息。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [ + ['createdAt' => '2024-12-04T05:54:29.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAISubtitle'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveAISubtitle', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateLiveAppRecordConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '219787', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', + 'abilityTreeNodes' => ['FEATUREliveL04ZVK'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'AppName', + 'in' => 'query', + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'OssEndpoint', + 'in' => 'query', + 'schema' => ['description' => 'OSS存储的Endpoint名称。'."\n" + ."\n" + .'直播录制文件存储至OSS,需提前创建OSS Bucket,创建方法请参见[配置OSS](~~84932~~) 。', 'type' => 'string', 'required' => true, 'example' => 'learn.developer.aliyundoc.com'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '播流名称。', 'type' => 'string', 'required' => false, 'example' => 'teststream'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '录制开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> 设置的时间必须是实际推流时间开始7天之内,只在流级别录制(StreamName不为空)有效。', 'type' => 'string', 'required' => false, 'example' => '2018-04-10T09:57:21Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '录制结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + ."\n" + .'> EndTime与StartTime相差不应超过7天,超过7天将按照7天计算。只在流级别录制(StreamName不为空)有效。', 'type' => 'string', 'required' => false, 'example' => '2018-04-16T09:57:21Z'], + ], + [ + 'name' => 'OnDemand', + 'in' => 'query', + 'schema' => ['description' => '按需录制。取值:'."\n" + ."\n" + .'- **0**:关闭。'."\n" + .'- **1**:通过HTTP回调方式。'."\n" + .'- **2**:解析推流参数按需录制。'."\n" + .'- **7**:默认不录制,可以通过[RealTimeRecordCommand](~~2847882~~)接口手动控制录制开启或停止。'."\n" + ."\n" + .'>当OnDemand取值为**1**时,需要先通过[AddLiveRecordNotifyConfig](~~2847891~~)接口配置OnDemandUrl,否则默认不录制。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'DelayTime', + 'in' => 'query', + 'schema' => ['description' => '断流拼接时长。'."\n" + .'直播断流时长超过设定的拼接时长后,将会生成新文件,断流拼接时长支持15~21600秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '180'], + ], + [ + 'name' => 'RecordFormat', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '记录详情。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CycleDuration' => ['description' => '周期录制时长。单位:秒。不填则默认为6小时。'."\n" + ."\n" + .'> - 如果在一个录制周期内,直播流发生了断流,但是在断流拼接时长内,该直播流又正常推流,那么仍会在同一个录制文件中继续录制。'."\n" + .'>- 一条直播流必须断流超过断流拼接时长,才会生成录制文件。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'Format' => ['description' => '格式。目前支持M3U8、FLV、MP4、CMAF。取值:'."\n" + ."\n" + .'>RecordFormat和TranscodeRecordFormat两者至少需要设置一个。如果选择m3u8或cmaf格式,必须同时设置请求参数RecordFormat.N.SliceOssObjectPrefix和RecordFormat.N.SliceDuration。'."\n" + .'>'."\n" + ."\n" + .'- m3u8。'."\n" + .'- flv。'."\n" + .'- mp4。'."\n" + .'- cmaf。', 'type' => 'string', 'required' => false, 'example' => 'm3u8'], + 'SliceDuration' => ['description' => '单个切片时长。单位:秒。'."\n" + ."\n" + .'>当RecordFormat.N.Format(格式)设为m3u8或cmaf时,本参数才有效。'."\n" + .'>'."\n" + ."\n" + .'不填则默认为30秒。取值范围:5s~30s。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'maxItems' => 3, + ], ], - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'TranscodeRecordFormat', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', + 'description' => '转码记录详情。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CycleDuration' => ['description' => '转码流录制周期录制时长。单位:秒。不填则默认为6小时。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '21600'], + 'Format' => ['description' => '转码流录制格式。目前支持M3U8、FLV、MP4、CMAF。取值:'."\n" + .'>这如果选择m3u8或cmaf格式,必须同时设置请求参数TranscodeRecordFormat.N.SliceOssObjectPrefix和TranscodeRecordFormat.N.SliceDuration。'."\n" + .'>'."\n" + ."\n" + .'- m3u8。'."\n" + .'- flv。'."\n" + .'- mp4。'."\n" + .'- cmaf。', 'type' => 'string', 'required' => false, 'example' => 'm3u8'], + 'SliceDuration' => ['description' => '转码流录制单个切片时长,单位:秒。'."\n" + ."\n" + .'>当TranscodeRecordFormat.N.Format(转码流录制格式)设为m3u8或cmaf时,本参数才生效。'."\n" + .'>'."\n" + ."\n" + .'不填则默认为30秒。取值范围:5s~30s。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], + ], + 'required' => false, + 'description' => '', + ], 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + 'maxItems' => 3, ], ], [ - 'name' => 'TaskId', + 'name' => 'TranscodeTemplates', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要查询的任务ID,不填写则查询用户uid下所有运行中的任务。', - 'type' => 'string', + 'description' => '转码流录制的转码模板组。', + 'type' => 'array', + 'items' => ['description' => '- 转码流录制的[转码模板](~~45039~~),可进行多个设置,最多为10个。'."\n" + .'- 当设置TranscodeRecordFormat.N.xxx配置时,至少需要设置一个TranscodeTemplates。'."\n" + .'- 如需录制多个或全部的转码流,可设置TranscodeTemplates.1为*****即可。'."\n" + .'>TranscodeTemplates不允许传入`raw`,属于保留标识。
RepeatList表示为TranscodeTemplates.N中的N,可理解为递增进行多个设置,如:'."\n" + .'TranscodeTemplates.1=sd,'."\n" + .'TranscodeTemplates.2=hd。', 'type' => 'string', 'required' => false, 'example' => 'sd'], 'required' => false, - 'example' => 'asr-a6ac15e0-9118-4b4c-9e64-306163a0****', + 'maxItems' => 10, ], ], ], @@ -67188,196 +50971,130 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Description' => [ - 'description' => '结果描述,为success时成功,失败则返回错误信息。', - 'type' => 'string', - 'example' => 'success', - ], - 'RequestId' => [ - 'description' => '网关请求ID。', - 'type' => 'string', - 'example' => 'D8ADAB55-1BB8-5C01-8434-C45D353BB1FD', - ], - 'RetCode' => [ - 'description' => '状态码。返回2000表示成功,返回其他表示异常。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2000', - ], - 'Tasks' => [ - 'description' => 'Task结果集合。', - 'type' => 'object', - 'additionalProperties' => [ - 'type' => 'any', - 'example' => '"asr-a7bdde0a-0939-4288-973e-170082aa****": { "createdAt": "2024-05-14T11:52:02+08:00", "updatedAt": "2024-05-14T11:52:03+08:00", "mode": "live", "taskId": "asr-a7bdde0a-0939-4288-973e-170082aa****", "language": "cn", "callbackUrl": "default", "autoTerminateDelay": "10", "streamUrl": "http://pull-lveditor.alivecdn.com/caster/9c6c26281a6f4da29af7d3ec84d2****.flv?auth_key=1715745062-0-0-fbc68f2ccebb4d46b5ab6d4801ed****", "status": 1, "reportInterval": "0", "aliUid": "1119309225474343", "tag": "" }', - 'description' => 'Task结果集合。', - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified parameter OssBucket is not valid.', 'description' => 'OSSBucket参数错误,请您确认该OSS BUCKET参数是否正确。'], + ['errorCode' => 'InvalidOssBucket.NotFound', 'errorMessage' => 'The parameter OssBucket does not exist.', 'description' => ''], + ['errorCode' => 'InvalidFormat.Malformed', 'errorMessage' => 'Specified parameter Format is not valid.', 'description' => 'Format参数错误,请您确认该Format参数是否正确。'], + ['errorCode' => 'InvalidCycleDuration.Malformed', 'errorMessage' => 'Specified CycleDuration Format is not valid.', 'description' => 'CycleDuration参数格式错误,请您确认该CycleDuration参数格式是否正确。'], + ['errorCode' => 'InvalidSliceDuration.Malformed', 'errorMessage' => 'Specified SliceDuration Format is not valid.', 'description' => ''], + ['errorCode' => 'InvalidTemplateLength.Malformed', 'errorMessage' => 'Specified record template length is not valid.', 'description' => ''], + ['errorCode' => 'InvalidTemplate.ForbidRaw', 'errorMessage' => 'Template named raw is Forbidden.', 'description' => ''], + ['errorCode' => 'MissingTemplate', 'errorMessage' => 'Template is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingOssObjectPrefix', 'errorMessage' => 'OssObjectPrefix is mandatory for this action.', 'description' => ''], + ['errorCode' => 'MissingSliceOssObjectPrefix', 'errorMessage' => 'SliceOssObjectPrefix is mandatory for this action.', 'description' => ''], + ['errorCode' => 'InvalidOssObjectPrefix.Malformed', 'errorMessage' => 'Specified parameter OssObjectPrefix is not valid.', 'description' => ''], + ['errorCode' => 'InvalidSliceOssObjectPrefix.Malformed', 'errorMessage' => 'Specified parameter SliceOssObjectPrefix is not valid.', 'description' => 'SliceOssObjectPrefix参数错误,请您确认该SliceOssObjectPrefix参数是否正确。'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ['errorCode' => 'InvalidFormat.IllegalOperation', 'errorMessage' => 'Specified parameter Format can not be multiple.', 'description' => ''], + ['errorCode' => 'InvalidDelayTime', 'errorMessage' => 'Specified Delaytime is invalid.', 'description' => ''], + ['errorCode' => 'Live2Vod.ConfigAlreadyExists', 'errorMessage' => 'Had live2vod record config already.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified EndTime does not math the specified StartTime or current time.', 'description' => ''], + ['errorCode' => 'InvalidStartTime.Mismatch', 'errorMessage' => 'Specified StartTime does not math the current time.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'Ram Permission is forbidden.', 'description' => ''], + ['errorCode' => 'InvalidOssEndpoint.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '无效的OssEndpoint,请检查后重试。'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], + ], + 'title' => '更新直播录制', + 'summary' => '更新配置APP录制,输出内容保存到OSS中。', + 'description' => '先获取主播流域名,再调用本接口更新录制配置。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAppRecordConfig'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveAppRecordConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"D8ADAB55-1BB8-5C01-8434-C45D353BB1FD\\",\\n \\"RetCode\\": 2000,\\n \\"Tasks\\": {\\n \\"key\\": \\"\\\\\\"asr-a7bdde0a-0939-4288-973e-170082aa****\\\\\\": { \\\\\\"createdAt\\\\\\": \\\\\\"2024-05-14T11:52:02+08:00\\\\\\", \\\\\\"updatedAt\\\\\\": \\\\\\"2024-05-14T11:52:03+08:00\\\\\\", \\\\\\"mode\\\\\\": \\\\\\"live\\\\\\", \\\\\\"taskId\\\\\\": \\\\\\"asr-a7bdde0a-0939-4288-973e-170082aa****\\\\\\", \\\\\\"language\\\\\\": \\\\\\"cn\\\\\\", \\\\\\"callbackUrl\\\\\\": \\\\\\"default\\\\\\", \\\\\\"autoTerminateDelay\\\\\\": \\\\\\"10\\\\\\", \\\\\\"streamUrl\\\\\\": \\\\\\"http://pull-lveditor.alivecdn.com/caster/9c6c26281a6f4da29af7d3ec84d2****.flv?auth_key=1715745062-0-0-fbc68f2ccebb4d46b5ab6d4801ed****\\\\\\", \\\\\\"status\\\\\\": 1, \\\\\\"reportInterval\\\\\\": \\\\\\"0\\\\\\", \\\\\\"aliUid\\\\\\": \\\\\\"1119309225474343\\\\\\", \\\\\\"tag\\\\\\": \\\\\\"\\\\\\" }\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n success\\n D8ADAB55-1BB8-5C01-8434-C45D353BB1FD\\n 2000\\n \\n \\"asr-a7bdde0a-0939-4288-973e-170082aa****\\": { \\"createdAt\\": \\"2024-05-14T11:52:02+08:00\\", \\"updatedAt\\": \\"2024-05-14T11:52:03+08:00\\", \\"mode\\": \\"live\\", \\"taskId\\": \\"asr-a7bdde0a-0939-4288-973e-170082aa****\\", \\"language\\": \\"cn\\", \\"callbackUrl\\": \\"default\\", \\"autoTerminateDelay\\": \\"10\\", \\"streamUrl\\": \\"http://pull-lveditor.alivecdn.com/caster/9c6c26281a6f4da29af7d3ec84d2****.flv?auth_key=1715745062-0-0-fbc68f2ccebb4d46b5ab6d4801ed****\\", \\"status\\": 1, \\"reportInterval\\": \\"0\\", \\"aliUid\\": \\"1119309225474343\\", \\"tag\\": \\"\\" }\\n \\n","errorExample":""}]', - 'title' => '查询实时语音转文字或翻译', - 'description' => '本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","type":"json"}]', ], - 'StopRtcAsrTask' => [ - 'summary' => '调用StopRtcAsrTask停止实时字幕任务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateLiveAppSnapshotConfig' => [ + 'summary' => '更新直播流下的截图配置。输出内容保存到OSS中,重新推流后生效。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '219794', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', - ], + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'TaskId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'asr-d794cc89-a63e-4d08-8b44-242a6597****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'description' => '结果描述,为success时成功,失败则返回错误信息。', - 'type' => 'string', - 'example' => 'success', - ], - 'RequestId' => [ - 'description' => '网关请求ID。', - 'type' => 'string', - 'example' => '3D208CC1-27C9-51E9-82B8-A6682D466421', - ], - 'RetCode' => [ - 'description' => '状态码。返回2000表示成功,返回其他表示异常。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2000', - ], - ], - ], + 'schema' => ['description' => '播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + [ + 'name' => 'TimeInterval', + 'in' => 'query', + 'schema' => ['description' => '截图周期。取值范围:**5~3600**。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3600', 'minimum' => '5', 'example' => '5'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], + [ + 'name' => 'OssEndpoint', + 'in' => 'query', + 'schema' => ['description' => 'OSS存储的Endpoint名称。', 'type' => 'string', 'required' => false, 'example' => 'cn-oss-****.aliyuncs.com'], ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"3D208CC1-27C9-51E9-82B8-A6682D466421\\",\\n \\"RetCode\\": 2000\\n}","errorExample":""},{"type":"xml","example":"\\n success\\n 3D208CC1-27C9-51E9-82B8-A6682D466421\\n 2000\\n","errorExample":""}]', - 'title' => '停止实时语音转文字或翻译', - 'description' => '本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteRtcAsrTask' => [ - 'summary' => '调用DeleteRtcAsrTask删除实时语音转文字或翻译任务。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'OssBucket', + 'in' => 'query', + 'schema' => ['description' => 'OSS存储Bucket名称。', 'type' => 'string', 'required' => false, 'example' => 'liveBucket****'], ], - ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '219798', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', + [ + 'name' => 'OverwriteOssObject', + 'in' => 'query', + 'schema' => ['description' => '覆盖截图存储文件名。每次截图都覆盖此文件。'."\n" + ."\n" + .'- 小于256 Byte。'."\n" + .'- 目前仅支持生成JPG图片。'."\n" + .'- 支持变量匹配,包含 {AppName}、{StreamName}。'."\n" + .'- 传入短划线(-),表示删除此字段。', 'type' => 'string', 'required' => false, 'example' => '{liveApp****}/{liveStream****}.jpg'], ], - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'SequenceOssObject', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '实时截图存储文件名。每次截图都递增存储,调用[DescribeLiveStreamSnapshotInfo](~~2847902~~)接口,可以查询某一段时间的文件。'."\n" + ."\n" + .'- 小于256 Byte。'."\n" + .'- 目前仅支持生成JPG图片。'."\n" + .'- 支持变量匹配,包含 {AppName}、{StreamName}、{UnixTimestamp}、{Sequence},其中 {UnixTimestamp}、{Sequence} 必填一个。'."\n" + .'- 传入短划线(-),表示删除此字段。', 'type' => 'string', 'required' => false, 'example' => 'snapshot/{liveApp****}/{liveStream****}/{UnixTimestamp****}.jpg'], ], [ - 'name' => 'TaskId', + 'name' => 'Callback', 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。您可通过调用[CreateRtcAsrTask](~~2848217~~)接口获取任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'asr-51c72******', - ], + 'schema' => ['description' => '截图回调地址。', 'type' => 'string', 'required' => false, 'example' => 'https://learn.aliyundoc.com'], ], ], 'responses' => [ @@ -67385,57 +51102,56 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Description' => [ - 'description' => '结果描述,为success时成功,失败则返回错误信息。', - 'type' => 'string', - 'example' => 'success', - ], - 'RequestId' => [ - 'description' => '网关请求ID。', - 'type' => 'string', - 'example' => '85F94125-B695-1FB8-A7E7-3BE7CE******', - ], - 'RetCode' => [ - 'description' => '状态码。返回2000表示成功,返回其他表示异常。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2000', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ConfigNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidOverwriteOssObjectOrSequenceOssObject.Malformed', 'errorMessage' => 'Specified paramters OverwriteOssObject or SequenceOssObject should have one.', 'description' => 'OverwriteOssObject与SequenceOssObject参数任选其一。'], + ['errorCode' => 'InvalidOssEndpoint.Malformed', 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', 'description' => ''], + ['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified parameter OssBucket is not valid.', 'description' => 'OSSBucket参数错误,请您确认该OSS BUCKET参数是否正确。'], + ['errorCode' => 'InvalidOssBucket.NotFound', 'errorMessage' => 'The parameter OssBucket does not exist.', 'description' => ''], + ['errorCode' => 'InvalidOverwriteOssObject.Malformed', 'errorMessage' => 'Specified parameter OverwriteOssObject is not valid.', 'description' => 'OverwriteOSSObject参数错误,请您确认该OverwriteOSSObject参数是否正确。'], + ['errorCode' => 'InvalidSequenceOssObject.Malformed', 'errorMessage' => 'Specified parameter SequenceOssObject is not valid.', 'description' => 'SequenceOssObject参数错误,请您确认该SequenceOssObject参数是否正确。'], + ['errorCode' => 'InvalidConfig.NotFound', 'errorMessage' => 'The speicified config does not exist.', 'description' => ''], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], + ], + 'title' => '更新直播截图配置', + 'description' => '调用本接口更新播流下的截图配置。输出内容保存到OSS中,重新推流后生效。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAppSnapshotConfig'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveAppSnapshotConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"success\\",\\n \\"RequestId\\": \\"85F94125-B695-1FB8-A7E7-3BE7CE******\\",\\n \\"RetCode\\": 2000\\n}","errorExample":""},{"type":"xml","example":"\\n success\\n 85F94125-B695-1FB8-A7E7-3BE7CE07EF31\\n 2000\\n","errorExample":""}]', - 'title' => '删除实时语音转文字或翻译任务', - 'description' => '本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', ], - 'DeleteLiveAIProduceRules' => [ - 'summary' => '删除字幕规则。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateLiveAudioAuditConfig' => [ + 'summary' => '更新直播语音审核配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -67443,68 +51159,51 @@ ], 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '219079', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'RulesId', + 'name' => 'DomainName', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '字幕规则ID。', - 'type' => 'string', - 'required' => false, - 'docRequired' => true, - 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'SuffixName', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '字幕后缀。'."\n" - .'> 传值为SubtitleName字幕模板名称设置的值。', - 'type' => 'string', - 'required' => false, - 'example' => 'et', - ], + 'schema' => ['description' => '播流所属的应用名称。AppName名称与推流地址中的AppName名称对应,模板才能生效。区分大小写。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'Domain', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '主播放域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['description' => '播流名称。StreamName名称与推流地址中的StreamName名称对应,模板才能生效。区分大小写。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], [ - 'name' => 'App', + 'name' => 'OssBucket', 'in' => 'query', - 'schema' => [ - 'description' => '直播流应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'AppName', - ], + 'schema' => ['description' => 'OSS存储Bucket名称。', 'type' => 'string', 'required' => false, 'example' => 'liveBucket****'], + ], + [ + 'name' => 'OssEndpoint', + 'in' => 'query', + 'schema' => ['description' => 'OSS存储Endpoint名称。', 'type' => 'string', 'required' => false, 'example' => 'cn-oss-****.aliyuncs.com'], + ], + [ + 'name' => 'OssObject', + 'in' => 'query', + 'schema' => ['description' => 'OSS存储的录制文件名。', 'type' => 'string', 'required' => false, 'example' => 'liveObject****'], + ], + [ + 'name' => 'BizType', + 'in' => 'query', + 'schema' => ['description' => '业务类型。可用于选择模型,默认值为域名。', 'type' => 'string', 'required' => false, 'example' => ' example.edu'], ], ], 'responses' => [ @@ -67512,145 +51211,96 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64- af62-20e91b96****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'IncorrectSubtitleStatus.%s', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '存在无效参数,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64- af62-20e91b96****\\n","errorExample":""}]', - 'title' => '删除字幕规则', - 'description' => '本接口支持删除指定的字幕规则。'."\n" + 'title' => '更新直播语音审核配置', + 'description' => '- 先获取主播流域名,再调用本接口更新直播语音审核配置。'."\n" ."\n" - .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" - .'>'."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveAIProduceRules' => [ - 'summary' => '查询字幕规则列表。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAudioAuditConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveAudioAuditConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', + ], + 'UpdateLiveAudioAuditNotifyConfig' => [ + 'summary' => '更新直播语音审核回调配置信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '219166', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '主播放域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'demo.aliyundoc.com', - ], - ], - [ - 'name' => 'App', - 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'AppName', - ], - ], - [ - 'name' => 'SuffixName', - 'in' => 'query', - 'schema' => [ - 'description' => '字幕后缀。'."\n" - .'> 传值为SubtitleName字幕模板名称设置的值。', - 'type' => 'string', - 'required' => false, - 'example' => 'sub01', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'RulesId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '字幕规则ID。', - 'type' => 'string', - 'required' => false, - 'example' => '445409ec-7eaa-461d-8f29-4bec****', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'PageNumber', + 'name' => 'Callback', 'in' => 'query', - 'schema' => [ - 'description' => '分⻚的⻚数,取值范围【1,100】。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '回调地址。用于接收问题语音内容的回调', 'type' => 'string', 'required' => false, 'example' => 'http://guide.aliyundoc.com/callback'], ], [ - 'name' => 'PageSize', + 'name' => 'CallbackTemplate', 'in' => 'query', - 'schema' => [ - 'description' => '分⻚每⻚个数,取值范围【1,100】。', - 'type' => 'string', - 'required' => false, - 'example' => '100', - ], + 'schema' => ['description' => '审核回调模板。取值:'."\n" + ."\n" + .'- **{DomainName}**:播流域名。'."\n" + .'- **{AppName}**:播流所属应用名称。'."\n" + .'- **{StreamName}**:播流名称。'."\n" + .'- **{Timestamp}**:Unix时间戳,返回回调时间。单位:秒。'."\n" + .'- **{Result}**:检测结果。', 'type' => 'string', 'required' => false, 'example' => '{"domain":{DomainName},"app":{AppName},"stream":{StreamName},"timestamp":{Timestamp},"result":{Result}}'], ], ], 'responses' => [ @@ -67658,123 +51308,59 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64- af62-20e91b96****', - ], - 'RuleInfoList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RuleInfo' => [ - 'description' => '字幕规则列表。', - 'type' => 'array', - 'items' => [ - 'description' => '字幕规则对象。', - 'type' => 'object', - 'properties' => [ - 'Domain' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'example' => 'demo.aliyundoc.com', - ], - 'App' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'example' => 'App Name', - ], - 'SubtitleName' => [ - 'description' => '字幕模板名称。', - 'type' => 'string', - 'example' => 'sub1', - ], - 'IsLazy' => [ - 'description' => '是否拉流触发。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RulesId' => [ - 'description' => '字幕规则ID。', - 'type' => 'string', - 'example' => '72fba656-2cc2-40fd-923c-2a10c3b9****', - ], - 'LiveTemplate' => [ - 'description' => '字幕输出规格。', - 'type' => 'string', - 'example' => 'lp_ld', - ], - 'GmtModifyTime' => [ - 'description' => '最近修改时间(时间戳)。', - 'type' => 'string', - 'example' => '1715594344000', - ], - 'SuffixName' => [ - 'description' => '字幕后缀。', - 'type' => 'string', - 'example' => 'test0506', - ], - 'StudioName' => [ - 'description' => '虚拟背景模板名称', - 'type' => 'string', - 'example' => 'test0708', - ], - 'Description' => [ - 'description' => '规则描述。', - 'type' => 'string', - 'example' => 'live AI subtitle template', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'IncorrectSubtitleStatus.%s', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '存在无效参数,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'ConfigExisted', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], + ['errorCode' => 'UnsafeCallback', 'errorMessage' => '%s, please check and try again later.', 'description' => '回调地址不安全,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\",\\n \\"RuleInfoList\\": {\\n \\"RuleInfo\\": [\\n {\\n \\"Domain\\": \\"demo.aliyundoc.com\\",\\n \\"App\\": \\"App Name\\",\\n \\"SubtitleName\\": \\"sub1\\",\\n \\"IsLazy\\": true,\\n \\"RulesId\\": \\"72fba656-2cc2-40fd-923c-2a10c3b9****\\",\\n \\"LiveTemplate\\": \\"lp_ld\\",\\n \\"GmtModifyTime\\": \\"1715594344000\\",\\n \\"SuffixName\\": \\"test0506\\",\\n \\"StudioName\\": \\"test0708\\",\\n \\"Description\\": \\"live AI subtitle template\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64- af62-20e91b96****\\n \\n demo.aliyundoc.com\\n App Name\\n sub1\\n true\\n true\\n 72fba656-2cc2-40fd-923c-2a10c3b9****\\n lp_ld\\n 1715594344000\\n test0506\\n live AI subtitle template\\n \\n","errorExample":""}]', - 'title' => '查询字幕规则', - 'description' => '本接口支持查询字幕规则列表信息,调用时请保证参数设置符合要求。'."\n" - .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" - .'>'."\n" + 'title' => '更新直播语音审核回调配置', + 'description' => '- 先获取主播流域名,再调用本接口更新直播语音审核回调配置信息。'."\n" + ."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'UpdateLiveAIProduceRules' => [ - 'summary' => '更新字幕规则。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAudioAuditNotifyConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveAudioAuditNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\n","errorExample":""}]', + ], + 'UpdateLiveCenterTransfer' => [ + 'summary' => '调用UpdateLiveCenterTransfer修改直播中心转推配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -67785,132 +51371,66 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '218935', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '主播放域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], - ], - [ - 'name' => 'App', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'AppName', - ], - ], - [ - 'name' => 'Suffix', - 'in' => 'query', - 'schema' => [ - 'description' => '后缀匹配', - 'type' => 'string', - 'required' => false, - 'example' => 'test01', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'SubtitleName', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '字幕模板名称', - 'type' => 'string', - 'required' => false, - 'example' => 'sub01', - ], + 'schema' => ['description' => '播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'StudioName', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '虚拟背景模板名称', - 'type' => 'string', - 'required' => false, - 'example' => 'sub02', - ], + 'schema' => ['description' => '直播流应用名称。输入的AppName必须与需要转推的直播流AppName保持一致,方可生效。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'testapp'], ], [ - 'name' => 'IsLazy', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '是否拉流触发。取值:'."\n" - .'- true:拉流时启动字幕,若5分钟内没有拉流则会断掉字幕,后续再有拉流才会启动。'."\n" - .'- false:只要有推流就启动字幕,与是否有拉流无关。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => true, 'example' => 'teststream'], ], [ - 'name' => 'RulesId', + 'name' => 'DstUrl', 'in' => 'query', - 'schema' => [ - 'description' => '字幕规则ID。', - 'type' => 'string', - 'required' => false, - 'example' => '445409ec-7eaa-461d -8f29-4bec2eb9****', - ], + 'schema' => ['description' => '转推的第三方直播地址,最多支持添加1个地址。'."\n" + ."\n" + .'>目标地址协议必须和转推的直播流协议一致,目前仅支持RTMP和SRT协议的转推地址。', 'type' => 'string', 'required' => true, 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2'], ], [ - 'name' => 'LiveTemplate', + 'name' => 'TransferArgs', 'in' => 'query', 'schema' => [ - 'description' => '字幕输出规格,取值:'."\n" - .'- 横屏流畅360P 640x360:`lp_ld`'."\n" - .'- 竖屏流畅 360P 360x640:`lp_ld_v`'."\n" - .'- 横屏标清 480P 854x480:`lp_sd`'."\n" - .'- 竖屏标清 480P 480x854:`lp_sd_v`'."\n" - .'- 横屏高清 720P 1280x720:`lp_hd`'."\n" - .'- 竖屏高清 720P 720x1280:`lp_hd_v`'."\n" - .'- 横屏超清 1080P 1920x1080:`lp_ud`'."\n" - .'- 竖屏超清 1080P 1080x1920:`lp_ud_v`', + 'description' => '转推有效时间。取值:'."\n" + ."\n" + .'- **always**:永久生效。'."\n" + ."\n" + .'- **time**:指定时间内有效。'."\n" + ."\n" + .'>取值为**time**时,**StartTime**和**EndTime**必填。', 'type' => 'string', - 'required' => false, - 'example' => 'lp_ld', + 'required' => true, + 'enumValueTitles' => ['always' => '永久生效', 'time' => '指定时间内有效'], + 'example' => 'always', + 'enum' => ['always', 'time'], ], ], [ - 'name' => 'SubtitleId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '字幕模板ID。', - 'type' => 'string', - 'required' => false, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['description' => '转推开始时间。'."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-12-21T10:00:00Z'], ], [ - 'name' => 'Description', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '字幕规则描述。可包含中英文、数字、字符,不超过128位。', - 'type' => 'string', - 'required' => false, - 'example' => 'live AI subtitle template', - ], + 'schema' => ['description' => '转推结束时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'>结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2017-12-22T08:00:00Z'], ], ], 'responses' => [ @@ -67918,170 +51438,164 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7908F2FF-44F8-120F-9FD6-85AE4B6C19EC'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'CodeIllegalDuration', 'errorMessage' => 'param end_time is before start_time', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64-af62-20e91b96****\\n","errorExample":""}]', - 'title' => '更新实时字幕规则', - 'description' => '本接口支持对指定字幕规则各项参数进⾏更新调整。'."\n" - ."\n" - .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" - .'>'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'AddLiveAIProduceRules' => [ - 'summary' => '添加字幕规则。', - 'methods' => [ - 'post', - 'get', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', + 'title' => '修改直播中心转推配置', + 'description' => '本接口仅支持修改**转推有效时间**(TransferArgs、StartTime、EndTime)相关配置'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。、', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveCenterTransfer'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveCenterTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'UpdateLiveDelayConfig' => [ + 'summary' => '更新直播延播配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '218952', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveBP94ZY'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域id。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => '直播流应用名称。不超过256字符,支持数字、大小写字母、短划线(-)、下划线(_)AppName名称与推流地址中的AppName名称对应,模板才能生效。', - 'type' => 'string', - 'required' => true, - 'example' => 'AppName', - ], + 'schema' => ['description' => '直播流所属应用名称。支持通配符*,代表该域名下所有的AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'Suffix', + 'name' => 'Stream', 'in' => 'query', - 'schema' => [ - 'description' => '后缀匹配', - 'type' => 'string', - 'required' => false, - 'example' => 'test01', - ], + 'schema' => ['description' => '直播流流名称。支持通配符*,代表该AppName下所有的StreamName。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], ], [ - 'name' => 'SubtitleName', + 'name' => 'DelayTime', 'in' => 'query', - 'schema' => [ - 'description' => '字幕模板名称', - 'type' => 'string', - 'required' => false, - 'example' => 'sub01', - ], + 'schema' => ['description' => '直播流延迟播放的时长,仅支持整数。取值:16~3600。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '60'], ], [ - 'name' => 'StudioName', + 'name' => 'TaskTriggerMode', 'in' => 'query', + 'schema' => ['description' => '任务触发模式,取值:'."\n" + ."\n" + .'- **PUBLISH_ONLY** :仅支持带延播推流参数触发。'."\n" + ."\n" + .'- **CONFIG_ONLY** :仅支持配置触发,推流参数无效。'."\n" + ."\n" + .'- **PUBLISH_CONFIG** :同时支持推流和配置,并且推流参数高优于配置。', 'type' => 'string', 'required' => false, 'example' => 'PUBLISH_ONLY'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '虚拟背景模板名称', - 'type' => 'string', - 'required' => false, - 'example' => 'sub02', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameters', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ], + ], + 'title' => '更新直播延播配置', + 'description' => '本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveDelayConfig'], + ], + ], + 'ramActions' => [ [ - 'name' => 'IsLazy', - 'in' => 'query', - 'schema' => [ - 'description' => '拉流触发。取值:'."\n" - .'- true:拉流时启动字幕,若5分钟内没有拉流则会断掉字幕,后续再有拉流才会启动。'."\n" - .'- false:只要有推流就启动字幕,与是否有拉流无关。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:UpdateLiveDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'UpdateLiveDetectNotifyConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'LiveTemplate', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveUTGSNT'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '字幕输出规格,取值:'."\n" - .'- 横屏流畅 360P 640x360:`lp_ld`'."\n" - .'- 竖屏流畅 360P 360x640:`lp_ld_v`'."\n" - .'- 横屏标清 480P 854x480:`lp_sd`'."\n" - .'- 竖屏标清 480P 480x854:`lp_sd_v`'."\n" - .'- 横屏高清 720P 1280x720:`lp_hd`'."\n" - .'- 竖屏高清 720P 720x1280:`lp_hd_v`'."\n" - .'- 横屏超清 1080P 1920x1080:`lp_ud`'."\n" - .'- 竖屏超清 1080P 1080x1920:`lp_ud_v`', - 'type' => 'string', - 'required' => true, - 'example' => 'lp_ld', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'Description', + 'name' => 'NotifyUrl', 'in' => 'query', - 'schema' => [ - 'description' => '字幕规则描述。可包含中英文、数字、字符,不超过128位。', - 'type' => 'string', - 'required' => false, - 'example' => 'live AI subtitle template', - ], + 'schema' => ['description' => '发现涉黄等违规内容的回调地址。', 'type' => 'string', 'required' => true, 'example' => 'http://guide.aliyundoc.com/examplecallback.action'], ], ], 'responses' => [ @@ -68089,297 +51603,439 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', - ], - 'RulesId' => [ - 'description' => '字幕规则ID。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidNotifyUrl.Malformed', 'errorMessage' => 'Specified NotifyUrl is invalid.', 'description' => '指定的notifyurl错误,请您确认该notifyurl参数是否正确。'], + ['errorCode' => 'InvalidNotifyUrl.Unsafe', 'errorMessage' => 'Specified NotifyUrl is not safe.', 'description' => '指定的notifyurl错误,请您确认该notifyurl参数是否正确。'], + ['errorCode' => 'InvalidParams', 'errorMessage' => 'Invalid Params.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidConfig.NotFound', 'errorMessage' => 'Config does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\",\\n \\"RulesId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64-af62-20e91b96****\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', - 'title' => '添加实时字幕规则', - 'description' => '- 调用[AddLiveAISubtitle](~~2848222~~)接口添加字幕模板后,可使用本接口添加字幕规则。'."\n" - ."\n" - .'- 播放字幕流需要在播放地址的StreamName后加_{字幕模板名称}:'."\n" - .' - RTMP:rtmp://example.aliyundoc.com/app/stream_{字幕模板名称}?auth_key={鉴权串}'."\n" - .' - FLV:http://example.aliyundoc.com/app/stream_{字幕模板名称}.flv?auth_key={鉴权串}'."\n" - .' - M3U8:http://example.aliyundoc.com/app/stream_{字幕模板名称}.m3u8?auth_key={鉴权串}'."\n" - ."\n" - .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" - .'>'."\n" + 'title' => '更新直播审核回调配置', + 'summary' => '更新直播审核回调通知地址。', + 'description' => '- 先获取主播流域名,再调用本接口更新直播审核回调通知地址。'."\n" ."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + ."\n\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'AddLiveAISubtitle' => [ - 'summary' => '调用AddLiveAISubtitle添加字幕模板。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveDetectNotifyConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveDetectNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'UpdateLiveMPUTask' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '220749', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '178411', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '应用ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourAppId'], ], [ - 'name' => 'SubtitleName', + 'name' => 'ChannelId', 'in' => 'query', - 'schema' => [ - 'description' => '字幕模板名称,仅支持数字、大小写字母或短横线-,短横线不和位于首位。', - 'type' => 'string', - 'required' => true, - 'example' => 'sub01', - ], + 'schema' => ['description' => '频道ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourChannelId'], ], [ - 'name' => 'SrcLanguage', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '源语言,取值:'."\n" - .'- 英文:en-US'."\n" - .'- 中文:zh-CN'."\n" - .'- 俄文:ru-RU', - 'type' => 'string', - 'required' => true, - 'example' => 'zh-CN', - ], + 'schema' => ['description' => '任务ID,仅支持传单个ID。由大小写字母、数字、下划线、短划线(-)组成,最大55字符。此ID为旁路转推的标识,需保证唯一。', 'type' => 'string', 'required' => true, 'example' => 'yourTaskId'], ], [ - 'name' => 'DstLanguage', + 'name' => 'MixMode', 'in' => 'query', - 'schema' => [ - 'description' => '翻译目标语言,取值:'."\n" - .'- 英文:en-US'."\n" - .'- 中文:zh-CN'."\n" - .'- 西班牙文:es-ES'."\n" - .'- 俄文:ru-RU', - 'type' => 'string', - 'required' => false, - 'example' => 'zh-CN', - ], + 'schema' => ['description' => '混流模式。取值:'."\n" + .'- **0**:单路转推,不混流转码,仅转推原始单路流,无需配置混流转码参数。'."\n" + .'- **1(默认值)**:混流转码转推。', 'type' => 'string', 'required' => false, 'example' => '0'], ], [ - 'name' => 'FontColor', + 'name' => 'StreamURL', 'in' => 'query', - 'schema' => [ - 'description' => '字体颜色,RGBA值。', - 'type' => 'string', - 'required' => false, - 'example' => '0xFFFFFF', - ], + 'schema' => ['description' => '直播推流地址,仅支持RTMP协议,仅支持传单个地址,最大长度不超过2048个字符。生成规则请参见[推流地址和播放地址](~~199339~~)。'."\n" + .'>- 对已开防盗链鉴权的域名,需要在推流地址中包含鉴权串。'."\n" + .'- 禁止同一个StreamURL在不同任务中同时使用。'."\n" + .'- 任务停止10S之内,禁止使用同一个StreamURL。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://example.com/live/stream'], ], [ - 'name' => 'FontName', + 'name' => 'MultiStreamURL', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '字体,取值:'."\n" - .'- KaiTi-楷体,默认'."\n" - .'- AlibabaPuHuiTi-Regular-阿里巴巴普惠体-常规'."\n" - .'- AlibabaPuHuiTi-Bold-阿里巴巴普惠体-粗体'."\n" - .'- AlibabaPuHuiTi-Light-阿里巴巴普惠体-细体'."\n" - .'- NotoSansHans-Regular-思源黑体-常规'."\n" - .'- NotoSansHans-Bold-思源黑体-粗体'."\n" - .'- NotoSansHans-Light-思源黑体-细体', - 'type' => 'string', + 'description' => '多地址转推参数,可填写多个直播推流地址。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'URL' => ['description' => '直播推流地址,仅支持RTMP协议,最大长度不超过2048个字符。生成规则请参见[推流地址和播放地址](~~199339~~)。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://example.com/live/stream****'], + 'IsAliCdn' => ['description' => '是否转推到阿里云CDN。'."\n" + .'- false为转推非阿里云CDN。'."\n" + .'- true为转推阿里云CDN。'."\n" + .'> 该参数默认为false。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + 'required' => false, + 'description' => '', + ], 'required' => false, - 'example' => 'KaiTi', ], ], [ - 'name' => 'BgColor', + 'name' => 'SingleSubParams', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '字幕背景颜色,RGBA值。', - 'type' => 'string', + 'description' => '单流转推参数,单流转推(MixMode=0)时必填。', + 'type' => 'object', + 'properties' => [ + 'SourceType' => ['description' => '单流转推模式下视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" + .'- **camera(默认值)**:摄像头。'."\n" + .'- **shareScreen**:屏幕共享。', 'type' => 'string', 'required' => false, 'example' => 'camera'], + 'StreamType' => ['description' => '单流转推模式下转推流类型。取值:'."\n" + .'- **0(默认值)**:转推原始流。'."\n" + .'- **1**:仅转推音频流。'."\n" + .'- **2**:仅转推视频流。', 'type' => 'string', 'required' => false, 'example' => '0'], + 'UserId' => ['description' => '转推用户ID,一次只能转推一路流。', 'type' => 'string', 'required' => true, 'example' => 'yourSubUserId'], + ], 'required' => false, - 'example' => '0xFF0000', ], ], [ - 'name' => 'PositionNormalized', + 'name' => 'TranscodeParams', 'in' => 'query', 'style' => 'json', 'schema' => [ - 'description' => '字幕位置信息', - 'type' => 'array', - 'items' => [ - 'description' => '字幕位置。以屏幕左下角为起点的x,y轴。'."\n" - .'> x,y需要进行归一化计算。实际数值需要乘以画面高度。如画面高度为720p设置的PositionNormalized为[0.1,0.5] ,则字幕的实际位置是 x轴为72,y轴为360。 ', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '[0.32,0.27]', + 'description' => '混流转码转推参数,混流转码转推(MixMode=1)时必填。', + 'type' => 'object', + 'properties' => [ + 'Background' => [ + 'description' => '混流全局背景图。', + 'type' => 'object', + 'properties' => [ + 'RenderMode' => ['description' => '子画面输出时的显示模式:'."\n" + .'- **0**:缩放并显示黑底。'."\n" + .'- **1(默认)**:裁剪。', 'type' => 'string', 'required' => false, 'example' => '1'], + 'URL' => ['description' => '全局背景图URL。', 'type' => 'string', 'required' => false, 'example' => 'yourImageUrl'], + ], + 'required' => false, + ], + 'EncodeParams' => [ + 'description' => '转推输出的编码参数。', + 'type' => 'object', + 'properties' => [ + 'AudioOnly' => ['description' => '是否为纯音频,取值:'."\n" + .'- **true**:纯音频,仅需要设置音频相关参数。'."\n" + .'- **false(默认值)**:非纯音频,除VideoCodec参数与EnhancedParam参数外,其它参数均不能为空。', 'type' => 'string', 'required' => false, 'example' => 'false'], + 'AudioBitrate' => ['description' => '音频码率,取值范围:\\[8, 500\\],单位:kbps。', 'type' => 'string', 'required' => false, 'example' => '128'], + 'AudioChannels' => ['description' => '音频声道数,取值:1、2。', 'type' => 'string', 'required' => false, 'example' => '2'], + 'AudioSampleRate' => ['description' => '音频采样率,取值:8000、16000、32000、44100、48000,单位:Hz。', 'type' => 'string', 'required' => false, 'example' => '44100'], + 'VideoCodec' => ['description' => '视频编码格式。取值:'."\n" + .'- H.264(默认值)。'."\n" + .'- H.265。', 'type' => 'string', 'required' => false, 'example' => 'H.264'], + 'VideoBitrate' => ['description' => '视频码率,取值范围:\\[1, 10000\\],单位:kbps。', 'type' => 'string', 'required' => false, 'example' => '3500'], + 'VideoFramerate' => ['description' => '视频帧率,取值范围:\\[1, 60\\],单位:fps。', 'type' => 'string', 'required' => false, 'example' => '25'], + 'VideoGop' => ['description' => '视频GOP,取值范围:\\[1, 60\\]。', 'type' => 'string', 'required' => false, 'example' => '20'], + 'VideoHeight' => ['description' => '视频高,取值范围:\\[0, 1920\\],单位:px。', 'type' => 'string', 'required' => false, 'example' => '1000'], + 'VideoWidth' => ['description' => '视频宽,取值范围:\\[0, 1920\\],单位:px。', 'type' => 'string', 'required' => false, 'example' => '1920'], + 'EnhancedParam' => ['description' => '编码增强参数,JSON字符串,目前支持的可选配置包括profile与preset。'."\n" + .'- profile:编码级别。当视频编码格式为H.264时,profile支持的可选值包括:"baseline", "main", "high";当视频编码格式为H.265时,profile支持的可选值包括:"main"。'."\n" + ."\n" + .'- preset:调节编码速度和质量的平衡。preset支持的可选值包括:"ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow" "placebo"。每个值代表了一种编码速度与输出视频质量的策略,从"ultrafast"(极快,编码速度优先)到"placebo"(追求极致质量,编码极慢)。'."\n" + ."\n" + .'> 例如设置superfast,主要用于实时通讯领域。建议非编码器专业技术人员,不设置该选项。', 'type' => 'string', 'required' => false, 'example' => '{"profile": "high", "preset": "veryfast"}'], + ], + 'required' => false, + ], + 'Layout' => [ + 'description' => '视频布局信息。'."\n" + .'> 视频转码时,需要指定视频布局信息,包括布局坐标(X,Y),布局窗格(Width,Height),叠放顺序(ZOrder);纯音频转码时,禁止填写视频布局信息。', + 'type' => 'object', + 'properties' => [ + 'UserPanes' => [ + 'description' => '混流用户窗格信息。', + 'type' => 'array', + 'items' => [ + 'description' => '混流用户窗格信息。', + 'type' => 'object', + 'properties' => [ + 'UserInfo' => [ + 'description' => '该窗格对应的混流用户信息,不填时后台按照上行主播的进房顺序自动填充。'."\n" + ."\n" + .'> - 如果指定混流用户信息,该用户信息需要已在TranscodeParams.UserInfos参数中配置。'."\n" + .'- 仅针对原始流和视频流有效。', + 'type' => 'object', + 'properties' => [ + 'SourceType' => ['description' => '混流转码模模式下视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" + .'- **camera(默认值)**:摄像头。'."\n" + .'- **shareScreen**:屏幕共享。', 'type' => 'string', 'required' => false, 'example' => 'camera'], + 'ChannelId' => ['description' => '混流用户所在的频道ID,同频道内混流的用户可不填,跨频道混流时建议填写该参数。', 'type' => 'string', 'required' => false, 'example' => 'yourChannelId'], + 'UserId' => ['description' => '混流用户ID。', 'type' => 'string', 'required' => false, 'example' => 'yourSubUserId'], + ], + 'required' => false, + ], + 'Height' => ['description' => '窗格高,归一化百分比。', 'type' => 'string', 'required' => false, 'example' => '0.2632'], + 'Width' => ['description' => '窗格宽,归一化百分比。', 'type' => 'string', 'required' => false, 'example' => '0.3564'], + 'X' => ['description' => '坐标X,归一化百分比。', 'type' => 'string', 'required' => false, 'example' => '0.2456'], + 'Y' => ['description' => '坐标Y,归一化百分比。', 'type' => 'string', 'required' => false, 'example' => '0.3789'], + 'ZOrder' => ['description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。', 'type' => 'string', 'required' => false, 'example' => '0'], + 'BackgroundImageUrl' => ['description' => '子画面的背景图URL。当用户关闭摄像头或未进入房间时,会在布局位置填充为此图片。', 'type' => 'string', 'required' => false, 'example' => 'yourImageUrl'], + 'RenderMode' => ['description' => '子画面输出时的显示模式,取值:'."\n" + .'- **0**:缩放并显示黑底。'."\n" + .'- **1(默认值)**:裁剪。', 'type' => 'string', 'required' => false, 'example' => '1', 'default' => '1'], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'UserInfos' => [ + 'description' => '混流时订阅的用户信息,不指定用户则所有用户混流。', + 'type' => 'array', + 'items' => [ + 'description' => '混流用户信息。', + 'type' => 'object', + 'properties' => [ + 'SourceType' => ['description' => '混流时订阅的视频输入流类型,仅针对视频流(StreamType=2)有效。取值:'."\n" + .'- **camera(默认值)**:摄像头。'."\n" + .'- **shareScreen**:屏幕共享。', 'type' => 'string', 'required' => false, 'example' => 'camera'], + 'StreamType' => ['description' => '混流时订阅的转推流类型。取值:'."\n" + .'- **0(默认值)**:转推原始流。'."\n" + .'- **1**:仅转推音频流。'."\n" + .'- **2**:仅转推视频流。', 'type' => 'string', 'required' => false, 'example' => '0'], + 'ChannelId' => ['description' => '混流时订阅用户所在的频道ID,同频道内混流的用户可不填,跨频道混流时建议填写该参数。', 'type' => 'string', 'required' => false, 'example' => 'yourChannelId'], + 'UserId' => ['description' => '混流时订阅的用户ID。', 'type' => 'string', 'required' => true, 'example' => 'yourSubUserId'], + ], + 'required' => false, + ], + 'required' => false, + ], ], - 'required' => true, + 'required' => false, ], ], [ - 'name' => 'ShowSourceLan', + 'name' => 'SeiParams', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '是否显示源语言,ShowSourceLan默认为false。', - 'type' => 'boolean', + 'description' => 'SEI配置参数。', + 'type' => 'object', + 'properties' => [ + 'LayoutVolume' => [ + 'description' => '布局和音量SEI,该参数内容可以为空,表示携带默认的布局和音量SEI。', + 'type' => 'object', + 'properties' => [ + 'FollowIdr' => ['description' => '发送IDR关键帧时是否确保携带SEI,取值:'."\n" + .'- **0**:不确保带SEI。'."\n" + .'- **1**:确保带SEI。', 'type' => 'string', 'required' => false, 'example' => '0'], + 'Interval' => ['description' => 'SEI发送间隔,取值范围:\\[1000, 5000\\],单位:毫秒。', 'type' => 'string', 'required' => false, 'example' => '1000'], + ], + 'required' => false, + ], + 'PassThrough' => [ + 'description' => '透传SEI。', + 'type' => 'object', + 'properties' => [ + 'FollowIdr' => ['description' => '发送IDR关键帧时是否确保携带SEI,取值:'."\n" + .'- **0**:不确保带SEI。'."\n" + .'- **1**:确保带SEI。', 'type' => 'string', 'required' => false, 'example' => '0'], + 'Interval' => ['description' => 'SEI发送间隔,取值范围:\\[1000, 5000\\],单位:毫秒。', 'type' => 'string', 'required' => false, 'example' => '1000'], + 'PayloadContent' => ['description' => '透传SEI的payload内容。', 'type' => 'string', 'required' => false, 'example' => 'yourPayloadContent'], + 'PayloadContentKey' => ['description' => '透传SEI的payload内容对应的key值。不设置时,key为默认值udd。', 'type' => 'string', 'required' => false, 'example' => 'yourPayloadContentKey'], + ], + 'required' => false, + ], + ], 'required' => false, - 'example' => 'true', ], ], - [ - 'name' => 'MaxLines', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '显示行数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0F72851F-5DC1-1979-9B2C-450040316C3E'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], + ['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId无效,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => '%s, please check and try again later.', 'description' => '无权限,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''], + ], + ], + 'title' => '更新混流转推任务(新)', + 'summary' => '更新混流转推任务。', + 'description' => '调用本接口前,您必须已经调用[StartLiveMPUTask](~~2848199~~)创建混流转推任务。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为500次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-10-30T08:35:04.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-08-13T08:23:10.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-08-06T07:59:24.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-07-04T07:02:34.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2024-06-12T05:51:31.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-03-06T17:46:44.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-03-01T07:39:35.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2023-12-26T06:01:15.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveMPUTask'], + ], + ], + 'ramActions' => [ [ - 'name' => 'WordPerLine', - 'in' => 'query', - 'schema' => [ - 'description' => '每行显示字数,取值范围:支持输入【1,500】内的整数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '20', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveMPUTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0F72851F-5DC1-1979-9B2C-450040316C3E\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 0F72851F-5DC1-1979-9B2C-450040316C3E\\n","errorExample":""}]', + ], + 'UpdateLivePackageConfig' => [ + 'summary' => '调用UpdateLivePackageConfig更新直播封装配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREliveJAENGU'], + ], + 'parameters' => [ [ - 'name' => 'FontSizeNormalized', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '字体尺寸,取值范围:【0,1】', - 'type' => 'number', - 'format' => 'float', - 'required' => true, - 'example' => '0.037', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'BorderWidthNormalized', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '字体粗细,取值范围:【0,1】', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0.05', - ], + 'schema' => ['description' => '直播域名(主播放域名)。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'BgWidthNormalized', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '字幕背景尺寸,取值范围:【0,1】', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0.09', - ], + 'schema' => ['description' => 'AppName 名称与推流地址中的 AppName 名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有AppName。', 'type' => 'string', 'required' => true, 'example' => 'AppName'], ], [ - 'name' => 'CopyFrom', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '复制的字幕模板,传值SubtitleName', - 'type' => 'string', - 'required' => false, - 'example' => 'sub01', - ], + 'schema' => ['description' => 'StreamName 名称与推流地址中的 StreamName 名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有StreamName。', 'type' => 'string', 'required' => true, 'example' => 'StreamName'], ], [ - 'name' => 'Description', + 'name' => 'Protocol', 'in' => 'query', - 'schema' => [ - 'description' => '自定义字幕描述信息。可包含中英文、数字、字符,不超过128位。', - 'type' => 'string', - 'required' => false, - 'example' => 'live AI subtitle template', - ], + 'schema' => ['description' => '直播协议与封装格式。取值:'."\n" + ."\n" + .'- **HLS_CMAF**'."\n" + ."\n" + .'- **LLHLS_TS**'."\n" + .'(低延迟)'."\n" + ."\n" + .'- **LLHLS_CMAF**(低延迟)'."\n" + .'- **DASH_CMAF**'."\n" + .'- **HLSDASH_CMAF**', 'type' => 'string', 'required' => true, 'example' => 'HLS_CMAF'], ], [ - 'name' => 'Width', + 'name' => 'SegmentNum', 'in' => 'query', - 'schema' => [ - 'description' => '预览画面宽度,单位:px', - 'type' => 'string', - 'required' => false, - 'example' => '1280', - ], + 'schema' => ['description' => '直播M3U8切片个数。取值范围:3~10。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '3'], ], [ - 'name' => 'Height', + 'name' => 'SegmentDuration', 'in' => 'query', - 'schema' => [ - 'description' => '预览画面高度,单位:px'."\n" - ."\n" - .'预览画面宽度x高度仅支持以下规格: '."\n" - .'- 横屏流畅 360P 640x360 '."\n" - .'- 竖屏流畅 360P 360x640'."\n" - .'- 横屏标清 480P 854x480'."\n" - .'- 竖屏标清 480P 480x854'."\n" - .'- 横屏高清 720P 1280x720'."\n" - .'- 竖屏高清 720P 720x1280'."\n" - .'- 横屏超清 1080P 1920x1080'."\n" - .'- 竖屏超清 1080P 1080x1920', - 'type' => 'string', - 'required' => false, - 'example' => '720', - ], + 'schema' => ['description' => '切片时长,单位:秒。'."\n" + ."\n" + .'- 如Protocol为HLS_CMAF,取值范围1~10s。'."\n" + ."\n" + .'- 如Protocol为LLHLS_*,取值范围1~2s。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '5'], + ], + [ + 'name' => 'PartDuration', + 'in' => 'query', + 'schema' => ['description' => 'Part切片时长,单位:毫秒。'."\n" + ."\n" + .'> 当Protocol为LLHLS_*时,该参数为必填项。'."\n" + .'- SegmentDuration为1s时,取值范围100~500ms。'."\n" + .'- SegmentDuration为2s时,取值范围100~1000ms。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '350'], + ], + [ + 'name' => 'IgnoreTranscode', + 'in' => 'query', + 'schema' => ['description' => '是否忽略转码流,取值:'."\n" + ."\n" + .'- **true**(默认值):忽略。'."\n" + ."\n" + .'- **false**:不忽略。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ @@ -68387,112 +52043,113 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', - ], - 'SubtitleId' => [ - 'description' => '字幕模板ID。', - 'type' => 'string', - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'InvalidParams', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数无效,请检查后重试。'], + ['errorCode' => 'InvalidProtocol', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数Protocol无效,请检查后重试。'], + ['errorCode' => 'InvalidSegmentNum', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SegmentNum无效,请检查后重试。'], + ['errorCode' => 'InvalidSegmentDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数SegmentDuration无效,请检查后重试。'], + ['errorCode' => 'InvalidPartDuration', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数PartDuration无效,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again.', 'description' => '配置不存在,请检查后重试。'], + ], + 409 => [ + ['errorCode' => 'ConfigConflicts', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置冲突,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalErr', 'errorMessage' => '%s, please try again.', 'description' => '内部错误,请稍后重试。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\",\\n \\"SubtitleId\\": \\"445409ec-7eaa-461d-8f29-4bec2eb9****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64-af62-20e91b96****\\n 445409ec-7eaa-461d-8f29-4bec2eb9****\\n","errorExample":""}]', - 'title' => '添加直播字幕模板', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 本接口支持添加直播字幕模板配置,模板配置支持描述字幕内容、布局等信息。'."\n" - .'- 添加字幕模板后,您还需要调用[AddLiveAIProduceRules](~~2799676~~)接口添加字幕规则,重新推流后,播流中才能带字幕。'."\n" - .'- 实时字幕仅支持北京、上海、新加坡、印尼、沙特区域。'."\n" - ."\n" - .'>当前实时字幕功能处于公测阶段,单个用户最多可添加300个字幕模板。暂时免费使用,公测结束后将正常收费,具体时间另行通知。'."\n" - .'>'."\n" + 'title' => '更新直播封装配置', + 'description' => '调用本接口更新直播封装配置,重新推流后生效。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DeleteLiveAISubtitle' => [ - 'summary' => '调用DeleteLiveAISubtitle删除指定字幕模板。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为300次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLivePackageConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'live:UpdateLivePackageConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'UpdateLivePullStreamInfoConfig' => [ + 'summary' => '更新直播拉流配置信息,包括源站地址、开始时间和结束时间。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '218856', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'SubtitleId', + 'name' => 'DomainName', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '字幕模板ID。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['description' => '您的拉流域名为用户的主播流域名。'."\n" + .'> - 传入DomainName时,请保证传入域名为直播域名,同时调用本接口的用户拥有传入域名的操作权限。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'SubtitleName', + 'name' => 'AppName', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => '字幕模板名称,仅支持数字、大小写字母或短横线-,短横线不和位于首位。', - 'type' => 'string', - 'required' => false, - 'example' => 'sub01', - ], + 'schema' => ['description' => '直播流所属应用名称。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'StreamName', + 'in' => 'query', + 'schema' => ['description' => '直播流名。', 'type' => 'string', 'required' => true, 'example' => 'liveStream****'], + ], + [ + 'name' => 'SourceUrl', + 'in' => 'query', + 'schema' => ['description' => '用户的直播流所在的源站完整url。多个源站可以填多个地址,用英文分号(;)分隔。', 'type' => 'string', 'required' => true, 'example' => 'rtmp://guide.aliyundoc.com/liveApp****/liveStream****;rtmp://developer.aliyundoc.com/liveApp****/liveStream****'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '拉流开始时间。'."\n" + ."\n" + .'StartTime和EndTime时间间隔在7天内。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2017-12-21T08:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '拉流结束时间。'."\n" + ."\n" + .'StartTime和EndTime时间间隔在7天内,且EndTime超过当前时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', 'type' => 'string', 'required' => true, 'example' => '2017-12-22T08:00:00Z'], ], ], 'responses' => [ @@ -68500,422 +52157,321 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'Specified StartTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'Specified EndTime is malformed.', 'description' => ''], + ['errorCode' => 'InvalidParam', 'errorMessage' => 'Parameter invalid.', 'description' => '输入参数不合法'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'Specified end time does not math the specified start time.', 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['errorCode' => 'Duration.Exceed', 'errorMessage' => 'Duration between StartTime and EndTime is too long.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64-af62-20e91b96****\\n","errorExample":""}]', - 'title' => '删除字幕模板', - 'description' => '本接口支持删除直播指定的字幕模板。'."\n" + 'title' => '更新直播拉流配置', + 'description' => '本接口目前适用于固定拉流。调用本接口更新直播拉流配置信息,包括源站地址、开始时间和结束时间。'."\n" ."\n" - .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" - .'>'."\n" + .'> 调用本接口修改配置后,直播服务会按照修改后配置重新执行固定拉流,请确保修改操作不会影响线上业务。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'UpdateLiveAISubtitle' => [ - 'summary' => '调用UpdateLiveAISubtitle更新字幕模板。', - 'methods' => [ - 'post', - 'get', + ."\n" + .'本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => '## 特殊错误码'."\n" + .'| 错误代码 | 描述 | HTTP 状态码 | 语义 |'."\n" + .'|------------|--------|---------|------|'."\n" + .'| InternalError | The request processing has failed due to some unknown error. | 500 | 后台发生未知错误 |'."\n" + .'| InvalidDomain.NotFound | The domain provided does not exist in our records. | 404 | 当前账户下未查到域名 |'."\n" + .'| IllegalOperation | Illegal domain operate is not permitted. | 403 | 不支持当前操作,如:非直播类域名 |'."\n" + .'| Duration.Exceed | Duration between StartTime and EndTime is too long. | 400 | 查询时间范围过长|', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLivePullStreamInfoConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLivePullStreamInfoConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', + ], + 'UpdateLivePullToPush' => [ + 'summary' => '调用UpdateLivePullToPush更新拉流转推任务。', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '218740', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '240074', + 'abilityTreeNodes' => ['FEATURElive9P39J9'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'SubtitleName', - 'in' => 'query', - 'schema' => [ - 'description' => '字幕模板名称,仅支持数字、大小写字母或短横线-,短横线不和位于首位。', - 'type' => 'string', - 'required' => false, - 'example' => 'live AI subtitle template', - ], - ], - [ - 'name' => 'SrcLanguage', - 'in' => 'query', - 'schema' => [ - 'description' => '源语言,取值:'."\n" - .'- 英文:en-US'."\n" - .'- 中文:zh-CN'."\n" - .'- 俄文:ru-RU', - 'type' => 'string', - 'required' => false, - 'example' => 'zh-CN', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-beijing', 'default' => 'cn-shanghai'], ], [ - 'name' => 'DstLanguage', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '翻译目标语言,取值:'."\n" - .'- 英文:en-US'."\n" - .'- 中文:zh-CN'."\n" - .'- 西班牙文:es-ES'."\n" - .'- 俄文:ru-RU', - 'type' => 'string', - 'required' => false, - 'example' => 'zh-CN', - ], + 'schema' => ['description' => '任务ID。', 'type' => 'string', 'required' => true, 'example' => 'fd245384-4067-4f91-9d75-9666a6bc****'], ], [ - 'name' => 'FontColor', + 'name' => 'Region', 'in' => 'query', 'schema' => [ - 'description' => '字体颜色,RGBA值。', + 'description' => '指定任务启动所在区域,取值:'."\n" + ."\n" + .'- ap-southeast-1(新加坡)'."\n" + .'- ap-southeast-5(印度尼西亚)'."\n" + .'- cn-beijing(北京)'."\n" + .'- cn-shanghai(上海)', 'type' => 'string', - 'required' => false, - 'example' => '0xFFFFFF', + 'required' => true, + 'enumValueTitles' => ['cn-shenzhen' => '深圳', 'cn-qingdao' => '青岛', 'preregion' => '预发', 'cn-beijing' => '北京', 'cn-shanghai' => '上海', 'ap-southeast-1' => '新加坡', 'eu-central-1' => '德国-法兰克福', 'ap-northeast-1' => '日本-东京', 'ap-southeast-5' => '印度尼西亚', 'me-central-1' => '沙特-利雅得'], + 'example' => 'cn-shanghai', + 'enum' => ['ap-northeast-1', 'ap-southeast-1', 'ap-southeast-5', 'eu-central-1', 'me-central-1', 'cn-beijing', 'cn-shanghai', 'cn-shenzhen', 'cn-qingdao', 'preregion'], ], ], [ - 'name' => 'FontName', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '字体,取值:'."\n" - .'- KaiTi-楷体,默认'."\n" - .'- AlibabaPuHuiTi-Regular-阿里巴巴普惠体-常规'."\n" - .'- AlibabaPuHuiTi-Bold-阿里巴巴普惠体-粗体'."\n" - .'- AlibabaPuHuiTi-Light-阿里巴巴普惠体-细体'."\n" - .'- NotoSansHans-Regular-思源黑体-常规'."\n" - .'- NotoSansHans-Bold-思源黑体-粗体'."\n" - .'- NotoSansHans-Light-思源黑体-细体', - 'type' => 'string', - 'required' => false, - 'example' => 'KaiTi', - ], + 'schema' => ['description' => '任务开始时间。'."\n" + .'> - 格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'> - 若任务已经启动运行则更新无效。', 'type' => 'string', 'required' => false, 'example' => '2024-08-23T15:30:00Z'], ], [ - 'name' => 'BgColor', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '字幕背景颜色,RGBA值。', - 'type' => 'string', - 'required' => false, - 'example' => '0xFF0000', - ], + 'schema' => ['description' => '任务结束时间。'."\n" + .'> - 格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" + .'> - EndTime必须大于StartTime。'."\n" + .'> - EndTime必须大于当前时间。'."\n" + .'> - 若任务已结束退出则更新无效。', 'type' => 'string', 'required' => false, 'example' => '2024-08-27T14:30:00Z'], ], [ - 'name' => 'PositionNormalized', + 'name' => 'SourceUrls', 'in' => 'query', 'style' => 'json', 'schema' => [ - 'description' => '字幕位置信息', + 'description' => '源流URL地址列表。'."\n" + ."\n" + .'> - live类型仅支持填写1个完整直播播放URL。'."\n" + .'> - vod、url类型可填写最多30个。'."\n" + .'> - live类型支持:rtmp、srt、http-flv协议。'."\n" + .'> - vod类型填写阿里云视频点播媒资ID。'."\n" + .'> - url类型支持:mp4、http-flv协议。'."\n" + .'> - 针对直播源流可立即生效;针对视频文件源流,需要等当前正在播放视频结束后生效,生效后基于最新视频列表从头开始播放。'."\n" + .'> - 需要在任务停止运行的状态下更新,重启后生效。', 'type' => 'array', - 'items' => [ - 'description' => '字幕位置,以屏幕左下角为起点的x,y轴。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '[0.32,0.27]', - ], - 'required' => false, - ], - ], - [ - 'name' => 'ShowSourceLan', - 'in' => 'query', - 'schema' => [ - 'description' => '是否显示源语言,ShowSourceLan默认为false。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'MaxLines', - 'in' => 'query', - 'schema' => [ - 'description' => '显示行数', - 'type' => 'integer', - 'format' => 'int32', + 'items' => ['description' => '源流URL地址。'."\n" + ."\n" + .'> - live类型仅支持填写1个完整直播播放URL。'."\n" + .'> - vod、url类型可填写最多30个。'."\n" + .'> - live类型支持:rtmp、srt、http-flv协议。'."\n" + .'> - vod类型填写阿里云视频点播媒资ID。'."\n" + .'> - url类型支持:mp4、http-flv协议。'."\n" + .'> - 针对直播源流可立即生效;针对视频文件源流,需要等当前正在播放视频结束后生效,生效后基于最新视频列表从头开始播放。'."\n" + .'> - 需要在任务停止运行的状态下更新,重启后生效。', 'type' => 'string', 'required' => false, 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434'], 'required' => false, - 'example' => '2', + 'example' => 'changedtesturl', ], ], [ - 'name' => 'WordPerLine', + 'name' => 'RepeatNumber', 'in' => 'query', 'schema' => [ - 'description' => '每行显示字数,取值范围:支持输入【1,500】内的整数', + 'description' => '播放完后重复继续播放的次数。取值:'."\n" + ."\n" + .'- 0(默认值):不重复播放。'."\n" + .'- -1:一直循环重复。'."\n" + .'- 其他正整数:播放完后重复继续播放的次数。'."\n" + ."\n" + .'> - 此参数仅针对点播或第三方视频流。'."\n" + .'> - 更新后可以立即生效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, - 'example' => '20', - ], - ], - [ - 'name' => 'FontSizeNormalized', - 'in' => 'query', - 'schema' => [ - 'description' => '字体尺寸,取值范围:【0,1】', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0.037', - ], - ], - [ - 'name' => 'BorderWidthNormalized', - 'in' => 'query', - 'schema' => [ - 'description' => '字体粗细,取值范围:【0,1】', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0.05', - ], - ], - [ - 'name' => 'BgWidthNormalized', - 'in' => 'query', - 'schema' => [ - 'description' => '字幕背景尺寸,取值范围:【0,1】', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0.09', - ], - ], - [ - 'name' => 'SubtitleId', - 'in' => 'query', - 'schema' => [ - 'description' => '字幕模板ID', - 'type' => 'string', - 'required' => true, - 'example' => '597991f3-6ef9-4100-9238-82951de1****', + 'example' => '0', + 'default' => '-5', + 'enum' => [], ], ], [ - 'name' => 'Description', + 'name' => 'Offset', 'in' => 'query', - 'schema' => [ - 'description' => '自定义字幕描述信息。可包含中英文、数字、字符,不超过128位。', - 'type' => 'string', - 'required' => false, - 'example' => 'live AI subtitle template', - ], + 'schema' => ['description' => '启动偏移,视频文件起始偏移值。单位:秒。取值:大于0。'."\n" + .'> - 表示从相对于首帧的偏差时间作为开始读取的位置。'."\n" + .'> - 此参数仅针对点播或第三方视频流。'."\n" + .'> - 仅当播放视频列表第一个视频时有效。'."\n" + .'> - 需要在任务停止运行的状态下更新,重启后生效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], ], [ - 'name' => 'Width', + 'name' => 'CallbackUrl', 'in' => 'query', - 'schema' => [ - 'description' => '预览画面宽度,单位:px', - 'type' => 'string', - 'required' => false, - 'example' => '1280', - ], + 'schema' => ['description' => '回调地址,默认为空。'."\n" + .'> - 接收任务相关回调的地址。'."\n" + .'> - 最大长度为 2000 个字符。'."\n" + .'> - 不指定本参数则不会回调相关任务事件。'."\n" + .'> - 仅当下一次事件触发时开始生效。', 'type' => 'string', 'required' => false, 'example' => 'https://callback*****.com'], ], [ - 'name' => 'Height', + 'name' => 'FileIndex', 'in' => 'query', - 'schema' => [ - 'description' => '预览画面高度,单位:px'."\n" - ."\n" - .'预览画面宽度x高度仅支持以下规格:'."\n" - .'- 横屏流畅 360P 640x360'."\n" - .'- 竖屏流畅 360P 360x640'."\n" - .'- 横屏标清 480P 854x480'."\n" - .'- 竖屏标清 480P 480x854'."\n" - .'- 横屏高清 720P 1280x720'."\n" - .'- 竖屏高清 720P 720x1280'."\n" - .'- 横屏超清 1080P 1920x1080'."\n" - .'- 竖屏超清 1080P 1080x1920', - 'type' => 'string', - 'required' => false, - 'example' => '720', - ], + 'schema' => ['description' => '视频索引,默认值为0。'."\n" + .'> 需要在任务停止运行的状态下更新,重启后生效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'default' => '0'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'String 5c6a2a0df228-4a64- af62-20e91b96****', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68*****'], + 'RetCode' => ['description' => '返回码。'."\n" + ."\n" + .'> - 正常情况返回“0”。'."\n" + .'> - 异常情况请参考下文错误码列表。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Description' => ['description' => '错误描述。', 'type' => 'string', 'example' => 'OK'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => '%s.', 'description' => '参数错误'], + ['errorCode' => 'InvalidParam.CodeIllegalDuration', 'errorMessage' => '%s.', 'description' => '开始时间应该小于结束时间。'], + ['errorCode' => 'CodeInvalidAliUid', 'errorMessage' => 'This aliuid does not have a live domain name.', 'description' => '这个aluid没有直播域名'], + ['errorCode' => 'CodeTaskNotExist', 'errorMessage' => 'Task does not exist.', 'description' => '任务不存在。'], + ['errorCode' => 'CodeTaskHasStarted', 'errorMessage' => 'The task has already started.', 'description' => '任务已经启动,无法更新。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s.', 'description' => '直播 liveapi 服务端错误。 '], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"String\\\\t5c6a2a0df228-4a64- af62-20e91b96****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n String\\t5c6a2a0df228-4a64- af62-20e91b96****\\n","errorExample":""}]', - 'title' => '更新字幕模板', - 'description' => '## 使用说明'."\n" - ."\n" - .'本接口支持对指定字幕模板各项参数进⾏更新调整。'."\n" - ."\n" - .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" - .'>'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68*****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68*****\\n 0\\n OK\\n","errorExample":""}]', + 'title' => '更新拉流转推任务', + 'description' => '- 调用本接口更新拉流转推任务。'."\n" + .'- 任务未到设置的开始时间,支持更新Region。'."\n" + .'- 任务运行中(含异常重试状态)仅支持更新CallbackUrl和RepeatTime且更新会立即生效。'."\n" + .'- 任务已停止,除Region,其他参数均允许更新。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DescribeLiveAISubtitle' => [ - 'summary' => '调用DescribeLiveAISubtitle查询字幕模板列表。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2025-04-27T08:03:58.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLivePullToPush'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLivePullToPush', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateLiveRecordNotifyConfig' => [ + 'summary' => '更新域名级别录制回调配置', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '218857', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '107282', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'SubtitleId', + 'name' => 'NotifyUrl', 'in' => 'query', - 'schema' => [ - 'description' => '字幕模板ID。', - 'type' => 'string', - 'required' => false, - 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****', - ], + 'schema' => ['description' => '录制回调(包括事件回调和状态回调)URL地址。'."\n" + ."\n" + .'> - 必须以`http://`或`https://`开头。'."\n" + .'>- 为了正常识别输入的汉字、空格以及其他特殊字符,需要做URLEncoder编码。', 'type' => 'string', 'required' => true, 'example' => 'http://learn.aliyundoc.com/examplecallback.action'], ], [ - 'name' => 'SubtitleName', + 'name' => 'OnDemandUrl', 'in' => 'query', - 'schema' => [ - 'description' => '字幕模板名称,仅支持数字、大小写字母或短横线-,短横线不和位于首位。', - 'type' => 'string', - 'required' => false, - 'example' => 'sub01', - ], + 'schema' => ['description' => '按需回调URL地址。'."\n" + ."\n" + .'> - 必须以`http://`或`https://`开头。'."\n" + .'>- 为了正常识别输入的汉字、空格以及其他特殊字符,需要做URLEncoder编码。', 'type' => 'string', 'required' => false, 'example' => 'http://guide.aliyundoc.com/ondemandcallback.action'], ], [ - 'name' => 'PageNumber', + 'name' => 'NeedStatusNotify', 'in' => 'query', - 'schema' => [ - 'description' => '分页的页数。取值范围【1,100】', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '是否需要录制任务状态回调。取值:'."\n" + ."\n" + .'- **true**:需要录制任务状态回调。'."\n" + .'- **false**(默认值):不需要录制任务状态回调。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'PageSize', + 'name' => 'NotifyReqAuth', 'in' => 'query', - 'schema' => [ - 'description' => '每页模板数值。取值范围【1,100】', - 'type' => 'string', - 'required' => false, - 'example' => '100', - ], + 'schema' => ['description' => '回调鉴权开关。取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + ."\n" + .'- **false**:关闭。'."\n" + ."\n" + .'>默认值为**false**,当填**true**时NotifyAuthKey必填。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'IsDefault', + 'name' => 'NotifyAuthKey', 'in' => 'query', - 'schema' => [ - 'description' => '是否查询字幕默认模版,取值范围:'."\n" - .'- true,查询。'."\n" - .'- false,不查询。'."\n" - .'> 默认模版:系统预先内置的参数集,用户可以通过AddLiveAISubtitle接口的copyFrom参数使用。'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '回调鉴权密钥,长度为16~32个字符,只允许填大小写字母和数字。'."\n" + .'>当NotifyReqAuth参数值为**true**时该参数必填。', 'type' => 'string', 'required' => false, 'example' => 'testkeyyourkey12', 'maxLength' => 64, 'minLength' => 16], ], ], 'responses' => [ @@ -68923,719 +52479,474 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64- af62-20e91b96****', - ], - 'SubtitleConfigs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SubtitleConfig' => [ - 'description' => '字幕模板信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '字幕模板信息对象', - 'type' => 'object', - 'properties' => [ - 'DstLanguage' => [ - 'description' => '翻译目标语言', - 'type' => 'string', - 'example' => 'zh-CN', - ], - 'SrcLanguage' => [ - 'description' => '源语言', - 'type' => 'string', - 'example' => 'zh-CN', - ], - 'FontColor' => [ - 'description' => '字体颜色', - 'type' => 'string', - 'example' => '0xFFFFFF', - ], - 'FontName' => [ - 'description' => '字体', - 'type' => 'string', - 'example' => 'AlibabaPuHuiTi-Regular', - ], - 'ShowSourceLan' => [ - 'description' => '是否显示源语言', - 'type' => 'integer', - 'format' => 'int32', - 'example' => 'true', - ], - 'MaxLines' => [ - 'description' => '显示行数', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'WordPerline' => [ - 'description' => '每行显示字数', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'PositionNormalized' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Position' => [ - 'description' => '字幕位置信息', - 'type' => 'array', - 'items' => [ - 'description' => '字幕位置', - 'type' => 'number', - 'format' => 'float', - 'example' => '[0.3,0.35]', - ], - ], - ], - ], - 'BgColor' => [ - 'description' => '字幕背景颜色', - 'type' => 'string', - 'example' => '0xFF0000', - ], - 'BgWidthNormalized' => [ - 'description' => '字幕背景尺寸', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.09', - ], - 'BorderWidthNormalized' => [ - 'description' => '字体粗细', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.05', - ], - 'Width' => [ - 'description' => '预览画面宽度', - 'type' => 'string', - 'example' => '1280', - ], - 'Height' => [ - 'description' => '预览画面高度', - 'type' => 'string', - 'example' => '720', - ], - 'SubtitleName' => [ - 'description' => '字幕模板名称', - 'type' => 'string', - 'example' => 'sub1', - ], - 'SubtitleId' => [ - 'description' => '字幕模板ID', - 'type' => 'string', - 'example' => '597991f3-6ef9-4100-9238-82951de1****', - ], - 'RulesRefer' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RulesId' => [ - 'description' => '字幕规则信息', - 'type' => 'array', - 'items' => [ - 'description' => '字幕规则ID', - 'type' => 'string', - 'example' => '1419783e-0dd2-4485-a298-6e4a0e4e****', - ], - ], - ], - ], - 'FontSizeNormalized' => [ - 'description' => '字体尺寸', - 'type' => 'string', - 'example' => '0.037', - ], - 'Description' => [ - 'description' => '描述信息', - 'type' => 'string', - 'example' => 'live AI subtitle template', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], + ['errorCode' => 'InvalidNotifyUrl.Malformed', 'errorMessage' => 'Specified NotifyUrl is invalid.', 'description' => '指定的notifyurl错误,请您确认该notifyurl参数是否正确。'], + ['errorCode' => 'InvalidNotifyUrl.Unsafe', 'errorMessage' => 'Specified NotifyUrl is not safe.', 'description' => '指定的notifyurl错误,请您确认该notifyurl参数是否正确。'], + ['errorCode' => 'InvalidOnDemandUrl.Malformed', 'errorMessage' => 'Specified OnDemandUrl is invalid.', 'description' => ''], + ['errorCode' => 'InvalidOnDemandUrl.Unsafe', 'errorMessage' => 'Specified OnDemandUrl is not safe.', 'description' => ''], + ['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'Specified Domain is invalid.', 'description' => ''], + ['errorCode' => 'Forbidden', 'errorMessage' => 'Ram Permission is forbidden.', 'description' => ''], + ], + 404 => [ + ['errorCode' => 'InvalidConfig.NotFound', 'errorMessage' => 'Config does not exist.', 'description' => ''], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b96****\\",\\n \\"SubtitleConfigs\\": {\\n \\"SubtitleConfig\\": [\\n {\\n \\"DstLanguage\\": \\"zh-CN\\",\\n \\"SrcLanguage\\": \\"zh-CN\\",\\n \\"FontColor\\": \\"0xFFFFFF\\",\\n \\"FontName\\": \\"AlibabaPuHuiTi-Regular\\",\\n \\"ShowSourceLan\\": 0,\\n \\"MaxLines\\": 2,\\n \\"WordPerline\\": 20,\\n \\"PositionNormalized\\": {\\n \\"Position\\": [\\n 0\\n ]\\n },\\n \\"BgColor\\": \\"0xFF0000\\",\\n \\"BgWidthNormalized\\": 0.09,\\n \\"BorderWidthNormalized\\": 0.05,\\n \\"Width\\": \\"1280\\",\\n \\"Height\\": \\"720\\",\\n \\"SubtitleName\\": \\"sub1\\",\\n \\"SubtitleId\\": \\"597991f3-6ef9-4100-9238-82951de1****\\",\\n \\"RulesRefer\\": {\\n \\"RulesId\\": [\\n \\"1419783e-0dd2-4485-a298-6e4a0e4e****\\"\\n ]\\n },\\n \\"FontSizeNormalized\\": \\"0.037\\",\\n \\"Description\\": \\"live AI subtitle template\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 5c6a2a0df228-4a64- af62-20e91b96****\\n \\n zh-CN\\n zh-CN\\n 0xFFFFFF\\n AlibabaPuHuiTi-Regular\\n 2\\n 20\\n [0.3,0.35]\\n 0xFF0000\\n 0.09\\n 0.05\\n 1280\\n 720\\n sub1\\n 597991f3-6ef9-4100-9238-82951de1****\\n 1419783e-0dd2-4485-a298-6e4a0e4e****\\n 0.037\\n live AI subtitle template\\n \\n","errorExample":""}]', - 'title' => '查询字幕模板', - 'description' => '本接口支持指定分页参数查询字幕模板列表信息,调用时请保证参数设置符合要求。'."\n" - ."\n" - .'>当前实时字幕功能处于邀测阶段,单个用户最多可添加300个字幕模板。'."\n" - .'>'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD\\"\\n}","errorExample":"{\\n \\"Code\\":\\"InternalError\\",\\n \\"HostId\\":\\"live.aliyuncs.com\\",\\n \\"Message\\":\\"The request processing has failed due to some unknown error.\\",\\n \\"RequestId\\":\\"6EBD1AC4-C34D-4AE1-963E-B688A228BE31\\"\\n}"},{"type":"xml","example":"\\n\\n\\t16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n\\t\\n","errorExample":"{\\n \\"RequestId\\":\\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}"}]', + 'title' => '更新域名级别录制回调配置', + 'description' => '更新域名级别录制回调配置时,您可以修改以下内容:'."\n" + .'- 录制回调(包括录制文件生成事件回调、录制任务状态回调)URL地址。更多详情,请参见[录制事件回调](~~55016~~)。'."\n" + .'- 按需录制回调URL地址。更多详情,请参见[按需录制回调](~~85910~~)。'."\n" + .'- 是否需要录制任务状态回调。'."\n" ."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'CreateLiveAIStudio' => [ - 'summary' => '本接口用于创建轻量化虚拟演播模板。', - 'methods' => [ - 'post', - 'get', + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveRecordNotifyConfig'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveRecordNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + ], + 'UpdateLiveRecordVodConfig' => [ + 'summary' => '更新直播录制转点播配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '250868', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '181113', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'StudioName', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '虚拟演播模板名称,不可重复', - 'type' => 'string', - 'required' => true, - 'example' => 'stu02', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'Description', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '自定义描述信息。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'template 1080', - ], + 'schema' => ['description' => '播流所属应用名称。您可在[流管理](~~197397~~)页面查看AppName。', 'type' => 'string', 'required' => true, 'example' => 'testName'], ], [ - 'name' => 'Width', + 'name' => 'StreamName', 'in' => 'query', - 'schema' => [ - 'description' => '预览画面宽度,单位:px', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1920', - ], + 'schema' => ['description' => '播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', 'type' => 'string', 'required' => false, 'example' => 'stream'], ], [ - 'name' => 'Height', + 'name' => 'VodTranscodeGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '预览画面高度,单位:px'."\n" - ."\n" - .'预览画面宽度x高度仅支持以下规格:'."\n" - ."\n" - .'- 横屏流畅 360P 640x360'."\n" - .'- 竖屏流畅 360P 360x640'."\n" - .'- 横屏标清 480P 854x480'."\n" - .'- 竖屏标清 480P 480x854'."\n" - .'- 横屏高清 720P 1280x720'."\n" - .'- 竖屏高清 720P 720x1280'."\n" - .'- 横屏超清 1080P 1920x1080'."\n" - .'- 竖屏超清 1080P 1080x1920', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1080', - ], + 'schema' => ['description' => '>当使用按格式配置功能,即传入 RecordFormat 参数时,此参数无效,可不传>'."\n" + .'点播转码模板组ID。', 'type' => 'string', 'required' => false, 'example' => 'e2d796d3bb5fd8049d32bff62f94****'], ], [ - 'name' => 'BackgroundType', + 'name' => 'CycleDuration', 'in' => 'query', - 'schema' => [ - 'description' => '背景素材类型:'."\n" - .'- VOD 点播视频'."\n" - .'- PIC 图片'."\n" - .'- LIVE 直播流', - 'type' => 'string', - 'required' => false, - 'example' => 'VOD', - 'enum' => [ - 'VOD', - 'LIVE', - 'PIC', - ], - ], + 'schema' => ['description' => '周期录制时长。单位:秒。默认值为**3600**,取值范围:**300~21600**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '21600', 'minimum' => '300', 'example' => '300'], ], [ - 'name' => 'BackgroundResourceId', + 'name' => 'AutoCompose', 'in' => 'query', - 'schema' => [ - 'description' => '背景素材的点播资源id,从点播控制台获取', - 'type' => 'string', - 'required' => false, - 'example' => 'd0eb493192c771efba644531858c0102', - 'enum' => [], - ], + 'schema' => ['description' => '>当使用按格式配置功能,即传入 RecordFormat 参数时,此参数无效,可不传>'."\n" + .'是否开启自动合并。取值:'."\n" + ."\n" + .'- **ON**:开启。如果取值为ON,必须同时设置请求参数ComposeVodTranscodeGroupId。', 'type' => 'string', 'required' => false, 'example' => 'OFF'], ], [ - 'name' => 'BackgroundResourceUrl', + 'name' => 'ComposeVodTranscodeGroupId', + 'in' => 'query', + 'schema' => ['description' => '>当使用按格式配置功能,即传入 RecordFormat 参数时,此参数无效,可不传>'."\n" + .'对自动合成出来的新视频在点播服务中进行一次转码,所使用的点播转码模板组ID。'."\n" + ."\n" + .'> 通过 [查询转码配置列表](~~454928~~) 获取', 'type' => 'string', 'required' => false, 'example' => '*****'], + ], + [ + 'name' => 'OnDemand', + 'in' => 'query', + 'schema' => ['description' => '按需录制,取值:'."\n" + ."\n" + .'- **0**(默认值):关闭。'."\n" + ."\n" + .'- **1**:通过HTTP回调方式。'."\n" + ."\n" + .'- **2**:通过解析推流参数触发录制。'."\n" + ."\n" + .'- **7**:手动录制,默认不录制,可以通过[RealTimeRecordCommand](~~2847882~~)接口手动控制录制开启或停止。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'DelayTime', + 'in' => 'query', + 'schema' => ['title' => '断流拼接时长', 'description' => '断流拼接时长, 直播断流时长超过设定的拼接时长后,将会生成新文件,断流拼接时长支持 15~21600 秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '180'], + ], + [ + 'name' => 'RecordFormat', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '背景素材的资源访问url,与资源id二选一传入', - 'type' => 'string', + 'title' => '录制格式配置列表', + 'description' => '按格式配置录制参数列表', + 'type' => 'array', + 'items' => [ + 'title' => '录制格式配置', + 'description' => '录制格式配置'."\n" + .'>RecordFormat内部的录制格式不支持更新,如原有配置中的RecordFormat包含储存格式m3u8和flv,那么仅可对这两个格式下的配置参数进行修改,不能通过本接口更新储存格式为m3u8,flv,mp4>', + 'type' => 'object', + 'properties' => [ + 'Format' => ['title' => '录制储存格式', 'description' => '录制储存格式', 'type' => 'string', 'required' => false, 'example' => 'm3u8'], + 'SliceDuration' => ['title' => '单个切片时长', 'description' => '单个切片时长,单位:秒'."\n" + .'>当 RecordFormat.N.Format(格式)设为 m3u8 时,本参数才有效。>'."\n" + .'不填则默认为 30 秒。取值范围:5s~30s。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], + 'AutoCompose' => ['title' => '自动合并', 'description' => '自动合并,设置为 ON 表示开启自动合并。取值:'."\n" + ."\n" + .'- ON,开启自动合并'."\n" + ."\n" + .'- OFF,关闭自动合并', 'type' => 'string', 'required' => false, 'example' => 'ON'], + 'VideoProcess' => ['title' => '视频处理源', 'description' => '视频处理源。取值:'."\n" + ."\n" + .'- origin(默认值),处理源视频'."\n" + ."\n" + .'- compose,处理合并后视频'."\n" + ."\n" + .'如需同时处理源视频和合并后视频,请将两个取值同时传入,以","分隔,如 origin,compose', 'type' => 'string', 'required' => false, 'example' => 'origin'], + 'ProcessMethod' => ['title' => '视频处理方式', 'description' => '视频处理方式。取值:'."\n" + ."\n" + .'- transcode,使用转码模版组处理视频'."\n" + ."\n" + .'- workflow,使用工作流处理视频', 'type' => 'string', 'required' => false, 'example' => 'transcode'], + 'ProcessTemplateId' => ['title' => '视频处理转码模版或工作流模版', 'description' => '视频处理转码模版组 Id 或工作流模版 Id'."\n" + .'> 此处传入的 Id 必须与 ProcessMethod 传入的视频处理方式对应,即 ProcessMethod 传入 transcode,此处应使用转码模版组 Id'."\n" + .'> -', 'type' => 'string', 'required' => false, 'example' => 'e2d796d3bb5fd8049d32bff62f94****'], + 'Tags' => ['title' => '标签', 'description' => '视频分类标签', 'type' => 'string', 'required' => false, 'example' => 'sports'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'https://xxx.com/1.mp4', - 'enum' => [], + 'maxItems' => 3, ], ], [ - 'name' => 'MediaType', + 'name' => 'TranscodeTemplates', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '多媒体素材类型:'."\n" - .'- VOD 点播视频'."\n" - .'- PIC 图片'."\n" - .'- LIVE 直播流', - 'type' => 'string', + 'title' => '转码模版组列表', + 'description' => '转码模版组列表', + 'type' => 'array', + 'items' => ['title' => '转码模版', 'description' => '- 转码流录制的转码模板,可进行多个设置,最多为 10 个。'."\n" + ."\n" + .'- 当设置RecordContent 传入值包含 transcode 时,至少需要设置一个 TranscodeTemplates。'."\n" + ."\n" + .'- 如需录制全部的转码流,可设置TranscodeTemplates.1 为通配符*即可。'."\n" + .'> TranscodeTemplates 不允许传入raw,属于保留标识。'."\n" + .'RepeatList 表示为 TranscodeTemplates.N 中的 N,可理解为递增进行多个设置,如: TranscodeTemplates.1=sd, TranscodeTemplates.2=hd。'."\n" + .'> -', 'type' => 'string', 'required' => false, 'example' => 'sd'], 'required' => false, - 'example' => 'VOD', - 'enum' => [ - 'VOD', - 'LIVE', - 'PIC', + 'maxItems' => 10, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '61C96B9A-F203-4EC5-8E43-CB92E68F67DF'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => 'Config has already exist.', 'description' => ''], + ['errorCode' => 'CommomLiveRcordConfigExisted', 'errorMessage' => 'Commom liverecord config has already exist.', 'description' => ''], + ['errorCode' => 'InvalidAutoCompose.Malformed', 'errorMessage' => 'Specified parameter AutoCompose is not valid.', 'description' => ''], + ['errorCode' => 'InvalidAutoComposeAndComposeVodTranscodeGroupId.Malformed', 'errorMessage' => 'Specified parameter AutoCompose and ComposeVodTranscodeGroupId is not valid, must both empty or input', 'description' => ''], + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], + ], + 403 => [ + ['errorCode' => 'InvalidRegion.Conflict', 'errorMessage' => 'Specified parameter StorageLocation and Region is not match', 'description' => ''], + ], + [ + ['errorCode' => 'InvalidStorage.NotFound', 'errorMessage' => 'Specified parameter StorageLocation is not exist', 'description' => ''], + ['errorCode' => 'InvalidTemplateGroupId.NotFound', 'errorMessage' => 'Specified parameter vodTranscodeGroupId or composeVodTranscodeGroupId is not exist', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], + ], + ], + 'title' => '更新直播录制转点播配置', + 'description' => '本接口的单用户QPS限制为1000次/分钟。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveRecordVodConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"61C96B9A-F203-4EC5-8E43-CB92E68F67DF\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 61C96B9A-F203-4EC5-8E43-CB92E68F67DF\\n","errorExample":""}]', + ], + 'UpdateLiveSnapshotDetectPornConfig' => [ + 'summary' => '更新直播审核配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '107283', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], [ - 'name' => 'MediaResourceId', + 'name' => 'AppName', 'in' => 'query', - 'schema' => [ - 'description' => '多媒体素材的点播资源id,从点播控制台获取', - 'type' => 'string', - 'required' => false, - 'example' => 'd0eb493192c771efba644531858c0102', - 'enum' => [], - ], + 'schema' => ['description' => '播流所属的应用名称。AppName名称与推流地址中的AppName名称对应,模板才能生效。不超过255字符,支持数字、大小写字母、短横线(-)、下划线(_),短横线、下划线不能位于首位。也支持取值为单个星号(*)字符,即可匹配所有AppName。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], ], [ - 'name' => 'MediaResourceUrl', + 'name' => 'OssEndpoint', 'in' => 'query', - 'schema' => [ - 'description' => '多媒体素材的资源访问url,与资源id二选一传入', - 'type' => 'string', - 'required' => false, - 'example' => 'https://xxx.com/2.mp4', - 'enum' => [], - ], + 'schema' => ['description' => 'OSS存储Endpoint名称。', 'type' => 'string', 'required' => false, 'example' => 'cn-oss-****.aliyuncs.com'], ], [ - 'name' => 'MediaLayout', + 'name' => 'OssBucket', 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '多媒体素材的布局位置信息', - 'type' => 'object', - 'properties' => [ - 'PositionX' => [ - 'description' => '位置参数,坐标x。取值:**0~1**。素材位置以左上角为基准点。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0', - ], - 'PositionY' => [ - 'description' => '位置参数,坐标y。取值:**0~1**。素材位置以左上角为基准点。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0', - ], - 'HeightNormalized' => [ - 'description' => '素材的高度归一化值。即素材与背景的高度比。取值:**0~1**。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0.5', - ], - ], - 'required' => false, - ], + 'schema' => ['description' => 'OSS存储Bucket名称。', 'type' => 'string', 'required' => false, 'example' => 'liveBucket****'], ], [ - 'name' => 'MattingType', + 'name' => 'OssObject', 'in' => 'query', - 'schema' => [ - 'description' => '抠图类型:'."\n" - .'- green 绿幕抠图'."\n" - .'- blue 蓝幕抠图'."\n" - .'- complex 实景抠图', - 'type' => 'string', - 'required' => true, - 'example' => 'complex', - 'enum' => [ - 'green', - 'blue', - 'complex', - ], - ], + 'schema' => ['description' => '保存涉黄涉政等违规图片名称。', 'type' => 'string', 'required' => false, 'example' => '{liveApp****}/{liveStream****}/{Date}/{Hour}/{Minute}_{Second}.jpg'], ], [ - 'name' => 'MattingLayout', + 'name' => 'Interval', 'in' => 'query', - 'style' => 'json', + 'schema' => ['description' => '采样间隔。取值范围:**5-3600**。单位:秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3600', 'minimum' => '5', 'example' => '5'], + ], + [ + 'name' => 'Scene', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '源流抠图后的布局位置信息', - 'type' => 'object', - 'properties' => [ - 'PositionX' => [ - 'description' => '位置参数,坐标x。取值:**0~1**。素材位置以左上角为基准点。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0.3', - ], - 'PositionY' => [ - 'description' => '位置参数,坐标y。取值:**0~1**。素材位置以左上角为基准点。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0.3', - ], - 'HeightNormalized' => [ - 'description' => '素材的高度归一化值。即素材与背景的高度比。取值:**0~1**。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0.5', - ], - ], - 'required' => true, + 'description' => '检测场景数组', + 'type' => 'array', + 'items' => ['description' => '检测场景。取值:'."\n" + .'- **porn**(默认值): 鉴黄。'."\n" + .'- **terrorism**:暴恐涉政。'."\n" + .'- **ad**:图文违规。'."\n" + .'- **live**:不良直播场景。'."\n" + .'- **logo**:logo检测。', 'type' => 'string', 'required' => false, 'example' => 'live'], + 'required' => false, + 'example' => 'porn', + 'maxItems' => 5, ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '响应结构体', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求id', - 'type' => 'string', - 'example' => '17D7526C-69AD-5761-8037-071C27358345', - ], - 'StudioId' => [ - 'title' => 'Id of the request', - 'description' => '演播模版id', - 'type' => 'string', - 'example' => '369ced1f-c33a-49e5-91da-bdaae3d6c1c2', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'LiveServiceNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.PurchaseTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.ExpireTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidChargeType.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidChargeType.PostSupport', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterTemplate.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidParameter.ChargeType', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidPeriod.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidClientToken.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectCasterStatus', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidOssEndpoint.Malformed', 'errorMessage' => 'Specified parameter OssEndpoint is not valid.', 'description' => ''], + ['errorCode' => 'InvalidOssBucket.Malformed', 'errorMessage' => 'Specified parameter OssBucket is not valid.', 'description' => 'OSSBucket参数错误,请您确认该OSS BUCKET参数是否正确。'], + ['errorCode' => 'InvalidOssObject.Malformed', 'errorMessage' => 'Specified parameter OssObject is not valid.', 'description' => ''], + ['errorCode' => 'InvalidOssBucket.NotFound', 'errorMessage' => 'The parameter OssBucket does not exist.', 'description' => ''], + ['errorCode' => 'InvalidScenes', 'errorMessage' => 'Specified parameter Scene is not valid.', 'description' => ''], ], - [ - [ - 'errorCode' => 'CasterNumberExceed', - 'errorMessage' => '%s, please check and try again later.', - ], + 404 => [ + ['errorCode' => 'InvalidConfig.NotFound', 'errorMessage' => 'Config does not exist.', 'description' => ''], ], - 403 => [ - [ - 'errorCode' => 'PermissionDenied', - 'errorMessage' => '%s, please check and try again later.', - ], + ], + 'title' => '更新直播审核配置', + 'description' => '- 先获取主播流域名,再调用本接口更新直播审核配置。'."\n" + ."\n" + .'- 目前仅部分直播中心支持直播智能审核,具体支持该功能的直播中心,请参见[服务地域](~~193730~~)。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveSnapshotDetectPornConfig'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidParameter.NormType', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidConfiguration.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 408 => [ - [ - 'errorCode' => 'CreateLiveAIStudio.Timeout', - 'errorMessage' => '%s, please try again later.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveSnapshotDetectPornConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"17D7526C-69AD-5761-8037-071C27358345\\",\\n \\"StudioId\\": \\"369ced1f-c33a-49e5-91da-bdaae3d6c1c2\\"\\n}","type":"json"}]', - 'title' => '创建虚拟演播模版', - 'description' => '>轻量化虚拟演播功能处于公测阶段,单个用户最多创建300个模板。暂时免费使用,公测结束后将正常收费,具体时间另行通知。>', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', ], - 'DeleteLiveAIStudio' => [ - 'summary' => '删除虚拟演播模板。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'UpdateLiveSnapshotNotifyConfig' => [ + 'summary' => '修改截图回调配置。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '239775', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeNodes' => ['FEATUREliveMH1XD3'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'StudioId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '模板ID,由CreateLiveAIStudio接口返回', - 'type' => 'string', - 'required' => true, - 'example' => '369ced1f-c33a-49e5-91da-bdaae3d6c1c2', - ], + 'schema' => ['description' => '主播流域名。', 'type' => 'string', 'required' => true, 'example' => 'ww.yourdomain***.com'], + ], + [ + 'name' => 'NotifyUrl', + 'in' => 'query', + 'schema' => ['description' => '回调URL,必须是合法URL,长度不超过500。', 'type' => 'string', 'required' => false, 'example' => 'http://callback.yourdomain***.com'], + ], + [ + 'name' => 'NotifyReqAuth', + 'in' => 'query', + 'schema' => ['description' => '回调鉴权开关。取值:'."\n" + ."\n" + .'- **yes**:开启。'."\n" + ."\n" + .'- **no**:关闭。'."\n" + ."\n" + .'>默认值为**no**,当填**yes**时NotifyAuthKey必填。', 'type' => 'string', 'required' => false, 'example' => 'yes'], + ], + [ + 'name' => 'NotifyAuthKey', + 'in' => 'query', + 'schema' => ['description' => '回调鉴权密钥,长度为16~32个字符,只允许填大小写字母和数字。'."\n" + .'>当NotifyReqAuth参数值为**yes**时该参数必填。', 'type' => 'string', 'required' => false, 'example' => 'testkeyyourkey12'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '响应结构体', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求id', - 'type' => 'string', - 'example' => '40A4F36D-A7CC-473A-88E7-154F92242566', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A3136B58-5876-5A93-83CA-B562781981A0'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'LiveServiceNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.PurchaseTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParameter.ExpireTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidChargeType.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidChargeType.PostSupport', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterTemplate.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidParameter.ChargeType', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidPeriod.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidClientToken.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectStudioStatus.Inuse', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ['errorCode' => 'MalformedParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '存在无效参数,请检查后重试。'], + ['errorCode' => 'ConfigNotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '配置不存在,请检查后重试。'], ], - [ - [ - 'errorCode' => 'CasterNumberExceed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'PermissionDenied', - 'errorMessage' => '%s, please check and try again later.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], + ], + 'title' => '修改截图回调配置', + 'description' => '本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidParameter.NormType', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidConfiguration.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 408 => [ - [ - 'errorCode' => 'DeleteLiveAIStudio.Timeout', - 'errorMessage' => '%s, please try again later.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveSnapshotNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"40A4F36D-A7CC-473A-88E7-154F92242566\\"\\n}","type":"json"}]', - 'title' => '删除虚拟演播模板', - 'description' => '删除虚拟演播模板,删除前必须解绑规则,否则报错'."\n" - ."\n\n" - .'>当前虚拟演播轻量化功能处于邀测阶段,单个用户最多可添加300个模板。>', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A3136B58-5876-5A93-83CA-B562781981A0\\"\\n}","errorExample":""},{"type":"xml","example":"\\n A3136B58-5876-5A93-83CA-B562781981A0\\n","errorExample":""}]', ], - 'ModifyLiveAIStudio' => [ - 'summary' => '本接口用于修改指定的虚拟演播模板。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'UpdateLiveStreamMonitor' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -69646,938 +52957,605 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '250887', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', - ], + 'abilityTreeCode' => '107285', + 'abilityTreeNodes' => ['FEATUREliveSM955S'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'StudioName', + 'name' => 'MonitorId', 'in' => 'query', - 'schema' => [ - 'description' => '虚拟演播模板名称,与创建接口中的入参StudioName相同', - 'type' => 'string', - 'required' => true, - 'example' => 'stu02', - ], + 'schema' => ['description' => '监播室ID。'."\n" + .'>通过查看[CreateLiveStreamMonitor](~~2848129~~)接口的返回参数获取MonitorId值。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], [ - 'name' => 'Description', + 'name' => 'MonitorName', 'in' => 'query', - 'schema' => [ - 'description' => '自定义描述信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'custom', - ], + 'schema' => ['description' => '监播室名称。', 'type' => 'string', 'required' => false, 'example' => 'liveMonitor****'], ], [ - 'name' => 'Width', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '预览画面宽度,单位:px', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1920', - ], + 'schema' => ['description' => '监播输出域名。', 'type' => 'string', 'required' => false, 'example' => 'demo.aliyundoc.com'], ], [ - 'name' => 'Height', + 'name' => 'App', 'in' => 'query', - 'schema' => [ - 'description' => '预览画面高度,单位:px'."\n" - ."\n" - .'预览画面宽度x高度仅支持以下规格:'."\n" - ."\n" - .'- 横屏流畅 360P 640x360'."\n" - .'- 竖屏流畅 360P 360x640'."\n" - .'- 横屏标清 480P 854x480'."\n" - .'- 竖屏标清 480P 480x854'."\n" - .'- 横屏高清 720P 1280x720'."\n" - .'- 竖屏高清 720P 720x1280'."\n" - .'- 横屏超清 1080P 1920x1080'."\n" - .'- 竖屏超清 1080P 1080x1920', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1080', - ], + 'schema' => ['description' => '监播输出流的App。'."\n" + .'名称可自取,不传默认用**monitor**作为AppName名称。', 'type' => 'string', 'required' => false, 'example' => 'monitor****'], ], [ - 'name' => 'BackgroundType', + 'name' => 'Stream', 'in' => 'query', - 'schema' => [ - 'description' => '背景素材类型:'."\n" - .'- VOD 点播视频'."\n" - .'- PIC 图片'."\n" - .'- LIVE 直播流', - 'type' => 'string', - 'required' => false, - 'example' => 'VOD'."\n", - 'enum' => [ - 'VOD', - 'LIVE', - 'PIC', - ], - ], + 'schema' => ['description' => '监播输出流名。', 'type' => 'string', 'required' => false, 'example' => 'monitorStream****'], ], [ - 'name' => 'BackgroundResourceId', + 'name' => 'OutputTemplate', 'in' => 'query', - 'schema' => [ - 'description' => '背景素材的点播资源id,从点播控制台获取', - 'type' => 'string', - 'required' => false, - 'example' => 'd0eb493192c771efba644531858c0102', - 'enum' => [], - ], + 'schema' => ['description' => '监播输出模版。类型取值:'."\n" + ."\n" + .'- **lp_ld**:流畅。'."\n" + .'- **lp_sd**:标清。'."\n" + .'- **lp_hd**:高清。'."\n" + .'- **lp_ud**:超清。', 'type' => 'string', 'required' => false, 'example' => 'lp_ud'], ], [ - 'name' => 'BackgroundResourceUrl', + 'name' => 'InputList', 'in' => 'query', - 'schema' => [ - 'description' => '背景素材的资源访问url', - 'type' => 'string', - 'required' => false, - 'example' => 'https://xxx.com/2.mp4'."\n", - 'enum' => [], - ], + 'schema' => ['description' => '监控流输入列表。具体内容,请参考下表**InputConfig**。', 'type' => 'string', 'required' => true, 'example' => 'InputConfig'], ], [ - 'name' => 'MediaType', + 'name' => 'MonitorConfig', 'in' => 'query', - 'schema' => [ - 'description' => '多媒体素材类型:'."\n" - .'- VOD 点播视频'."\n" - .'- PIC 图片'."\n" - .'- LIVE 直播流', - 'type' => 'string', - 'required' => false, - 'example' => 'VOD', - 'enum' => [ - 'VOD', - 'LIVE', - 'PIC', - ], - ], + 'schema' => ['description' => '监播告警阈值设置,JSON格式,具体内容,请参考下表MonitorConfig。', 'type' => 'string', 'required' => false, 'example' => '"{\\"fpsLowThres\\": 0.6,\\"brLowThres\\": 1.1,\\"eofDurationThresSec\\": 10}"'], ], [ - 'name' => 'MediaResourceId', + 'name' => 'CallbackUrl', 'in' => 'query', - 'schema' => [ - 'description' => '多媒体素材的点播资源id,从点播控制台获取', - 'type' => 'string', - 'required' => false, - 'example' => 'd0eb493192c771efba644531858c01102', - 'enum' => [], - ], + 'schema' => ['description' => '支持输入HTTP(S)格式的回调地址。', 'type' => 'string', 'required' => false, 'example' => 'http://guide.aliyundoc.com/notify'], ], [ - 'name' => 'MediaResourceUrl', + 'name' => 'DingTalkWebHookUrl', 'in' => 'query', - 'schema' => [ - 'description' => '多媒体素材的资源访问url,与资源id二选一传入', - 'type' => 'string', - 'required' => false, - 'example' => 'https://xxx.com/1.mp4'."\n", - 'enum' => [], - ], + 'schema' => ['description' => '监播钉钉告警通过钉群机器人进行告警信息的通知,请先设置钉群机器人,并在此输入机器人的HTTP(S)地址。详情请参见[自定义机器人接入](https://open.dingtalk.com/document/robots/custom-robot-access)。'."\n" + ."\n" + .'> 配置钉群机器人自定义关键词为“告警”,否则消息无法接收。', 'type' => 'string', 'required' => false, 'example' => 'https://oapi.dingtalk.com/robot/send?access_token=7a7d404056eee1f2fd944ace9bcfc361dc6448583e1d3d3baa****'], ], - [ - 'name' => 'MediaLayout', - 'in' => 'query', - 'style' => 'json', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '多媒体素材的位置布局信息', 'type' => 'object', 'properties' => [ - 'PositionX' => [ - 'description' => '位置参数,坐标x。取值:**0~1**。素材位置以左上角为基准点。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0', - ], - 'PositionY' => [ - 'description' => '位置参数,坐标y。取值:**0~1**。素材位置以左上角为基准点。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0', - ], - 'HeightNormalized' => [ - 'description' => '素材的高度归一化值。即素材与背景的高度比。取值:**0~1**。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0.5', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0d-f228-4a64-af62-20e91b9676b3'], ], - 'required' => false, + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ['errorCode' => 'InvalidMonitorId.Malformed', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数MonitorId无效,请检查后重试。'], + ], [ - 'name' => 'MattingType', - 'in' => 'query', - 'schema' => [ - 'description' => '抠图类型:'."\n" - .'- green 绿幕抠图'."\n" - .'- blue 蓝幕抠图'."\n" - .'- complex 实景抠图', - 'type' => 'string', - 'required' => true, - 'example' => 'complex', - 'enum' => [ - 'green', - 'blue', - 'complex', + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 404 => [ + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], + ['errorCode' => 'StreamMonitorNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => '监播室不存在,请检查后重试。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], + ], + ], + 'title' => '更新监播室', + 'summary' => '更新监播室配置。', + 'description' => '此接口针对监播室配置进行更新,监播室在启动状态下对输入源配置更新可实时生效。'."\n" + ."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '**InputConfig**'."\n" + .'|名称|类型|描述|示例值|'."\n" + .'|----|----|------|-----|'."\n" + .'|Index|Integer|索引,前端使用。|1|'."\n" + .'|LayoutId|Integer|布局ID,必须从1开始。|1|'."\n" + .'|StreamName|String|监播流的显示名称。|monitorStream****|'."\n" + .'|InputUrl|String|输入流地址。|demo.aliyundoc.com|'."\n" + .'|LayoutConfig|LayoutConfig|布局信息。|参考下表**LayoutConfig**|'."\n" + .'|PlayConfig|PlayConfig|播放配置。|参考下表**PlayConfig**|'."\n" + ."\n" + .'**LayoutConfig**'."\n" + .'|名称|类型|描述|示例值|'."\n" + .'|----|----|------|-----|'."\n" + .'|FillMode|String|填充类型,前端填none即可。|none|'."\n" + .'|PositionRefer|String|设置元素的position参考坐标值,取值:TopLeft(左上),TopRight(右上),BottomLeft(左下),BottomRight(右下)。|TopLeft|'."\n" + .'|PositionNormalized|Float|表示该Layer元素填充区位置归一化值[x,y]。
x和y的取值范围为0~1。
例如[0.1,0.1] 代表左上角水平偏移10%, 垂直偏移10%。|[0.1, 0.1]|'."\n" + .'|SizeNormalized|Float|表示该Layer元素需要填充的尺寸大小[w,h]。
w和h取值范围为0~1,宽高都是进行了归一化计算。
例如 [0.2,0.3]代表水平占比20%,垂直占比30%。|[0.2, 0.3]|'."\n" + ."\n" + .'**PlayConfig**'."\n" + .'|名称|类型|描述|示例值|'."\n" + .'|----|----|------|-----|'."\n" + .'|VolumeRate|Float|音量。取值0~1之间,精确小数点后2位。|0.50|'."\n" + ."\n" + .'**MonitorConfig**'."\n" + .'|名称|类型|描述|示例值|'."\n" + .'|----|----|------|-----|'."\n" + .'|fpsLowThres|Float|视频帧率告警阈值。此阈值为比例系数,取值范围(0.0,1.0],默认值0.7。当监播流的视频帧率<帧率告警阈值*直播流原始帧率,则会报警。|0.7|'."\n" + .'|brHighThres|Float|音视频码率告警阈值。此阈值为比例系数,取值范围(0.0,100],默认值1.0。当监播流的音视频码率>码率告警阈值*直播流原始码率,则会报警。|1.0|'."\n" + .'|eofDurationThresSec|Float|断流时长检测阈值,表示当前监播流断流超过多少时间(单位:秒)才会报警。取值范围(0,65535],默认值0。 - 由于断流后连接不断,系统会有内部收包超时时间(5秒)来判断断流。因此如果设置此参数时间<=5s,实际检测时间仍为5s;如果设置该项时间>5s,实际检测时间为设置值,只是前5s为内部收包超时,剩余时间为持续等待流没有恢复时间。 - 如果断流后没达到此超时时间流自动恢复,则不会报警。如果断流未超时,此时修改了监播地址,对前流也不会继续检测超时和报警。|10|', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-04T07:12:49.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveStreamMonitor'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveStreamMonitor', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0d-f228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0d-f228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + ], + 'UpdateLiveStreamTranscode' => [ + 'summary' => '更新通用转码配置信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'MattingLayout', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '206836', + 'abilityTreeNodes' => ['FEATUREliveG4SX14', 'FEATUREliveHVN9B2'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '源流抠图后的布局位置信息', - 'type' => 'object', - 'properties' => [ - 'PositionX' => [ - 'description' => '位置参数,坐标x。取值:**0~1**。素材位置以左上角为基准点。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0', - ], - 'PositionY' => [ - 'description' => '位置参数,坐标y。取值:**0~1**。素材位置以左上角为基准点。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0', - ], - 'HeightNormalized' => [ - 'description' => '高度归一化值。即抠出的人像与背景的高度比。取值:**0~1**。', - 'type' => 'number', - 'format' => 'float', - 'required' => false, - 'example' => '0.5', - ], - ], - 'required' => true, - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => ['description' => '主播流域名,不可修改。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => ['description' => '播流所属应用名称,不可修改。', 'type' => 'string', 'required' => true, 'example' => 'liveApp****'], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => ['description' => '转码模版,不可修改。', 'type' => 'string', 'required' => true, 'example' => 'lsd'], + ], + [ + 'name' => 'EncryptParameters', + 'in' => 'query', + 'schema' => ['description' => '加密配置。JSON格式,各字段说明如下:'."\n" + .'- **EncryptType**:加密类型。固定取值aliyun。'."\n" + .'- **KmsKeyID**:用户KMS主密钥ID。'."\n" + .'- **KmsKeyExpireInterval**:换Key周期。取值范围:60~3600,单位:秒。'."\n" + .'> 当使用DRM加密时,**KmsKeyID**不可修改。', 'type' => 'string', 'required' => false, 'example' => '{"EncryptType": "aliyun", "KmsKeyID":"afce5722-81d2-43c3-9930-7601da11****","KmsKeyExpireInterval":"3600"}'], + ], + [ + 'name' => 'Lazy', + 'in' => 'query', + 'schema' => ['description' => '是否开启触发转码。取值:'."\n" + .'- **yes**:开启触发转码。'."\n" + .'- **no**:不开启触发转码。', 'type' => 'string', 'required' => false, 'example' => 'yes', 'default' => 'yes'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '响应结构体', + 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求id', - 'type' => 'string', - 'example' => '0BA6B3C4-525A-5381-A2B0-5351323F31C5', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'LiveServiceNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.PurchaseTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.ExpireTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidChargeType.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidChargeType.PostSupport', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterTemplate.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidParameter.ChargeType', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidPeriod.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidClientToken.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectCasterStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'CasterNumberExceed', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => '配置已存在,请检查后重试。'], ], - 403 => [ - [ - 'errorCode' => 'PermissionDenied', - 'errorMessage' => '%s, please check and try again later.', - ], + ], + 'title' => '更新通用转码配置', + 'description' => '先通过密钥管理服务KMS获取用户KMS主密钥ID,再调用本接口添加转码配置信息,目前本接口只支持标准质量模板和窄带高清™转码模板两种转码模板。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为30次/秒。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveStreamTranscode'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidParameter.NormType', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidConfiguration.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 408 => [ - [ - 'errorCode' => 'ModifyLiveAIStudio.Timeout', - 'errorMessage' => '%s, please try again later.', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:UpdateLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0BA6B3C4-525A-5381-A2B0-5351323F31C5\\"\\n}","type":"json"}]', - 'title' => '修改虚拟演播模板', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', ], - 'DescribeLiveAIStudio' => [ - 'summary' => '查询用户账号下的虚拟演播模板。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'UpdateLiveStreamWatermark' => [ + 'summary' => '调用UpdateLiveStreamWatermark更新水印模板。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '239765', - 'abilityTreeNodes' => [ - 'FEATUREliveY7SMJ1', + 'abilityTreeNodes' => ['FEATUREliveCT0GRQ'], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => ['description' => '水印模板ID。'."\n" + .'>可查看[AddLiveStreamWatermark](~~2848096~~)接口返回参数值获取TemplateId。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => '水印名称。', 'type' => 'string', 'required' => false, 'example' => 'livewatermark****'], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => '自定义水印描述信息。', 'type' => 'string', 'required' => false, 'example' => 'my watermark'], + ], + [ + 'name' => 'RefWidth', + 'in' => 'query', + 'schema' => ['description' => '参考背景视频宽,单位:px。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1920'], + ], + [ + 'name' => 'RefHeight', + 'in' => 'query', + 'schema' => ['description' => '参考背景视频高,单位:px。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1080'], ], - ], - 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'XOffset', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '⽔印X轴偏移,单位:px。'."\n" + .'>相对于参考背景宽RefWidth, 如果选择的是TopLeft,那么XOffset是指⽔印图⽚的左上⻆和背景视频的左上⻆的相对位置X。其中坐标指向背景视频中⼼的⽅向为正⽅向,即X轴的正⽅向是向右。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '50.0'], ], [ - 'name' => 'StudioId', + 'name' => 'YOffset', 'in' => 'query', - 'schema' => [ - 'description' => '可选参数,指定筛选模板Id', - 'type' => 'string', - 'required' => false, - 'example' => 'dbe61b87-db9a-448f-8757-a875edb3f944', - ], + 'schema' => ['description' => '⽔印Y轴偏移,单位:px。'."\n" + .'>相对于参考背景⾼RefHeight,如果选择的是TopLeft,那么YOffset是指⽔印图⽚的左上⻆和背景视频的左上⻆的相对位置Y。其中坐标指向背景视频中⼼的⽅向为正⽅向,即Y轴的正⽅向是向下。', 'type' => 'number', 'format' => 'float', 'required' => false, 'example' => '100.0'], ], [ - 'name' => 'StudioName', + 'name' => 'Height', 'in' => 'query', - 'schema' => [ - 'description' => '虚拟背景模板名称', - 'type' => 'string', - 'required' => false, - 'example' => 'sub02', - ], + 'schema' => ['description' => '水印图片高度,单位:px。对比参考背景RefHeight,最终按照⽐例进⾏⾃适应缩放为准。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '200'], ], [ - 'name' => 'PageNumber', + 'name' => 'Transparency', 'in' => 'query', - 'schema' => [ - 'description' => '当前页码。默认值为**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '水印透明度,数值越小越透明。取值:0~255。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '255'], ], [ - 'name' => 'PageSize', + 'name' => 'OffsetCorner', 'in' => 'query', - 'schema' => [ - 'description' => '单页显示应用的数量,默认值:10。取值范围:1~50。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => '位置。取值:'."\n" + ."\n" + .'- TopLeft:左上。'."\n" + ."\n" + .'- TopRight:右上。'."\n" + ."\n" + .'- BottomLeft:左下。'."\n" + ."\n" + .'- BottomRight:右下。', 'type' => 'string', 'required' => false, 'example' => 'TopRight'], + ], + [ + 'name' => 'PictureUrl', + 'in' => 'query', + 'schema' => ['description' => '水印图片链接。', 'type' => 'string', 'required' => false, 'example' => 'http://example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'Id of the request', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'Total' => [ - 'description' => '总模板数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'PageNumber' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '单页显示应用的数量,默认值:10。取值范围:1~50。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'StudioConfigs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SubtitleConfig' => [ - 'description' => '虚拟演播厅模板信息', - 'type' => 'array', - 'items' => [ - 'description' => '虚拟演播厅模板信息', - 'type' => 'object', - 'properties' => [ - 'MediaType' => [ - 'description' => '多媒体素材类型:VOD,PIC,LIVE 三选一'."\n" - ."\n\n" - .'- VOD, 点播视频文件'."\n" - .'- PIC,图片'."\n" - .'- LIVE,直播流', - 'type' => 'string', - 'example' => 'VOD', - ], - 'MediaLayout' => [ - 'description' => '多媒体布局信息', - 'type' => 'string', - 'example' => '"{\\"positionY\\":\\"0.0\\",\\"positionX\\":\\"0.0\\",\\"heightNormalized\\":\\"0.5\\"}"', - ], - 'MediaResourceUrl' => [ - 'description' => '多媒体素材链接url', - 'type' => 'string', - 'example' => 'https://testbucket.xx.com/2.jpg', - ], - 'MediaResourceId' => [ - 'description' => '多媒体素材点播资源id', - 'type' => 'string', - 'example' => ' '."\n" - .'d0eb493192c771efba644531858c0102'."\n", - ], - 'BackgroundType' => [ - 'description' => '背景素材类型:VOD,PIC,LIVE 三选一'."\n" - ."\n" - .'- VOD, 点播视频文件'."\n" - .'- PIC,图片'."\n" - .'- LIVE,直播流', - 'type' => 'string', - 'example' => 'VOD', - ], - 'BackgroundResourceUrl' => [ - 'description' => '背景素材外部访问地址,需要保证公网可用,与BackgroundResourceId二选一即可。', - 'type' => 'string', - 'example' => 'https://testbucket.xx.com/2.jpg', - ], - 'BackgroundResourceId' => [ - 'description' => '背景素材资源ID。', - 'type' => 'string', - 'example' => 'd0eb493192c771efba644531858c0102', - ], - 'Description' => [ - 'description' => '自定义规则描述信息。', - 'type' => 'string', - 'example' => 'user defined description', - ], - 'TemplateId' => [ - 'description' => '虚拟演播模板ID。', - 'type' => 'string', - 'example' => '24654384-f5ac-40ea-823b-74e85a61dd9f', - ], - 'TemplateName' => [ - 'description' => '虚拟演播模板名称。与AddLiveAiStudio中的StudioName参数相同', - 'type' => 'string', - 'example' => 'studio1', - ], - 'MattingLayout' => [ - 'description' => '多媒体素材位置布局信息。', - 'type' => 'string', - 'example' => '"{\\"positionY\\":\\"0.0\\",\\"positionX\\":\\"0.0\\",\\"heightNormalized\\":\\"0.5\\"}"', - ], - 'MattingType' => [ - 'description' => '源流抠图类型,对用户推流进行抠图处理'."\n" - ."\n" - .'- green 绿幕背景人像抠图'."\n" - .'- blue 蓝幕背景人像抠图'."\n" - .'- complex 实景人像抠图', - 'type' => 'string', - 'example' => 'complex', - ], - 'Height' => [ - 'description' => '预览画面高度,单位:px'."\n" - ."\n" - .'预览画面宽度x高度仅支持以下规格: '."\n" - .'- 横屏流畅 360P 640x360 '."\n" - .'- 竖屏流畅 360P 360x640'."\n" - .'- 横屏标清 480P 854x480'."\n" - .'- 竖屏标清 480P 480x854'."\n" - .'- 横屏高清 720P 1280x720'."\n" - .'- 竖屏高清 720P 720x1280'."\n" - .'- 横屏超清 1080P 1920x1080'."\n" - .'- 竖屏超清 1080P 1080x1920', - 'type' => 'string', - 'example' => '1080', - ], - 'Width' => [ - 'description' => '预览画面宽度。', - 'type' => 'string', - 'example' => '1920', - ], - 'RuleIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ruleId' => [ - 'description' => '绑定的策略ID集合。', - 'type' => 'array', - 'items' => [ - 'description' => '规则ID。', - 'type' => 'string', - 'example' => '2414378f-541a-48d3-be0c-535212f9a6b4', - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b9676b3'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'LiveServiceNotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.PurchaseTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.ExpireTime', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidChargeType.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidChargeType.PostSupport', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidCasterTemplate.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidParameter.Malformed', - 'errorMessage' => 'There are invalid parameters: %s.', - ], - [ - 'errorCode' => 'InvalidParameter.ChargeType', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidPeriod.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidUserId.Malformed', - 'errorMessage' => '%s, please check userId.', - ], - [ - 'errorCode' => 'InvalidClientToken.Malformed', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'IncorrectCasterStatus', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - [ - [ - 'errorCode' => 'CasterNumberExceed', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 403 => [ - [ - 'errorCode' => 'PermissionDenied', - 'errorMessage' => '%s, please check and try again later.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], ], + ], + 'title' => '更新水印模板', + 'description' => '本接口支持对指定TemplateId的⽔印模板各项参数进⾏更新调整。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidParameter.NormType', - 'errorMessage' => '%s, please check and try again later.', - ], - [ - 'errorCode' => 'InvalidConfiguration.NotFound', - 'errorMessage' => '%s, please check and try again later.', - ], - ], - 408 => [ - [ - 'errorCode' => 'DescribeLiveAIStudio.Timeout', - 'errorMessage' => '%s, please try again later.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveStreamWatermark', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"Total\\": 100,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"StudioConfigs\\": {\\n \\"SubtitleConfig\\": [\\n {\\n \\"MediaType\\": \\"VOD\\",\\n \\"MediaLayout\\": \\"\\\\\\"{\\\\\\\\\\\\\\"positionY\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"positionX\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"heightNormalized\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.5\\\\\\\\\\\\\\"}\\\\\\"\\",\\n \\"MediaResourceUrl\\": \\"https://testbucket.xx.com/2.jpg\\",\\n \\"MediaResourceId\\": \\"\\\\t\\\\nd0eb493192c771efba644531858c0102\\\\n\\",\\n \\"BackgroundType\\": \\"VOD\\",\\n \\"BackgroundResourceUrl\\": \\"https://testbucket.xx.com/2.jpg\\",\\n \\"BackgroundResourceId\\": \\"d0eb493192c771efba644531858c0102\\",\\n \\"Description\\": \\"user defined description\\",\\n \\"TemplateId\\": \\"24654384-f5ac-40ea-823b-74e85a61dd9f\\",\\n \\"TemplateName\\": \\"studio1\\",\\n \\"MattingLayout\\": \\"\\\\\\"{\\\\\\\\\\\\\\"positionY\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"positionX\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"heightNormalized\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0.5\\\\\\\\\\\\\\"}\\\\\\"\\",\\n \\"MattingType\\": \\"complex\\",\\n \\"Height\\": \\"1080\\",\\n \\"Width\\": \\"1920\\",\\n \\"RuleIds\\": {\\n \\"ruleId\\": [\\n \\"2414378f-541a-48d3-be0c-535212f9a6b4\\"\\n ]\\n }\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '查询虚拟演播模板', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5c6a2a0df228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', ], - 'CreateLivePullToPush' => [ - 'summary' => '调用CreateLivePullToPush创建拉流转推任务。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'https', - ], + 'UpdateLiveStreamWatermarkRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '240052', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeNodes' => ['FEATUREliveCT0GRQ'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-beijing', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Region', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '指定任务启动所在区域,取值:'."\n" - ."\n" - .'- ap-southeast-1(新加坡)'."\n" - .'- ap-southeast-5(印度尼西亚)'."\n" - .'- cn-beijing(北京)'."\n" - .'- cn-shanghai(上海)'."\n" - .'- cn-shenzhen(深圳)', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - 'enum' => [ - 'ap-northeast-1', - 'ap-southeast-1', - 'ap-southeast-5', - 'eu-central-1', - 'me-central-1', - 'cn-beijing', - 'cn-shanghai', - 'cn-shenzhen', - 'cn-qingdao', - 'preregion', - ], - ], + 'schema' => ['description' => '水印规则ID。'."\n" + .'>可查看[AddLiveStreamWatermarkRule](~~2848100~~)接口返回参数值获取RuleId。', 'type' => 'string', 'required' => true, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9****'], ], [ - 'name' => 'TaskName', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => '任务名称,用于支持模糊查询,默认值为""。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => '自定义规则名称。', 'type' => 'string', 'required' => false, 'example' => 'WatermarkRule****'], ], [ - 'name' => 'StartTime', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => '任务开始时间。'."\n" - ."\n" - .'> - 格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => true, - 'example' => '2024-08-26T10:30:00Z', - ], + 'schema' => ['description' => '自定义规则描述信息。', 'type' => 'string', 'required' => false, 'example' => 'my rule'], ], [ - 'name' => 'EndTime', + 'name' => 'TemplateId', 'in' => 'query', + 'schema' => ['description' => '水印模板ID。'."\n" + .'>可查看[AddLiveStreamWatermark](~~2848096~~)接口返回参数值获取TemplateId。', 'type' => 'string', 'required' => false, 'example' => '445409ec-7eaa-461d-8f29-4bec2eb9 ****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '任务结束时间。'."\n" - ."\n" - .'> - 格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'> - EndTime必须大于StartTime。'."\n" - .'> - EndTime必须大于当前时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2024-08-27T14:30:00Z', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5c6a2a0df228-4a64-af62-20e91b9676b3'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], + ], + ], + 'title' => '更新水印规则', + 'summary' => '调用UpdateLiveStreamWatermarkRule更新水印规则。', + 'description' => '本接口支持对指定RuleId的⽔印规则各项参数进⾏更新调整。'."\n" + .'## QPS限制'."\n" + .'本接口的单用户QPS限制为60次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveStreamWatermarkRule'], + ], + ], + 'ramActions' => [ [ - 'name' => 'SourceType', - 'in' => 'query', - 'schema' => [ - 'description' => '源流类型,枚举值:'."\n" - ."\n" - .'- live,直播流。'."\n" - .'- vod,阿里云视频点播资源。'."\n" - .'- url,第三方视频文件资源。', - 'type' => 'string', - 'required' => true, - 'example' => 'live', - 'enum' => [ - 'live', - 'vod', - 'url', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveStreamWatermarkRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b9676b3\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5c6a2a0df228-4a64-af62-20e91b9676b3\\r\\n","errorExample":""}]', + ], + 'UpdateMessageApp' => [ + 'summary' => '调用UpdateMessageApp更新互动消息应用信息。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'SourceProtocol', - 'in' => 'query', - 'schema' => [ - 'description' => '源流协议名。'."\n" - ."\n" - .'取值范围'."\n" - .'- rtmp'."\n" - .'- srt'."\n" - .'- http-flv'."\n" - .'- hls'."\n" - .'> 此参数仅当**sourcetype参数取值为live时必填**,取值为vod、url时无效。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp', - 'enum' => [], - ], + 'AK' => [], ], + ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'SourceUrls', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '源流URL地址列表。'."\n" - ."\n" - .'> - live类型仅支持填写1个完整直播播放URL。'."\n" - .'> - vod、url类型可填写最多30个。'."\n" - .'> - live类型支持:rtmp、rtsp、srt、http-flv协议。'."\n" - .'> - vod类型填写阿里云视频点播媒资ID。'."\n" - .'> - url类型支持:mp4、http-flv协议。', - 'type' => 'array', - 'items' => [ - 'description' => '源流URL地址。'."\n" - ."\n" - .'> - live类型仅支持填写1个完整直播播放URL。'."\n" - .'> - vod、url类型可填写最多30个。'."\n" - .'> - live类型支持:rtmp、rtsp、srt、http-flv协议。'."\n" - .'> - vod类型填写阿里云视频点播媒资ID。'."\n" - .'> - url类型支持:mp4、http-flv协议。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434', - ], - 'required' => true, - 'example' => 'testurls', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], ], [ - 'name' => 'DstUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '推流目标URL地址。'."\n" - ."\n" - .'> - 支持rtmp协议。'."\n" - .'> - 最大长度为2000个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434', - ], + 'name' => 'AppName', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用名称。', 'type' => 'string', 'required' => false, 'example' => 'testApp'], ], [ - 'name' => 'RepeatNumber', - 'in' => 'query', + 'name' => 'AppConfig', + 'in' => 'formData', + 'style' => 'json', 'schema' => [ - 'description' => '播放完后重复继续播放的次数。取值:'."\n" - ."\n" - .'- 0(默认值):不重复播放。'."\n" - .'- -1:一直循环重复。'."\n" - .'- 其他正整数:播放完后重复继续播放的次数。'."\n" - ."\n" - .'> 此参数仅针对点播或第三方视频流。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '应用配置。', + 'type' => 'object', 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [], + 'additionalProperties' => ['type' => 'string', 'description' => '应用的配置信息,用户自定义内容。', 'example' => '"appAlias":"localApp"'], ], ], [ - 'name' => 'FileIndex', - 'in' => 'query', + 'name' => 'Extension', + 'in' => 'formData', + 'style' => 'json', 'schema' => [ - 'description' => '文件索引,从第n个文件开始播放起。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '拓展字段。', + 'type' => 'object', 'required' => false, - 'example' => '0', + 'additionalProperties' => ['type' => 'string', 'description' => '拓展字段,按需传递,需要额外记录的应用属性。', 'example' => 'test001'], ], ], - [ - 'name' => 'Offset', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '启动偏移,视频文件起始偏移值。单位:秒。取值:大于0。'."\n" - ."\n" - .'> - 表示从相对于首帧的偏差时间作为开始读取的位置(指第一个视频)。'."\n" - .'> - 此参数仅针对点播或第三方视频流。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'Success' => ['description' => '更新是否成功,取值:'."\n" + ."\n" + .'- true:成功。'."\n" + ."\n" + .'- false:不成功。', 'type' => 'boolean', 'example' => 'true'], + ], + ], + ], ], ], + ], + 'title' => '更新互动消息应用信息(旧版)', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateMessageApp'], + ], + ], + 'ramActions' => [ [ - 'name' => 'CallbackUrl', - 'in' => 'query', - 'schema' => [ - 'description' => 'HTTP回调地址,默认为空。'."\n" - ."\n" - .'> - 接收任务相关回调的地址。'."\n" - .'> - 最大长度为 2000 个字符。'."\n" - .'> - 不指定本参数则不会回调相关任务事件。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://callback*****.com', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', + ], + 'UpdateMessageGroup' => [ + 'summary' => '调用UpdateMessageGroup更新消息组信息。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'RetryInterval', - 'in' => 'query', - 'schema' => [ - 'description' => '重试间隔,单位秒,取值区间[60,300],默认60秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '300', - 'minimum' => '60', - 'example' => '60', - 'default' => '60', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'RetryCount', - 'in' => 'query', + 'name' => 'GroupId', + 'in' => 'formData', + 'schema' => ['description' => '消息组ID。', 'type' => 'string', 'required' => true, 'example' => 'AE35-****-T95F'], + ], + [ + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '互动消息应用ID。', 'type' => 'string', 'required' => true, 'example' => 'VKL3***'], + ], + [ + 'name' => 'Extension', + 'in' => 'formData', + 'style' => 'json', 'schema' => [ - 'description' => '重试次数,默认值为3。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '拓展字段。', + 'type' => 'object', 'required' => false, - 'example' => '3', - 'default' => '3', + 'additionalProperties' => ['type' => 'string', 'description' => '消息组拓展字段。', 'example' => 'test01'], ], ], ], @@ -70588,104 +53566,62 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68*****', - ], - 'RetCode' => [ - 'description' => '返回码。'."\n" - ."\n" - .'> - 正常情况返回“0”。'."\n" - .'> - 异常情况请参考下文错误码列表。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Description' => [ - 'description' => '错误描述。', - 'type' => 'string', - 'example' => 'OK', - ], - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'fd245384-4067-4f91-9d75-9666a6bc9****', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-****-CB92E68F4CD8'], + 'Result' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'Success' => ['description' => '更新是否成功,取值:'."\n" + ."\n" + .'- true:成功更新。'."\n" + ."\n" + .'- false:更新失败。', 'type' => 'boolean', 'example' => 'true'], + ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParam.CodeIllegalDuration', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'CodeInvalidAliUid', - 'errorMessage' => 'This aliuid does not have a live domain name.', - ], - [ - 'errorCode' => 'CodeNotEnoughResource', - 'errorMessage' => 'Exceeded configuration limits or insufficient resources.', - ], - [ - 'errorCode' => 'CodeConfigAlreadyExists', - 'errorMessage' => 'Code Config Already Exists', - ], + 'title' => '更新消息组(旧版)', + 'description' => '## QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateMessageGroup'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68*****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\",\\n \\"TaskId\\": \\"fd245384-4067-4f91-9d75-9666a6bc9****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68*****\\n 0\\n OK\\n fd245384-4067-4f91-9d75-9666a6bc9****\\n","errorExample":""}]', - 'title' => '创建拉流转推任务', - 'description' => '>拉流转推属于收费功能,于 2025年12月05日 00:00 起正式计费。>'."\n" - .'- 费用详情请参见[拉流转推费用](~~2997901~~)。'."\n" - .'- 调用本接口创建拉流转推任务。'."\n" - .'- 支持创建直播拉流任务,也支持创建点播拉流任务。'."\n" - .'- 任务创建后,到了设置的开始时间,会真正开始运行,到了设置的结束时间,会自动停止并删除清理。'."\n" - .'- 任务中设置的推流目标地址需要确保未被其他任务使用,不然会因为多个任务同时转推相同地址导致推流失败。'."\n" - .'- 拉流转推回调事件包括拉流转推任务运行状态变化回调和拉流转推任务已退出回调。更多信息,请参见[拉流转推事件回调](~~2846768~~)。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\",\\n \\"Result\\": {\\n \\"Success\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-****-CB92E68F4CD8\\n \\n true\\n \\n","errorExample":""}]', ], - 'UpdateLivePullToPush' => [ - 'summary' => '调用UpdateLivePullToPush更新拉流转推任务。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'UpdateMixStream' => [ + 'summary' => '更新合流任务。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '240074', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeCode' => '107287', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ @@ -70695,314 +53631,292 @@ 'description' => '地域ID。', 'type' => 'string', 'required' => false, - 'example' => 'cn-beijing', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'fd245384-4067-4f91-9d75-9666a6bc****', - ], - ], - [ - 'name' => 'Region', - 'in' => 'query', - 'schema' => [ - 'description' => '指定任务启动所在区域,取值:'."\n" - ."\n" - .'- ap-southeast-1(新加坡)'."\n" - .'- ap-southeast-5(印度尼西亚)'."\n" - .'- cn-beijing(北京)'."\n" - .'- cn-shanghai(上海)', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - 'enum' => [ - 'ap-northeast-1', - 'ap-southeast-1', - 'ap-southeast-5', - 'eu-central-1', - 'me-central-1', - 'cn-beijing', - 'cn-shanghai', - 'cn-shenzhen', - 'cn-qingdao', - 'preregion', - ], - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '任务开始时间。'."\n" - .'> - 格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'> - 若任务已经启动运行则更新无效。', - 'type' => 'string', - 'required' => false, - 'example' => '2024-08-23T15:30:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '任务结束时间。'."\n" - .'> - 格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'> - EndTime必须大于StartTime。'."\n" - .'> - EndTime必须大于当前时间。'."\n" - .'> - 若任务已结束退出则更新无效。', - 'type' => 'string', - 'required' => false, - 'example' => '2024-08-27T14:30:00Z', - ], - ], - [ - 'name' => 'SourceUrls', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '源流URL地址列表。'."\n" - ."\n" - .'> - live类型仅支持填写1个完整直播播放URL。'."\n" - .'> - vod、url类型可填写最多30个。'."\n" - .'> - live类型支持:rtmp、rtsp、srt、http-flv协议。'."\n" - .'> - vod类型填写阿里云视频点播媒资ID。'."\n" - .'> - url类型支持:mp4、http-flv协议。'."\n" - .'> - 针对直播源流可立即生效;针对视频文件源流,需要等当前正在播放视频结束后生效,生效后基于最新视频列表从头开始播放。'."\n" - .'> - 需要在任务停止运行的状态下更新,重启后生效。', - 'type' => 'array', - 'items' => [ - 'description' => '源流URL地址。'."\n" - ."\n" - .'> - live类型仅支持填写1个完整直播播放URL。'."\n" - .'> - vod、url类型可填写最多30个。'."\n" - .'> - live类型支持:rtmp、rtsp、srt、http-flv协议。'."\n" - .'> - vod类型填写阿里云视频点播媒资ID。'."\n" - .'> - url类型支持:mp4、http-flv协议。'."\n" - .'> - 针对直播源流可立即生效;针对视频文件源流,需要等当前正在播放视频结束后生效,生效后基于最新视频列表从头开始播放。'."\n" - .'> - 需要在任务停止运行的状态下更新,重启后生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434', - ], - 'required' => false, - 'example' => 'changedtesturl', + 'enumValueTitles' => [], + 'example' => 'cn-shanghai', + 'default' => 'cn-shanghai', ], ], [ - 'name' => 'RepeatNumber', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '播放完后重复继续播放的次数。取值:'."\n" - ."\n" - .'- 0(默认值):不重复播放。'."\n" - .'- -1:一直循环重复。'."\n" - .'- 其他正整数:播放完后重复继续播放的次数。'."\n" - ."\n" - .'> - 此参数仅针对点播或第三方视频流。'."\n" - .'> - 更新后可以立即生效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '-5', - 'enum' => [], - ], + 'schema' => ['description' => '主播流域名。'."\n" + .'>目前仅支持华东2(cn-shanghai)和华北2(cn-beijing)两个区域的域名。'."\n" + .'>'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'Offset', + 'name' => 'MixStreamId', 'in' => 'query', - 'schema' => [ - 'description' => '启动偏移,视频文件起始偏移值。单位:秒。取值:大于0。'."\n" - .'> - 表示从相对于首帧的偏差时间作为开始读取的位置。'."\n" - .'> - 此参数仅针对点播或第三方视频流。'."\n" - .'> - 仅当播放视频列表第一个视频时有效。'."\n" - .'> - 需要在任务停止运行的状态下更新,重启后生效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['description' => '合流任务ID。如果您通过[CreateMixStream接口](~~2848087~~)创建合流任务,请查看CreateMixStream接口调用返回的参数MixStreamId值。', 'type' => 'string', 'required' => true, 'example' => '5b2a046e-74d7-385e-d2d7-8a5b87e4****'], ], [ - 'name' => 'CallbackUrl', + 'name' => 'InputStreamList', 'in' => 'query', - 'schema' => [ - 'description' => '回调地址,默认为空。'."\n" - .'> - 接收任务相关回调的地址。'."\n" - .'> - 最大长度为 2000 个字符。'."\n" - .'> - 不指定本参数则不会回调相关任务事件。'."\n" - .'> - 仅当下一次事件触发时开始生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://callback*****.com', - ], + 'schema' => ['description' => '合流输入列表,JSON数组。'."\n" + ."\n" + .'参考下方的**InputStreamConfig**。', 'type' => 'string', 'required' => true, 'example' => '{"InputStreamList":[{"LayoutConfig":{"FillSizeNormalized":[0.5,0.5],"FillPositionNormalized":[0,0],"PositionRefer":"topLeft","FillMode":"fit"},"LayoutChildId":1,"ResourceValue":"rtmp://aliyundoc.com/caster/8564a8d1659b4dc69df5f66cf4c9****","ResourceType":"live"},{"LayoutConfig":{"FillSizeNormalized":[0.5,0.5],"FillPositionNormalized":[0.5,0],"PositionRefer":"topLeft","FillMode":"fit"},"LayoutChildId":2,"ResourceValue":"http://developer.aliyundoc.com/3c3c25426cf744fdb90423e76b78a28a/69b1a16e2b1d423d9841bf27a96f134e-0b1cba51f58bb5ad3a854x96a2c735f****.mp4","ResourceType":"url"},{"LayoutConfig":{"FillSizeNormalized":[1,0.5],"FillPositionNormalized":[0,0.5],"PositionRefer":"topLeft","FillMode":"fit"},"LayoutChildId":3,"ResourceValue":"http://aliyundoc.com/c0c6c5446b56432389e91535864938da/ed4adc5263b4474c954b95607a5350ae-fda757b3328438a8cf-4k57f373a0f0****.mp4","ResourceType":"url"}]}'], ], [ - 'name' => 'FileIndex', + 'name' => 'LayoutId', 'in' => 'query', - 'schema' => [ - 'description' => '视频索引,默认值为0。'."\n" - .'> 需要在任务停止运行的状态下更新,重启后生效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - ], + 'schema' => ['description' => '布局ID。支持: '."\n" + .'- **MixStreamLayout-1-1**'."\n" + .'- **MixStreamLayout-2-1**'."\n" + .'- **MixStreamLayout-2-2**'."\n" + .'- **MixStreamLayout-2-3**'."\n" + .'- **MixStreamLayout-3-1**'."\n" + .'- **MixStreamLayout-3-2**'."\n" + .'- **MixStreamLayout-4-1**'."\n" + .'- **USERDEFINED**(非上述预设布局,取固定值**USERDEFINED**)'."\n" + .'> 更多信息请参见[合流预设布局参考](~~199361~~)', 'type' => 'string', 'required' => false, 'example' => 'MixStreamLayout-3-2'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68*****', - ], - 'RetCode' => [ - 'description' => '返回码。'."\n" - ."\n" - .'> - 正常情况返回“0”。'."\n" - .'> - 异常情况请参考下文错误码列表。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Description' => [ - 'description' => '错误描述。', - 'type' => 'string', - 'example' => 'OK', - ], + 'MixStreamId' => ['description' => '合流任务ID。可作为查询合流任务列表和删除合流任务的请求参数。', 'type' => 'string', 'example' => '5b2a046e-74d7-385e-d2d7-8a5b87e4****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '1A8CDDFF-0121-4ABB-DA60-AEF095A8W34F'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParam.CodeIllegalDuration', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'CodeInvalidAliUid', - 'errorMessage' => 'This aliuid does not have a live domain name.', - ], - [ - 'errorCode' => 'CodeTaskNotExist', - 'errorMessage' => 'Task does not exist.', - ], - [ - 'errorCode' => 'CodeTaskHasStarted', - 'errorMessage' => 'The task has already started.', - ], + ['errorCode' => 'InvalidUserId.Malformed', 'errorMessage' => '%s, please check userId.', 'description' => '传入的userId无效,请检查。'], + ['errorCode' => 'InvalidParameter.Malformed', 'errorMessage' => 'There are invalid parameters: %s.', 'description' => '存在无效参数:%s。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], + ], + [ + ['errorCode' => 'IllegalOperation', 'errorMessage' => '%s, please check and try again later.', 'description' => '不允许的操作,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'MixStreamAlreadyExist', 'errorMessage' => '%s, please check and try again later.', 'description' => '合流任务已存在,请检查后重试。'], + ['errorCode' => 'MixStreamNotExist', 'errorMessage' => '%s, please check and try again later.', 'description' => '合流任务不存在,请检查后重试。'], + ], + [ + ['errorCode' => 'InvalidDomainName.NotFound', 'errorMessage' => '%s, please check and try again later.', 'description' => '域名不存在,请检查后重试。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => '%s, please try again later.', 'description' => '内部错误,请稍后重试。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68*****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68*****\\n 0\\n OK\\n","errorExample":""}]', - 'title' => '更新拉流转推任务', - 'description' => '- 调用本接口更新拉流转推任务。'."\n" - .'- 任务未到设置的开始时间,支持更新SourceType、Region和DstUrl。'."\n" - .'- 任务运行中(含异常重试状态)仅支持更新CallbackUrl和RepeatTime且更新会立即生效。'."\n" - .'- 任务已停止,除SourceType、Region和DstUrl,其他参数均允许更新。'."\n" + 'title' => '更新合流任务', + 'description' => '调用本接口更新合流任务。本接口目前支持更新输入源以及布局,不支持更新输出分辨率等内容。'."\n" ."\n" .'## QPS限制'."\n" .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteLivePullToPush' => [ - 'summary' => '调用DeleteLivePullToPush删除拉流转推任务。', - 'methods' => [ - 'get', + 'requestParamsDescription' => '### InputStreamConfig'."\n" + ."\n" + .'|名称 |类型 |描述 |'."\n" + .'| ------------- |------------ | ----- |'."\n" + .'|ResourceType|String|资源类型。
**live**:直播流地址。
**url**:文件流地址。 |'."\n" + .'|ResourceValue|String|资源地址。
如果ResourceType为live,则为直播流地址。直播流地址支持RTMP、FLV和ARTC协议,不支持HLS协议。
如果ResourceType为url,则为文件流地址。 |'."\n" + .'|LayoutChildId|String|布局方格对应ID(也代表合流的叠加顺序)。 |'."\n" + .'|LayoutConfig |LayoutConfig[] |JSON数组,代表所在位置、填充方式等布局信息。
如果使用预设布局,则此参数可以不填。
如果设置了该值,则忽略LayoutChildId对应的预设布局信息。|'."\n" + ."\n" + .'### LayoutConfig'."\n" + ."\n" + .'|名称 |类型 |必选 |描述 |'."\n" + .'| ------------- |------------ |------------ | ----- |'."\n" + .'|FillSizeNormalized|JSON浮点数组|必选|表示该Layer元素需要填充的尺寸大小。
[w,h]:w、h取值范围[0-1]。其中宽高都是进行了归一化计算。
例如:[0.2,0.3]代表水平占比20%,垂直占比30%。 |'."\n" + .'|FillPositionNormalized|浮点数数组|必选|表示该Layer元素填充区位置归一化值。
[x,y]:x、y的取值范围[0-1]。
例如:[0.1,0.1]代表左上角水平偏移10%, 垂直偏移10%。 |'."\n" + .'|PositionRefer|字符串|可选|设置元素的position参考坐标值。
建议设置topLeft,代表左上角。|'."\n" + .'|FillMode|字符串|可选|设置元素填充方式。
**none**:不填充。
**fit**:缩放填充保证最长的边达到边界,而最短的边可能需要加黑边。
**fill**:先按照宽和高的最大比例值进行等比缩放,然后进行crop,保证全部填充。
建议设置为fit。 |', + 'responseParamsDescription' => ' ', + 'extraInfo' => '### SDK示例'."\n" + .'详细示例,请参见[合流代码示例](https://help.aliyun.com/document_detail/199362.html)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateMixStream'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateMixStream', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MixStreamId\\": \\"5b2a046e-74d7-385e-d2d7-8a5b87e4****\\",\\n \\"RequestId\\": \\"1A8CDDFF-0121-4ABB-DA60-AEF095A8W34F\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 5b2a046e-74d7-385e-d2d7-8a5b87e4****\\n 1A8CDDFF-0121-4ABB-DA60-AEF095A8W34F\\n","errorExample":""}]', + ], + 'UpdateRtcCloudRecording' => [ + 'summary' => '更新rtc云端录制任务。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '238152', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'chargeType' => 'paid', + 'abilityTreeCode' => '269333', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '任务id。由 StartRtcCloudRecording 返回,只支持更新运行中或异常中的任务。', 'type' => 'string', 'required' => true, 'example' => '******73-8501-****-8ac1-72295a******'."\n"], ], [ - 'name' => 'TaskId', + 'name' => 'SubscribeParams', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '任务ID。', - 'type' => 'string', + 'description' => '更新后的订阅相关参数。', + 'type' => 'object', + 'properties' => [ + 'SubscribeUserIdList' => [ + 'description' => '订阅的UserId信息列表,单流录制模式下,会对其中每个UserId分别进行录制;混流录制模式下,会将所有UserId的音视频混合到一组音视频中。'."\n" + .'> '."\n" + .'> - 数组内最多支持17个元素。', + 'type' => 'array', + 'items' => [ + 'description' => '订阅的UserId的信息', + 'type' => 'object', + 'properties' => [ + 'UserId' => ['description' => '订阅的UserId。', 'type' => 'string', 'required' => true, 'example' => 'userA'], + 'StreamType' => [ + 'description' => '订阅的UserId的媒体类型。取值:'."\n" + ."\n" + .'- 0:原始流,即包括音频和视频。(默认值)'."\n" + ."\n" + .'- 1:仅音频流。'."\n" + ."\n" + .'- 2:仅视频流。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => ['原始流,即包括音频和视频', '仅音频流', '仅视频流'], + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1', '2'], + ], + 'SourceType' => [ + 'description' => '该UserId的视频输入流类型,仅针对订阅视频流时(StreamType=2)有效。取值:'."\n" + ."\n" + .'- 0:摄像头。(默认值)'."\n" + ."\n" + .'- 1:屏幕共享。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => ['摄像头', '屏幕共享'], + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1'], + ], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 17, + 'minItems' => 1, + ], + ], 'required' => true, - 'example' => '3efb43c5-18ff-49eb-92a6-005f6521****', ], ], [ - 'name' => 'Region', + 'name' => 'MixLayoutParams', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '指定任务启动所在区域,取值:'."\n" - ."\n" - .'- ap-southeast-1(新加坡)'."\n" - .'- ap-southeast-5(印度尼西亚)'."\n" - .'- cn-beijing(北京)'."\n" - .'- cn-shanghai(上海)', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - 'enum' => [ - 'ap-northeast-1', - 'ap-southeast-1', - 'ap-southeast-5', - 'eu-central-1', - 'me-central-1', - 'cn-beijing', - 'cn-shanghai', - 'cn-shenzhen', - 'cn-qingdao', - 'preregion', + 'description' => '更新后的布局相关参数,单流录制模式下不填,混流录制模式下非纯音频转码时必填。', + 'type' => 'object', + 'properties' => [ + 'MixBackground' => [ + 'description' => '混流全局背景图。', + 'type' => 'object', + 'properties' => [ + 'RenderMode' => [ + 'description' => '画面输出时的显示模式。取值:'."\n" + .'- 0:裁剪。(默认值)'."\n" + .'- 1:缩放并显示黑底。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => ['裁剪', '缩放并显示黑底'], + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1'], + ], + 'Url' => ['description' => '背景图URL,最大长度不超过2048个字符。', 'type' => 'string', 'required' => false, 'example' => 'https://xxxx.com/photos/my-test-picture.png'."\n", 'maxLength' => 2048], + ], + 'required' => false, + ], + 'UserPanes' => [ + 'description' => '用于指定订阅的用户的窗口布局信息,只有设置了布局信息的UserId,才会被放到画面中。混流模式且录制非纯音频文件时必填。', + 'type' => 'array', + 'items' => [ + 'description' => '画面中窗口配置。', + 'type' => 'object', + 'properties' => [ + 'UserId' => ['description' => '该窗口对应的UserId。'."\n" + .'- 不设置UserId时,会按照订阅的用户进入频道的顺序依次填入窗口。'."\n" + .'- 这里设置的UserId与SourceType的组合必须包含在SubscribeUserIdList中。'."\n" + .'- 订阅纯音频流是不能加入到布局中的', 'type' => 'string', 'required' => false, 'example' => 'userA'], + 'SourceType' => [ + 'description' => '该UserId的视频输入流类型。不填写UserId时,此处设置SourceType无效。取值:'."\n" + .'- 0:摄像头。(默认值)'."\n" + .'- 1:屏幕共享。'."\n" + ."\n" + .'这里设置的UserId与SourceType的组合必须包含在SubscribeUserIdList中。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => ['摄像头', '屏幕共享'], + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1'], + ], + 'Height' => ['description' => '窗格高度,归一化百分比。取值范围须在[0,1]内。(默认为0)', 'type' => 'string', 'required' => false, 'example' => '0.5', 'default' => '0'], + 'Width' => ['description' => '窗格宽度,归一化百分比。取值范围须在[0,1]内。(默认为0)', 'type' => 'string', 'required' => false, 'example' => '0.5', 'default' => '0'], + 'X' => ['description' => '坐标X,归一化百分比。取值范围须在[0,1]内。(默认为0)', 'type' => 'string', 'required' => false, 'example' => '0', 'default' => '0'], + 'Y' => ['description' => '坐标Y,归一化百分比。取值范围须在[0,1]内。(默认为0)', 'type' => 'string', 'required' => false, 'example' => '0', 'default' => '0'], + 'ZOrder' => ['description' => '叠放顺序,0为最底层,1层在0层之上,以此类推。(默认为0)', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0', 'default' => '0'], + 'SubBackground' => [ + 'description' => '子画面背景图,当用户关闭摄像头、或入会后未推流、或入会后中途离会时,会在布局位置填充为对应的图片。', + 'type' => 'object', + 'properties' => [ + 'RenderMode' => [ + 'description' => '子画面输出时的显示模式。取值:'."\n" + .'- 0:裁剪。(默认值)'."\n" + .'- 1:缩放并显示黑底。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => ['裁剪', '缩放并显示黑底'], + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1'], + ], + 'Url' => ['description' => '背景图URL,最大长度不超过2048个字符。', 'type' => 'string', 'required' => false, 'example' => 'https://xxxx.com/photos/my-test-pane-picture.png'."\n", 'maxLength' => 2048], + ], + 'required' => false, + ], + ], + 'required' => false, + ], + 'required' => false, + ], ], + 'required' => false, ], ], ], @@ -71013,6852 +53927,7578 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68*****', - ], - 'RetCode' => [ - 'description' => '返回码。'."\n" - ."\n" - .'> - 正常情况返回“0”。'."\n" - .'> - 异常情况请参考下文错误码列表。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Description' => [ - 'description' => '错误描述。', - 'type' => 'string', - 'example' => 'OK', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求id。', 'type' => 'string', 'example' => '******58-5876-****-83CA-B56278******'."\n"], + 'TaskId' => ['description' => '任务id。', 'type' => 'string', 'example' => '******73-8501-****-8ac1-72295a******'."\n"], ], ], ], - [], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'CodeInvalidAliUid', - 'errorMessage' => 'This aliuid does not have a live domain name.', - ], - [ - 'errorCode' => 'CodeTaskNotExist', - 'errorMessage' => 'Task does not exist.', - ], + ['errorCode' => 'NotFound.Task', 'errorMessage' => '%s, please check the TaskId.', 'description' => '参数TaskId不存在。'], + ['errorCode' => 'InvalidParameter.TaskId', 'errorMessage' => '%s, please check the TaskId.', 'description' => '指定的task必须处于运行中或者恢复中状态。'], + ['errorCode' => 'InvalidParameter.SubscribeParams.SubscribeUserIdList', 'errorMessage' => '%s, please check the subscribeUserIdList of subscribeParams.', 'description' => '参数SubscribeUserIdList无效,请检查。'], + ['errorCode' => 'InvalidParameter.MixLayoutParams.UserPanes', 'errorMessage' => '%s, please check the userPanes of mixLayoutParams.', 'description' => '参数UserPanes存在无效字段,请检查。'], + ['errorCode' => 'InvalidParameter.MixTranscodeParams', 'errorMessage' => '%s, please check the transcodeParams.', 'description' => '参数MixTranscodeParams存在无效字段,请检查。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => '%s.', 'description' => '参数缺失'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], + 403 => [ + ['errorCode' => 'InvalidParameter.UserId', 'errorMessage' => '%s, please check the UserId.', 'description' => 'UserId无效,请检查。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68*****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68*****\\n 0\\n OK\\n","errorExample":""}]', - 'title' => '删除拉流转推任务', - 'description' => '- 调用本接口删除拉流转推任务。'."\n" - .'- 删除任务即清理任务,任务运行中会被立刻停止,任务无法重新启动。'."\n" - ."\n" + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******58-5876-****-83CA-B56278******\\\\n\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\\\n\\"\\n}","type":"json"}]', + 'title' => '更新Rtc云端录制任务', + 'description' => '单流录制支持更新订阅参数,混流录制仅支持更新订阅用户流。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLivePullToPush' => [ - 'summary' => '调用DescribeLivePullToPush查询拉流转推任务。', - 'methods' => [ - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'requestParamsDescription' => '- 支持同时订阅同一个UserId的摄像头和屏幕共享。对于单流录制模式,如果要同时订阅同一个UserId的摄像头和屏幕共享,FileNamePattern和SliceNamePattern中必须包含SourceType变量(避免出现录制文件互相覆盖的情况)。'."\n" + ."\n" + .'- 对于单流录制模式,目前不支持只订阅某个UserId的纯视频流。即在单流模式下,UserInfo.StreamType的值不能设置为2。'."\n" + ."\n" + .'- 如果只希望录制某个UserId的屏幕流,而不录制音频流,要么订阅该UserId的纯视频流并设置SourceType为1(单流录制模式下暂时不支持),要么订阅该UserId的原始流并在推流时视频流只推屏幕流,且不推音频流或静音;如果希望录制某个UserId的屏幕流和音频流,要么订阅该UserId的原始流并在推流时视频流只推屏幕流,且同时推音频流,要么订阅该UserId的纯视频流并设置SourceType为1(单流录制模式下暂时不支持),同时订阅该UserId的纯音频流。'."\n" + ."\n" + .'- 在单流录制模式下,如果RecordParams.StreamType是纯音频流(值为1),那么SubscribeParams中不能存在订阅纯视频的情况(值为2);如果RecordParams.StreamType是纯视频流(值为2),那么SubscribeParams中不能存在订阅纯音频的情况(值为1)。'."\n" + ."\n" + .'- 在混流录制模式下,如果RecordParams.StreamType是纯音频流(值为1),那么SubscribeParams中不能所有UserId都只订阅纯视频(值为2);如果RecordParams.StreamType是纯视频流(值为2),那么SubscribeParams中不能所有UserId都只订阅纯音频(值为1)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateRtcCloudRecording'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateRtcCloudRecording', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateRtcMPUEventSub' => [ + 'summary' => '更新混流转推事件订阅。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '238179', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeCode' => '219223', + 'abilityTreeNodes' => ['FEATUREliveK6LRQR'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'AppId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '订阅的应用ID。'."\n" + .'> 应用ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => true, 'example' => 'yourAppId'], ], [ - 'name' => 'TaskId', + 'name' => 'ChannelIds', 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'fd245384-4067-4f91-9d75-9666a6bc****', - ], + 'schema' => ['description' => '指定接收回调的混流任务的频道ID,可以同时填多个频道ID,多个频道ID之间采用英文逗号“,”隔开。'."\n" + .'> - 如果不填,则默认接收该AppId下的所有混流转推的回调事件。'."\n" + .'- 同时填多个频道ID时,不能填写重复的频道ID,最多同时填20个频道ID。'."\n" + .'- 每个频道ID由大小写字母、数字、下划线、短划线(-)组成,最大64字符。', 'type' => 'string', 'required' => false, 'example' => 'yourChannelIds'], ], [ - 'name' => 'Region', + 'name' => 'CallbackUrl', 'in' => 'query', - 'schema' => [ - 'description' => '指定任务启动所在区域,取值:'."\n" - .'- ap-southeast-1(新加坡)'."\n" - .'- ap-southeast-5(印度尼西亚)'."\n" - .'- cn-beijing(北京)'."\n" - .'- cn-shanghai(上海)', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - 'enum' => [ - 'ap-northeast-1', - 'ap-southeast-1', - 'ap-southeast-5', - 'eu-central-1', - 'me-central-1', - 'cn-beijing', - 'cn-shanghai', - 'cn-shenzhen', - 'cn-qingdao', - 'preregion', - ], - ], + 'schema' => ['description' => '回调地址。'."\n" + .'> 回调地址协议头为HTTP、HTTPS等,仅可包含以下字符:a-z 、A-Z、0-9、-、_、?、%、=、#、.、/ 和 +,不超过2083个字符。', 'type' => 'string', 'required' => false, 'example' => 'http://****.com/callback'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'a05e6b15-15af-405b-a4a2-0152245d****', - ], - 'RetCode' => [ - 'description' => '返回码。'."\n" - .'> - 正常情况返回“0”。'."\n" - .'> - 异常情况请参考下文错误码列表。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Description' => [ - 'description' => '错误描述。', - 'type' => 'string', - 'example' => 'OK', - ], - 'TaskId' => [ - 'description' => '新建任务ID。', - 'type' => 'string', - 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', - ], - 'TaskStatus' => [ - 'description' => '任务当前状态:'."\n" - .'- 0:未启动(未到开始时间)。'."\n" - .'- 1:正常运行(拉流和转推正常)。'."\n" - .'- 2:异常运行。'."\n" - .'- 3:已停止(拉流或转推异常,也有可能是主动调用接口停止).'."\n" - .'- -1:已退出。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'TaskInvalidReason' => [ - 'description' => '任务停止运行原因:'."\n" - ."\n" - .'- PullStreamFailed:源流拉流异常,重试中。'."\n" - .'- PushStreamFailed:目标流推流异常,重试中。'."\n" - .'- UnknownError:未知异常。'."\n" - ."\n" - .'> 仅停止运行状态下返回。', - 'type' => 'string', - 'example' => 'PullStreamFailed', - ], - 'TaskExitTime' => [ - 'description' => '任务退出时间,Unix 秒级时间戳。'."\n" - .'> 仅已退出状态下返回。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1726354625', - ], - 'TaskExitReason' => [ - 'description' => '任务退出原因:'."\n" - ."\n" - .'- TriggerByUser:用户主动结束。'."\n" - .'- OverEndTime:超过预设结束时间。'."\n" - ."\n" - .'> 仅已退出状态下返回。', - 'type' => 'string', - 'example' => 'TriggerByUser', - ], - 'CurrentOffset' => [ - 'description' => '当前生效的视频播放偏移。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'CurrentFileIndex' => [ - 'description' => '当前生效的节目单序列偏移。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'TaskInfo' => [ - 'description' => '任务信息。', - 'type' => 'object', - 'properties' => [ - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'fd245384-4067-4f91-9d75-9666a6bc9****', - ], - 'TaskName' => [ - 'description' => '任务名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'StartTime' => [ - 'description' => '任务开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2024-08-26T10:30:00Z', - ], - 'EndTime' => [ - 'description' => '任务结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2024-08-27T14:30:00Z', - ], - 'SourceType' => [ - 'description' => '源流类型,枚举值:'."\n" - ."\n" - .'- live,直播流。'."\n" - .'- vod,阿里云视频点播资源。'."\n" - .'- url,第三方视频文件资源。', - 'type' => 'string', - 'example' => 'vod', - ], - 'SourceProtocol' => [ - 'description' => '源流协议名。', - 'type' => 'string', - 'example' => 'RTMP', - ], - 'SourceUrls' => [ - 'description' => '源流URL地址。', - 'type' => 'array', - 'items' => [ - 'description' => '源流URL地址。', - 'type' => 'string', - 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434', - ], - 'example' => 'rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434', - ], - 'DstUrl' => [ - 'description' => '推流目标地址。', - 'type' => 'string', - 'example' => 'rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434', - ], - 'CallbackURL' => [ - 'description' => 'HTTP回调地址。', - 'type' => 'string', - 'example' => 'https://callback*****.com', - ], - 'Offset' => [ - 'description' => '启动偏移,视频文件起始偏移值。单位:秒。取值:大于0。'."\n" - .'> - 表示从相对于首帧的偏差时间作为开始读取的位置。'."\n" - .'> - 仅对点播资源或视频文件有效。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'FileIndex' => [ - 'description' => '文件索引,从第n个文件开始播放起。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RetryCount' => [ - 'description' => '重试次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'RetryInterval' => [ - 'description' => '重试间隔,单位秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '60', - ], - 'RepeatNumber' => [ - 'description' => '播放完后重复继续播放的次数。取值:'."\n" - .'- 0(默认值):不重复播放。'."\n" - .'- -1:一直循环重复。'."\n" - .'- 其他正整数:播放完后重复继续播放的次数。'."\n" - ."\n" - .'> 此参数仅针对点播或第三方视频流。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '******3B-0E1A-586A-AC29-742247******'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'CodeInvalidAliUid', - 'errorMessage' => 'This aliuid does not have a live domain name.', - ], + ['errorCode' => 'InvalidParam', 'errorMessage' => '%s.', 'description' => '参数校验失败'], + ['errorCode' => 'InvalidAppId', 'errorMessage' => '%s, please check and try again later.', 'description' => 'AppId无效,请检查后重试。'], + ['errorCode' => 'MissingParam', 'errorMessage' => '%s, please check and try again later.', 'description' => '参数缺失,请检查后重试。'], + ], + 403 => [ + ['errorCode' => 'OperationDenied', 'errorMessage' => 'Your account has not enabled the Live service', 'description' => ''], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'InternalError', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"a05e6b15-15af-405b-a4a2-0152245d****\\",\\n \\"RetCode\\": 0,\\n \\"Description\\": \\"OK\\",\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\",\\n \\"TaskStatus\\": 0,\\n \\"TaskInvalidReason\\": \\"PullStreamFailed\\",\\n \\"TaskExitTime\\": 1726354625,\\n \\"TaskExitReason\\": \\"TriggerByUser\\",\\n \\"CurrentOffset\\": 0,\\n \\"CurrentFileIndex\\": 0,\\n \\"TaskInfo\\": {\\n \\"TaskId\\": \\"fd245384-4067-4f91-9d75-9666a6bc9****\\",\\n \\"TaskName\\": \\"test\\",\\n \\"StartTime\\": \\"2024-08-26T10:30:00Z\\",\\n \\"EndTime\\": \\"2024-08-27T14:30:00Z\\",\\n \\"SourceType\\": \\"vod\\",\\n \\"SourceProtocol\\": \\"RTMP\\",\\n \\"SourceUrls\\": [\\n \\"rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434\\"\\n ],\\n \\"DstUrl\\": \\"rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434\\",\\n \\"CallbackURL\\": \\"https://callback*****.com\\",\\n \\"Offset\\": 0,\\n \\"FileIndex\\": 0,\\n \\"RetryCount\\": 3,\\n \\"RetryInterval\\": 60,\\n \\"RepeatNumber\\": 0\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 3271ACD2-F143-1204-AFDB-9A87C131****\\n 0\\n OK\\n fd245384-4067-4f91-9d75-9666a6bc9****\\n 1\\n UnknownError\\n 1724740200\\n TriggerByUser\\n \\n fd245384-4067-4f91-9d75-9666a6bc9****\\n live\\n 2\\n https://callback*****.com\\n rtmp://pulltest.****.aliyunlive.com/pulltest493/pulltest-w434\\n rtmp://pushtest.********.aliyunlive.com/pulltest493/pulltest-w434\\n 2024-08-26T10:30:00Z\\n 2024-08-27T14:30:00Z\\n \\n","errorExample":""}]', - 'title' => '查询拉流转推任务', - 'description' => '- 调用本接口查询拉流转推任务。'."\n" - .'- 支持查询指定ID的任务配置信息和状态信息。'."\n" - ."\n" + 'title' => '更新混流转推事件订阅', + 'description' => '- 本接口用于更新混流转推事件订阅。您可以更新回调地址、订阅频道信息等参数。'."\n" + .'- 调用本接口前,您必须已经调用CreateRtcMPUEventSub创建混流转推事件订阅。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLivePullToPushList' => [ - 'summary' => '模糊查询拉流转推任务。', - 'methods' => [ - 'get', + .'本接口的单用户QPS限制为50次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'changeSet' => [ + ['createdAt' => '2024-07-04T06:14:36.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateRtcMPUEventSub'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateRtcMPUEventSub', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n ******3B-0E1A-586A-AC29-742247******\\n","errorExample":""}]', + ], + 'UpdateRtsLiveStreamTranscode' => [ + 'summary' => '更新RTS自定义转码配置信息。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '257040', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeNodes' => ['FEATUREliveHVN9B2'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Region', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '指定直播中心查询。取值:'."\n" - .'- ap-southeast-1(新加坡)'."\n" - .'- ap-southeast-5(印度尼西亚)'."\n" - .'- cn-beijing(北京)'."\n" - .'- cn-shanghai(上海)', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - 'enum' => [ - 'ap-northeast-1', - 'ap-southeast-1', - 'ap-southeast-5', - 'eu-central-1', - 'me-central-1', - 'cn-beijing', - 'cn-shanghai', - 'cn-shenzhen', - 'cn-qingdao', - 'preregion', - ], - ], + 'schema' => ['description' => '主播流域名,不可修改。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'App', + 'in' => 'query', + 'schema' => ['description' => '播流所属应用名称,不可修改。', 'type' => 'string', 'required' => true, 'example' => 'aliyun-test'], + ], + [ + 'name' => 'Template', + 'in' => 'query', + 'schema' => ['description' => '转码模板自定义名称,不可修改。', 'type' => 'string', 'required' => true, 'example' => 'ld'], + ], + [ + 'name' => 'TemplateType', + 'in' => 'query', + 'schema' => ['description' => '自定义转码模版类型,不可修改。', 'type' => 'string', 'required' => true, 'example' => 'h264'], + ], + [ + 'name' => 'Height', + 'in' => 'query', + 'schema' => ['description' => '转码视频高度。单位:像素。取值:'."\n" + ."\n" + .'需要同时满足如下三个条件:'."\n" + .'- Height ≥ 100:视频的高需要不小于100像素。'."\n" + .'- max(Height,Width)≤ 2560:视频的宽、高中较大的一个最大不能大于2560。'."\n" + .'- min(Height,Width)≤ 1440:视频的宽、高中较小的一个最大不能大于1440。'."\n" + .'例如:1560×1560(正方形视频)是不合法的。'."\n" + .'> - 当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" + .'>- 原画模板由于需要保持片源的信息,分辨率最高支持到4K。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1280'], + ], + [ + 'name' => 'Width', + 'in' => 'query', + 'schema' => ['description' => '转码视频宽度。单位:像素。取值:'."\n" + ."\n" + .'需要同时满足如下三个条件:'."\n" + .'- Width≥ 100:视频的宽需要不小于100像素。'."\n" + .'- max(Height,Width)≤ 2560:视频的宽、高中较大的一个最大不能大于2560。'."\n" + .'- min(Height,Width)≤ 1440:视频的宽、高中较小的一个最大不能大于1440。'."\n" + .'例如:1560×1560(正方形视频)是不合法的。'."\n" + ."\n" + .'> - 当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" + .'- 原画模板由于需要保持片源的信息,分辨率最高支持到4K。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '720'], + ], + [ + 'name' => 'FPS', + 'in' => 'query', + 'schema' => ['description' => '转码视频帧率。单位:FPS。取值:1~60。'."\n" + ."\n" + .'> 当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], + ], + [ + 'name' => 'VideoBitrate', + 'in' => 'query', + 'schema' => ['description' => '转码视频比特率。单位:kbps。取值:1~6000。'."\n" + ."\n" + .'> - 当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" + .'>- 转码视频会尽量接近您所设定的比特率,但转码视频的实际比特率不能保证和您所设定的完全一致,尤其是当您设定的比特率过大或过小时。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2000'], + ], + [ + 'name' => 'AudioBitrate', + 'in' => 'query', + 'schema' => ['description' => '转码音频比特率。'."\n" + .'单位:kbps。取值:1~1000。'."\n" + ."\n" + .'> 当TemplateType(自定义转码模版类型)设为audio时,本参数必填。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '128'], + ], + [ + 'name' => 'Gop', + 'in' => 'query', + 'schema' => ['description' => '视频GOP(Group of Picture)。主要用于控制关键帧间隔。单位:秒。取值:1~3。', 'type' => 'string', 'required' => false, 'example' => '2'], + ], + [ + 'name' => 'DeleteBframes', + 'in' => 'query', + 'schema' => ['description' => '是否使用B帧进行转码。取值:'."\n" + ."\n" + .'- true:转码后的视频无B帧。'."\n" + .'- false:包含B帧,默认包含B帧。'."\n" + ."\n" + .'> - 当TemplateType(自定义转码模版类型)设为h264或h264-nbhd或h264-origin时,本参数必填。'."\n" + .'>- 不传参数时默认为false。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'Opus', + 'in' => 'query', + 'schema' => ['description' => '音频转码是否使用opus进行转码(主要用户兼容原生webrtc问题)。取值:'."\n" + .'- true:音频转码为opus格式。'."\n" + .'- false:不使用opus格式转码。'."\n" + ."\n" + .'> 不传参数时默认为false。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'Profile', + 'in' => 'query', + 'schema' => ['description' => '编码级别。视频支持的一组特定的编码功能,一般值越大得到的画面质量越好,同时编解码消耗的资源也越高。取值:'."\n" + .'- **1**:baseline(适合移动设备)。'."\n" + .'- **2**:main(适合标准分辨率设备)。'."\n" + .'- **3**:high(适合高分辨率设备)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], ], [ - 'name' => 'TaskId', + 'name' => 'AudioProfile', 'in' => 'query', - 'schema' => [ - 'description' => '任务ID,根据任务ID模糊搜索。'."\n" - .'> 任务ID由大小写字母、数字、下划线、短划线(-)组成,最大55字符。', - 'type' => 'string', - 'required' => false, - 'example' => '861009', - ], + 'schema' => ['description' => '音频编码级别。取值:'."\n" + .'- aac_low。'."\n" + .'- aac_he。'."\n" + .'- aac_he_v2。'."\n" + .'- aac_ld。', 'type' => 'string', 'required' => false, 'example' => 'aac_low'], ], [ - 'name' => 'TaskName', + 'name' => 'AudioCodec', 'in' => 'query', - 'schema' => [ - 'description' => '任务名称,根据任务名称模糊搜索。', - 'type' => 'string', - 'required' => false, - 'example' => 'task', - ], + 'schema' => ['description' => '音频编码器。取值:'."\n" + .'- aac。'."\n" + .'- mp3。'."\n" + ."\n" + .'> 如果要使用opus编码,把Opus选项参数置为true即可。', 'type' => 'string', 'required' => false, 'example' => 'aac'], ], [ - 'name' => 'DstUrl', + 'name' => 'AudioRate', 'in' => 'query', - 'schema' => [ - 'description' => '目标推流地址,根据目标推流地址模糊搜索。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://qd', - ], + 'schema' => ['description' => '音频采样率。取值:22050,32000,44100,48000,96000。其中44100比较常用。单位:Hz。'."\n" + ."\n" + .'> 如果音频编码AudioProfile是aac_ld,则采样率不能超过44100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '44100'], ], [ - 'name' => 'PageNumber', + 'name' => 'AudioChannelNum', 'in' => 'query', - 'schema' => [ - 'description' => '页码。'."\n" - .'> 该参数取值大于 0 且不超过 Integer 数据类型的最大值,默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '音频声道数。取值:'."\n" + .'- **1** :单声道。'."\n" + .'- **2**:立体声。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], ], [ - 'name' => 'PageSize', + 'name' => 'Lazy', 'in' => 'query', - 'schema' => [ - 'description' => '每页可展示的记录数。'."\n" - .'> 默认值为 10,取值范围[1,100]。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => '是否开启触发转码。取值:'."\n" + .'- **yes**:开启触发转码。'."\n" + .'- **no**:不开启触发转码。', 'type' => 'string', 'required' => false, 'example' => 'no'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求id。', - 'type' => 'string', - 'example' => 'a05e6b15-15af-405b-a4a2-0152245*****', - ], - 'Total' => [ - 'description' => '查询结果总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'PageNumber' => [ - 'description' => '分页页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页的查询记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TaskList' => [ - 'description' => '任务信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '任务信息列表', - 'type' => 'object', - 'properties' => [ - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', - ], - 'TaskStatus' => [ - 'description' => '任务当前状态:'."\n" - .'- 0:未启动(未到开始时间)。'."\n" - .'- 1:正常运行(拉流和转推正常)。'."\n" - .'- 2:异常运行。'."\n" - .'- 3:已停止(拉流或转推异常,也有可能是主动调用接口停止).'."\n" - .'- -1:已退出。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'TaskInvalidReason' => [ - 'description' => '任务停止运行原因:'."\n" - ."\n" - .'- PullStreamFailed:源流拉流异常,重试中。'."\n" - .'- PushStreamFailed:目标流推流异常,重试中。'."\n" - .'- UnknownError:未知异常。'."\n" - ."\n" - .'> 仅停止运行状态下返回。', - 'type' => 'string', - 'example' => 'PullStreamFailed', - ], - 'TaskExitTime' => [ - 'description' => '任务退出时间,Unix 秒级时间戳。'."\n" - .'> 仅已退出状态下返回。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1726354625', - ], - 'TaskExitReason' => [ - 'description' => '任务退出原因:'."\n" - ."\n" - .'- TriggerByUser:用户主动结束。'."\n" - .'- OverEndTime:超过预设结束时间。'."\n" - ."\n" - .'> 仅已退出状态下返回。', - 'type' => 'string', - 'example' => 'TriggerByUser', - ], - 'CurrentOffset' => [ - 'description' => '当前生效的视频播放偏移。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'CurrentFileIndex' => [ - 'description' => '当前生效的节目单序列偏移。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'TaskInfo' => [ - 'description' => '任务信息。', - 'type' => 'object', - 'properties' => [ - 'TaskId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', - ], - 'TaskName' => [ - 'description' => '任务名称。', - 'type' => 'string', - 'example' => 'taskname', - ], - 'StartTime' => [ - 'description' => '任务开始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2024-12-04T09:16:00Z', - ], - 'EndTime' => [ - 'description' => '任务结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'example' => '2024-12-30T14:30:00Z', - ], - 'SourceType' => [ - 'description' => '源流类型,枚举值:'."\n" - ."\n" - .'- live,直播流。'."\n" - .'- vod,阿里云视频点播资源。'."\n" - .'- url,第三方视频文件资源。', - 'type' => 'string', - 'example' => 'vod', - ], - 'SourceProtocol' => [ - 'description' => '源流协议名。', - 'type' => 'string', - 'example' => 'flv', - ], - 'SourceUrls' => [ - 'description' => '源流URL地址。', - 'type' => 'array', - 'items' => [ - 'description' => '源流URL地址。', - 'type' => 'string', - 'example' => 'rtmp://118.178.***.*5:****/wwtestlive1/pulltest.jiugong.aliyunlive.com_livelight2?vhost=pulltest.jiugong.aliyun*******', - ], - ], - 'DstUrl' => [ - 'description' => '推流目标地址。', - 'type' => 'string', - 'example' => 'rtmp://qd.push.lgg.alivecdn.com/testhsc/streamhsc?live_rtmp_*******', - ], - 'CallbackURL' => [ - 'description' => 'HTTP回调地址。', - 'type' => 'string', - 'example' => 'hahaha.com', - ], - 'Offset' => [ - 'description' => '启动偏移,视频文件起始偏移值。单位:秒。取值:大于0。'."\n" - .'> - 表示从相对于首帧的偏差时间作为开始读取的位置。'."\n" - .'> - 仅对点播资源或视频文件有效。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'FileIndex' => [ - 'description' => '文件索引,从第n个文件开始播放起。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RetryCount' => [ - 'description' => '重试次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'RetryInterval' => [ - 'description' => '重试间隔,单位秒。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '60', - ], - 'RepeatNumber' => [ - 'description' => '播放完后重复继续播放的次数。取值:'."\n" - .'- 0(默认值):不重复播放。'."\n" - .'- -1:一直循环重复。'."\n" - .'- 其他正整数:播放完后重复继续播放的次数。'."\n" - ."\n" - .'> 此参数仅针对点播或第三方视频流。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'LiveServiceNotFound', - 'errorMessage' => 'Your account does not open Live service yet', - ], - [ - 'errorCode' => 'CodeInvalidAliUid', - 'errorMessage' => 'This aliuid does not have a live domain name.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => '%s Please check and try again later.', 'description' => '存在异常参数,请检查后重试。'], + ['errorCode' => 'ConfigAlreadyExists', 'errorMessage' => '%s Please check and try again later.', 'description' => '配置已存在,请检查后重试。'], + ['errorCode' => 'TemplateLimit', 'errorMessage' => '%s Please check and try again later.', 'description' => '模板数量达到上限。'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"a05e6b15-15af-405b-a4a2-0152245*****\\",\\n \\"Total\\": 3,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TaskList\\": [\\n {\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\",\\n \\"TaskStatus\\": 0,\\n \\"TaskInvalidReason\\": \\"PullStreamFailed\\",\\n \\"TaskExitTime\\": 1726354625,\\n \\"TaskExitReason\\": \\"TriggerByUser\\",\\n \\"CurrentOffset\\": 0,\\n \\"CurrentFileIndex\\": 0,\\n \\"TaskInfo\\": {\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\",\\n \\"TaskName\\": \\"taskname\\",\\n \\"StartTime\\": \\"2024-12-04T09:16:00Z\\",\\n \\"EndTime\\": \\"2024-12-30T14:30:00Z\\",\\n \\"SourceType\\": \\"vod\\",\\n \\"SourceProtocol\\": \\"flv\\",\\n \\"SourceUrls\\": [\\n \\"rtmp://118.178.***.*5:****/wwtestlive1/pulltest.jiugong.aliyunlive.com_livelight2?vhost=pulltest.jiugong.aliyun*******\\"\\n ],\\n \\"DstUrl\\": \\"rtmp://qd.push.lgg.alivecdn.com/testhsc/streamhsc?live_rtmp_*******\\",\\n \\"CallbackURL\\": \\"hahaha.com\\",\\n \\"Offset\\": 0,\\n \\"FileIndex\\": 0,\\n \\"RetryCount\\": 3,\\n \\"RetryInterval\\": 60,\\n \\"RepeatNumber\\": 0\\n }\\n }\\n ]\\n}","type":"json"}]', - 'title' => '模糊查询拉转推任务', - 'description' => '- 调用本接口查询拉流转推任务列表。'."\n" - .'- 支持分页查询任务列表,支持以任务ID、任务名称和目标推流地址进行模糊搜索。'."\n" - ."\n" + 'title' => '更新RTS自定义转码配置', + 'description' => '本接口目前只支持h264、h264-nbhd、h264-origin、audio四种自定义转码模版类型。'."\n" .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'StopLivePullToPush' => [ - 'summary' => '停止任务接口。', - 'methods' => [ - 'get', + .'本接口的单用户QPS限制为10次/秒。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateRtsLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', + ], + 'VerifyLiveDomainOwner' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '257294', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'abilityTreeCode' => '107290', + 'abilityTreeNodes' => ['FEATUREliveG4SX14'], ], 'parameters' => [ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai', 'default' => 'cn-shanghai'], ], [ - 'name' => 'Region', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '指定直播中心查询。取值:'."\n" - .'- ap-southeast-1(新加坡)'."\n" - .'- ap-southeast-5(印度尼西亚)'."\n" - .'- cn-beijing(北京)'."\n" - .'- cn-shanghai(上海)', - 'type' => 'string', - 'required' => true, - 'example' => 'preregion', - 'enum' => [ - 'ap-northeast-1', - 'ap-southeast-1', - 'ap-southeast-5', - 'eu-central-1', - 'me-central-1', - 'cn-beijing', - 'cn-shanghai', - 'cn-shenzhen', - 'cn-qingdao', - 'preregion', - ], - ], + 'schema' => ['description' => '校验的域名。仅支持单域名校验。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'TaskId', + 'name' => 'VerifyType', 'in' => 'query', - 'schema' => [ - 'description' => '根据任务ID查询。', - 'type' => 'string', - 'required' => true, - 'example' => '3bb44350-0c34-49c7-8c5e-cba5e6c0****', - 'enum' => [], - ], + 'schema' => ['description' => '域名归属权验证方式,取值:'."\n" + ."\n" + .'- dnsCheck:DNS解析验证。'."\n" + .'- fileCheck:文件验证。', 'type' => 'string', 'required' => true, 'example' => 'dnsCheck'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'a05e6b15-15af-405b-a4a2-0152245d****', - ], - 'TaskId' => [ - 'description' => '新建任务id。', - 'type' => 'string', - 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', - ], + 'Content' => ['description' => '校验内容。', 'type' => 'string', 'example' => 'verify_dffeb6610035dcb77b413******'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '1BA6D7CE-55F1-5926-8764-F8663473AD0D'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'LiveServiceNotFound', - 'errorMessage' => 'Your account does not open Live service yet', - ], - [ - 'errorCode' => 'CodeInvalidAliUid', - 'errorMessage' => 'This aliuid does not have a live domain name.', - ], - [ - 'errorCode' => 'InvalidParam.CodeIllegalDuration', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'CodeTaskNotExist', - 'errorMessage' => 'Task does not exist.', - ], - [ - 'errorCode' => 'CodeTaskHasStopped', - 'errorMessage' => 'The task has been stopped.', - ], + ['errorCode' => 'DomainOwnerVerifyFail', 'errorMessage' => 'Owner verification of the root domain failed.', 'description' => ''], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', + ], + 'title' => '验证直播域名拥有者', + 'summary' => '调用VerifyLiveDomainOwner验证域名归属权。', + 'description' => '### QPS限制'."\n" + .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'VerifyLiveDomainOwner'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:VerifyLiveDomainOwner', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"verify_dffeb6610035dcb77b413******\\",\\n \\"RequestId\\": \\"1BA6D7CE-55F1-5926-8764-F8663473AD0D\\"\\n}","errorExample":""},{"type":"xml","example":"\\n verify_dffeb6610035dcb77b413******\\n 1BA6D7CE-55F1-5926-8764-F8663473AD0D\\n","errorExample":""}]', + ], + ], + 'endpoints' => [ + ['regionId' => 'cn-qingdao', 'regionName' => '华北1(青岛)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-beijing', 'regionName' => '华北2(北京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-hangzhou', 'regionName' => '华东1(杭州)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shenzhen', 'regionName' => '华南1(深圳)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-northeast-1', 'regionName' => '日本(东京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-southeast-5', 'regionName' => '印度尼西亚(雅加达)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => 'live-vpc.cn-shanghai.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'regionName' => '新加坡', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'live.ap-southeast-1.aliyuncs.com', 'endpoint' => 'live.ap-southeast-1.aliyuncs.com', 'vpc' => 'live-vpc.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'us-east-1', 'regionName' => '美国(弗吉尼亚)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => 'live-vpc.us-east-1.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'regionName' => '德国(法兰克福)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'live.eu-central-1.aliyuncs.com', 'endpoint' => 'live.eu-central-1.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'me-central-1', 'regionName' => '沙特(利雅得)', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => 'live-vpc.me-central-1.aliyuncs.com'], + ['regionId' => 'ap-south-1', 'regionName' => '印度(孟买)已关停', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-north-2-gov-1', 'regionName' => '北京政务云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'live.aliyuncs.com', 'endpoint' => 'live.aliyuncs.com', 'vpc' => ''], + ], + 'errorCodes' => [ + ['code' => 'Abs.CheckUrl.Malformed', 'message' => 'The CheckUrl you provided is malformed.', 'http_code' => 400, 'description' => '提供的CheckUrl无效'], + ['code' => 'AppInfoNotExist', 'message' => 'The app does not exist.', 'http_code' => 404, 'description' => '应用不存在'], + ['code' => 'BillTypeNotFound', 'message' => 'User bill type not found or is not monthly bill type.', 'http_code' => 400, 'description' => '账单类型不存在或不是月账单类型用户'], + ['code' => 'BusinessExist', 'message' => 'Business exist, do not repeated submission', 'http_code' => 400, 'description' => '请勿重复提交请求'], + ['code' => 'CasterNumberExceed', 'message' => 'The number casters is exceeded', 'http_code' => 400, 'description' => '导播台数量查过限制'], + ['code' => 'Certificate.Duplicated', 'message' => 'The certificate name is duplicated', 'http_code' => 400, 'description' => '证书名重复'], + ['code' => 'Certificate.MissMatch', 'message' => 'The certificate is not match the private key', 'http_code' => 400, 'description' => '证书不匹配私钥'], + ['code' => 'CheckAccountFailed', 'message' => 'Failed to check account, %s.', 'http_code' => 400, 'description' => '检查账号失败。'], + ['code' => 'CheckSourceHealthFailed', 'message' => 'sources ip or source domain check health failed, please input right source.', 'http_code' => 400, 'description' => '-'], + ['code' => 'CodeAddToBizTranscodeAllFailed', 'message' => 'code failed to add to biztranscode', 'http_code' => 400, 'description' => 'code添加到biztranscode失败'], + ['code' => 'CodeAppNameIsIllegal', 'message' => 'Code app name is not legal', 'http_code' => 400, 'description' => 'app名称存在非法'], + ['code' => 'CodeConfigAlreadyExists', 'message' => 'Code Config Already Exists', 'http_code' => 400, 'description' => '配置已经存在'], + ['code' => 'CodeConfigNotFound', 'message' => 'No config found', 'http_code' => 400, 'description' => '不存在支持该功能的相关配置'], + ['code' => 'CodeGetMainPlaybackDomainError', 'message' => 'Failed to obtain the main playback domain name.', 'http_code' => 400, 'description' => '获取主播放域名失败。'], + ['code' => 'CodeGetPushbackDomainError', 'message' => 'Unable to get the push domain name, please check the domain name mapping configuration.', 'http_code' => 400, 'description' => '无法获取推流域名,请检查域名映射配置。'], + ['code' => 'CodeGroupCountIsOutOfRange', 'message' => 'Code Group Count Is Out Of Range', 'http_code' => 400, 'description' => '添加的多码率组合中的数量超过范围限制'], + ['code' => 'CodeGroupIdIsIllegal', 'message' => 'Code Group Id Is Illegal', 'http_code' => 400, 'description' => '配置组ID非法'], + ['code' => 'CodeInvalidAliUid', 'message' => 'This aliuid does not have a live domain name.', 'http_code' => 400, 'description' => '这个aluid没有直播域名'], + ['code' => 'CodeInvalidConfig', 'message' => 'Invalid database configuration.', 'http_code' => 400, 'description' => '数据库配置无效。'], + ['code' => 'CodeIsAvFormatIllegal', 'message' => 'Code Is Av Format Illegal', 'http_code' => 400, 'description' => 'AV格式非法'], + ['code' => 'CodeIsLazyIllegal', 'message' => 'Code Is Lazy Illegal', 'http_code' => 400, 'description' => 'lazy模式参数非法'], + ['code' => 'CodeIsTimeAlignIllegal', 'message' => 'Code Is Time Align Illegal', 'http_code' => 400, 'description' => '时间对其参数非法'], + ['code' => 'CodeMultiRateBandWidthIllegal', 'message' => 'BandWidth is illegal, must be composed with digit.', 'http_code' => 400, 'description' => '带宽不合理,必须由数字组成。'], + ['code' => 'CodeMultiRateConfigIsEmpty', 'message' => 'CodeMultiRateConfig is Empty', 'http_code' => 400, 'description' => '多码率配置为空'], + ['code' => 'CodeNotEnoughResource', 'message' => 'Exceeded configuration limits or insufficient resources.', 'http_code' => 400, 'description' => '超过配置限制或没有充足资源'], + ['code' => 'CodeNotPullDomain', 'message' => 'The domain name is not a pull domain name.', 'http_code' => 400, 'description' => '该域名不是拉流域名。'], + ['code' => 'CodeNotPushDomain', 'message' => 'The domain name is not a push domain name.', 'http_code' => 400, 'description' => '该域名不是推流域名。'], + ['code' => 'CodeTaskHasStarted', 'message' => 'The task has already started.', 'http_code' => 400, 'description' => '任务已经启动,无法更新。'], + ['code' => 'CodeTaskHasStopped', 'message' => 'The task has been stopped.', 'http_code' => 400, 'description' => '任务已被停止。'], + ['code' => 'CodeTaskNotExist', 'message' => 'Task does not exist.', 'http_code' => 400, 'description' => '任务不存在。'], + ['code' => 'CodeTaskNotStarted', 'message' => 'Task not started, cannot operate.', 'http_code' => 400, 'description' => '任务未启动,无法操作。'], + ['code' => 'CommomLiveRcordConfigExisted', 'message' => 'Common live record config has already exist.', 'http_code' => 400, 'description' => '通用直播录制配置已存在。'], + ['code' => 'ComponentNumberExceed', 'message' => 'Number of text/image exceeded norms.', 'http_code' => 400, 'description' => '文字和图片组件数量超出限制。'], + ['code' => 'ConfigAlreadyExists', 'message' => 'Config duplicate', 'http_code' => null, 'description' => '配置已添加。'], + ['code' => 'ConfigAlreadyExists', 'message' => 'Config has already exist.', 'http_code' => null, 'description' => '配置已添加。'], + ['code' => 'ConfigAlreadyExists', 'message' => 'config has already exists', 'http_code' => 400, 'description' => '配置已存在。'], + ['code' => 'ConfigConflicts', 'message' => 'Configuration already exists.', 'http_code' => 409, 'description' => '配置已存在。'], + ['code' => 'ConfigExisted', 'message' => 'config is existed', 'http_code' => 400, 'description' => '配置已经存在'], + ['code' => 'ConfigurationConflicts', 'message' => 'The staging environment has a configuration in effect and cannot modify the production environment configuration.', 'http_code' => 400, 'description' => '预发环境存在已生效配置,无法修改生产环境配置。'], + ['code' => 'CreateOrderFailed', 'message' => 'Failed to create order, %s.', 'http_code' => 400, 'description' => '创建订单失败,%s。'], + ['code' => 'DataNotFound', 'message' => 'Data does not exist or has been deleted.', 'http_code' => 404, 'description' => '数据不存在或已被删除'], + ['code' => 'Domain.BeianInvalid', 'message' => 'not allowed to do this operation because the domain registration record invalid in China main land', 'http_code' => 400, 'description' => '不执行该操作因为域名下的注册信息在中国大陆为无效的'], + ['code' => 'DomainAlreadyExist', 'message' => 'The specified domain already exists.', 'http_code' => 400, 'description' => '该域名已经存在'], + ['code' => 'DomainAlreadyExist', 'message' => 'Domain has already existed', 'http_code' => 400, 'description' => '域名已经存在'], + ['code' => 'DomainInProtectedMode', 'message' => 'This domain is in the protected mode. if you want to do this operation, please contact us.', 'http_code' => 400, 'description' => '该域名处于保护模式。如果您想执行本次操作,请联系我们。'], + ['code' => 'DomainNotRegistration', 'message' => 'The Domain name is not registered', 'http_code' => 400, 'description' => '域名没有注册'], + ['code' => 'DomainNotRegistration', 'message' => 'The domain name you added is not registered, cannot use the Chinese mainland live center of ApsaraVideo Live or acceleration regions.', 'http_code' => 400, 'description' => '您添加的域名未备案,无法使用中国大陆的直播中心或加速区域。'], + ['code' => 'DomainNumberTooLarge', 'message' => 'The domain number is too large.', 'http_code' => 400, 'description' => '传入域名数量过多'], + ['code' => 'DomainOverLimit', 'message' => 'The Number of Domain is over the limit', 'http_code' => 400, 'description' => '域名数量超过上限'], + ['code' => 'DomainOwnerVerifyFail', 'message' => 'Owner verification of the root domain failed', 'http_code' => 400, 'description' => '域名的用户所属权验证失败'], + ['code' => 'DomainReserved', 'message' => 'The root domain of your domain is reserved by another account.', 'http_code' => 400, 'description' => '此域名的根域名已添加到其他账号。'], + ['code' => 'Duration.Exceed', 'message' => 'Duration between StartTime and EndTime is too long', 'http_code' => 400, 'description' => '开启时间到结束时间的时间间隔过长'], + ['code' => 'EntityNotExist.ResourceGroup', 'message' => 'The resource group does not exist.', 'http_code' => 403, 'description' => '资源组不存在。'], + ['code' => 'ErrorAckTimeout', 'message' => '%s.', 'http_code' => 408, 'description' => '接收ack超时,请确认客户端版本后重新尝试。'], + ['code' => 'ErrorInvalidAppName', 'message' => '%s.', 'http_code' => 400, 'description' => 'AppName无效,请检查后重新尝试。'], + ['code' => 'ErrorInvalidAuditUrl', 'message' => '%s.', 'http_code' => 400, 'description' => 'AuditUrl无效,请检查后重新尝试。'], + ['code' => 'ErrorInvalidCallBackUrl', 'message' => '%s.', 'http_code' => 400, 'description' => 'CallBackURL无效,请检查后重新尝试。'], + ['code' => 'ErrorInvalidEventCallbackUrl', 'message' => '%s.', 'http_code' => 400, 'description' => 'EventCallbackUrl无效,请检查后重新尝试。'], + ['code' => 'ErrorTooManyApps', 'message' => '%s.', 'http_code' => 400, 'description' => '每个账号下,最多同时允许创建300个App'], + ['code' => 'ErrorTooManyGroups', 'message' => '%s.', 'http_code' => 400, 'description' => '每个AppId,最多同时允许创建5000个群组'], + ['code' => 'ExceedLimit', 'message' => 'The number of domains has exceeded the limit.', 'http_code' => 400, 'description' => '拥有的域名数量已经超过上限。'], + ['code' => 'ExtensiveAndSpecificDomainConflict', 'message' => 'Extensive domain and corresponding specific domain are mutually exclusive.', 'http_code' => 400, 'description' => '泛域名与对应的精确域名冲突'], + ['code' => 'Forbidden', 'message' => 'User not authorized to operate on the specified resource.', 'http_code' => 403, 'description' => '接口权限不足,请您联系管理员,配置访问权限。'], + ['code' => 'Forbidden.AccessDenied', 'message' => 'Request was denied due to isolation policy.', 'http_code' => 403, 'description' => '由于隔离策略,请求被拒绝。'], + ['code' => 'IllegalOperation', 'message' => 'Illegal domain operate is not permitted.', 'http_code' => 400, 'description' => '接口权限不足,请您联系管理员,配置访问权限。'], + ['code' => 'IllegalOperationDomain', 'message' => 'You are not authorized to operate the domain', 'http_code' => 400, 'description' => '你没有操纵该域名的权限'], + ['code' => 'IncorrectCasterStatus', 'message' => 'Caster has been started.', 'http_code' => 400, 'description' => '导播已经启动过了。'], + ['code' => 'IncorrectCasterStatus.EnableChannel', 'message' => 'Caster should be stopped when enable channel for the first time.', 'http_code' => 400, 'description' => '设置channelEnable=1时,导播必须处于关闭状态。'], + ['code' => 'IncorrectCasterStatus.Inuse', 'message' => 'caster is in use', 'http_code' => 400, 'description' => '导播台正在启动状态'], + ['code' => 'IncorrectChannel.Disable', 'message' => 'Channel is disable.', 'http_code' => 400, 'description' => 'Channel处于不可设置状态。'], + ['code' => 'IncorrectSceneStatus', 'message' => 'The status of the scene is invalid', 'http_code' => 400, 'description' => '场景状态错误'], + ['code' => 'IncorrectSceneStatus.ConfigError', 'message' => 'Scene status is incorrect', 'http_code' => 400, 'description' => '场景状态不正确'], + ['code' => 'IncorrectSceneStatus.Idle', 'message' => 'The status of the scene is invalid', 'http_code' => 400, 'description' => '场景状态错误:闲置'], + ['code' => 'IncorrectSubtitleStatus.%s', 'message' => '%s.', 'http_code' => 400, 'description' => '字幕模版状态异常'], + ['code' => 'IndexOutOfBound', 'message' => 'The required index is out of bound.', 'http_code' => 400, 'description' => '超出索引范围,请您确认是否超出索引范围。'], + ['code' => 'InputInvalid', 'message' => '%s.', 'http_code' => 400, 'description' => '输入参数不合法'], + ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error.', 'http_code' => null, 'description' => '内部错误,建议重试,如果多次重试报错请提交工单。'], + ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error', 'http_code' => null, 'description' => '内部错误,建议重试,如果多次重试报错请提交工单。'], + ['code' => 'InternalError', 'message' => '%s.', 'http_code' => 500, 'description' => '直播 liveapi 服务端错误。 '], + ['code' => 'InvaildParameter', 'message' => 'Invalid Parameter', 'http_code' => 400, 'description' => '请求参数非法'], + ['code' => 'InvaildParameter', 'message' => 'The parameter you provided is invalid,Please check whether the input parameters are complete and correct.', 'http_code' => 400, 'description' => '您输入的参数无效,请检查输入的参数是否完整正确'], + ['code' => 'InvalidAlignment', 'message' => 'Specified parameter Alignment is not valid.', 'http_code' => 400, 'description' => '指定参数对齐格式无效,请您确认该参数对齐格式是否正确。'], + ['code' => 'InvalidAnimate', 'message' => 'Specified parameter Animate is not valid.', 'http_code' => 400, 'description' => '指定参数动画错误,请您确认该参数动画是否正确。'], + ['code' => 'InvalidAppName.Conflicted', 'message' => 'The AppName provided has probably configured template already in our records.', 'http_code' => 400, 'description' => '当前AppName下面已经配置过转码模板。'], + ['code' => 'InvalidAppName.LengthTooLong', 'message' => 'The specified app name is too long.', 'http_code' => 400, 'description' => 'AppName的长度超过限制,请传入合法的AppName。'], + ['code' => 'InvalidAppName.Mismatch', 'message' => 'The AppName param must be passed.', 'http_code' => 400, 'description' => 'AppName参数不匹配,请确认传入了正确的AppName参数。'], + ['code' => 'InvalidAppName.TemplateExceed', 'message' => 'The AppName provided had maximum number of templates', 'http_code' => 400, 'description' => '该AppName中已经模板已经达到系统允许的最多模板个数,不能再次添加了。'], + ['code' => 'InvalidAreaParameter', 'message' => 'The specified Area parameter is invalid.', 'http_code' => 400, 'description' => 'Area参数不正确,需要传入正确的大区简写。'], + ['code' => 'InvalidArgName.ValueNotSupported', 'message' => 'Argument Name [%s] is not supported.', 'http_code' => 400, 'description' => '不支持参数名%s'], + ['code' => 'InvalidArgValue.Malformed', 'message' => 'Specified argument value is malformed.', 'http_code' => 400, 'description' => '指定的参数值无效。'], + ['code' => 'InvalidAutoComposeAndComposeVodTranscodeGroupId.Malformed', 'message' => 'Specified parameters "AutoCompose" and "ComposeVodTranscodeGroupId" are invalid.', 'http_code' => 400, 'description' => '指定的"AutoCompose"和"ComposeVodTranscodeGroupId"参数无效。'], + ['code' => 'InvalidBorderColor', 'message' => 'Specified parameter BorderColor is not valid.', 'http_code' => 400, 'description' => '指定参数错误,请您确认该参数是否正确。'], + ['code' => 'InvalidBorderWidth', 'message' => 'Specified parameter BorderWidth is not valid.', 'http_code' => 400, 'description' => '指定参数错误,请您确认该参数是否正确。'], + ['code' => 'InvalidBucket.NotFound', 'message' => 'The bucket does not belong to you.', 'http_code' => 404, 'description' => '指定的bucket不属于当前用户。'], + ['code' => 'InvalidCaster.ChannelDisableUnsupported', 'message' => 'Disable channel is unsupported when current status of channel is enable.', 'http_code' => 400, 'description' => 'channelEnable一旦开启,就不可以关闭。'], + ['code' => 'InvalidCaster.NotFound', 'message' => 'The caster does not exist.', 'http_code' => 404, 'description' => '导播不存在。'], + ['code' => 'InvalidColor', 'message' => 'Specified parameter Color is not valid.', 'http_code' => 400, 'description' => '指定参数颜色错误,请您确认该参数颜色是否正确。'], + ['code' => 'InvalidConfig.Changed', 'message' => 'The oss bucket info between StartTime and EndTime has changed.', 'http_code' => 400, 'description' => 'ossbucket开始结束时间已经改变。'], + ['code' => 'InvalidConfig.NotFound', 'message' => 'The speicified config does not exist.', 'http_code' => null, 'description' => 'OssBucket错误,请您确认该OssBucket是否正确。'], + ['code' => 'InvalidConfig.NotFound', 'message' => 'Config does not exist.', 'http_code' => null, 'description' => '配置错误,请您确认该配置是否正确。'], + ['code' => 'InvalidConfig.NotFound', 'message' => '%s.', 'http_code' => 400, 'description' => '数据库未配置uid。'], + ['code' => 'InvalidCycleDuration.Malformed', 'message' => 'Specified CycleDuration Format is not valid.', 'http_code' => 400, 'description' => 'CycleDuration参数格式错误,请您确认该CycleDuration参数格式是否正确。'], + ['code' => 'InvalidDomain.NotFound', 'message' => 'The domain provided does not exist in our records.', 'http_code' => null, 'description' => '当前账户下未查到域名,请您确认该域名是否正确。'], + ['code' => 'InvalidDomain.NotPullDomain', 'message' => 'The parameter is not a pull field name. Please check your parameters.', 'http_code' => 400, 'description' => '该参数不是拉流域名。请检查您的参数。'], + ['code' => 'InvalidDomain.NotPushDomain', 'message' => '%s.', 'http_code' => 400, 'description' => '该参数不是推流域名。请检查您的参数。'], + ['code' => 'InvalidDomain.NotPushDomain', 'message' => 'The parameter is not a push field name. Please checkyour parameters.', 'http_code' => 400, 'description' => '该参数不是推流城名。请检查您的参数。'], + ['code' => 'InvalidDomainName.Malformed', 'message' => 'Specified domain name is malformed.', 'http_code' => 400, 'description' => '指定的域名无效。'], + ['code' => 'InvalidDomainName.NotFound', 'message' => 'DomainName is not found.', 'http_code' => 400, 'description' => '找不到域名。'], + ['code' => 'InvalidDomainName.NotFound', 'message' => 'Failed to obtain the playdomain name.', 'http_code' => 400, 'description' => '当前域名未关联推流域名不支持双流灾备功能'], + ['code' => 'InvalidEndTime.Malformed', 'message' => 'Specified EndTime is malformed.', 'http_code' => null, 'description' => '结束时间错误,请您确认结束时间是否正确。'], + ['code' => 'InvalidEndTime.Malformed', 'message' => 'Specified parameter EndTime is not valid.', 'http_code' => null, 'description' => '结束时间错误,请您确认结束时间是否正确。'], + ['code' => 'InvalidEndTime.Mismatch', 'message' => 'Specified end time does not math the specified start time.', 'http_code' => 400, 'description' => '结束时间与开始时间不匹配,请您确认时间的匹配度。'], + ['code' => 'InvalidFormat.Malformed', 'message' => 'Specified parameter Format is not valid.', 'http_code' => 400, 'description' => 'Format参数错误,请您确认该Format参数是否正确。'], + ['code' => 'InvalidFunctionArgs.Malformed', 'message' => '%s, please check your params', 'http_code' => 400, 'description' => '参数名称不合法'], + ['code' => 'InvalidFunctionName.ValueNotSupported', 'message' => 'FunctionName [%s] is not supported.', 'http_code' => 400, 'description' => '输入的函数名不支持。'], + ['code' => 'InvalidHeightOrWidthNormalized', 'message' => 'HeightNormalized or WidthNormalized parameter is invalid.', 'http_code' => 400, 'description' => 'HeightNormalized或者WidthNormalized参数无效。'], + ['code' => 'InvalidIdentity.ServiceDisabled', 'message' => 'The request identity was not allowed operated.', 'http_code' => null, 'description' => 'InvalidParameter参数错误,请您确认该InvalidParameter参数是否正确。'], + ['code' => 'InvalidImage', 'message' => 'The ImageUrl provided can not be accessed.', 'http_code' => 400, 'description' => '指定的ImageUrl错误,请您确认该ImageUrl是否正确。'], + ['code' => 'InvalidImage.Malformed', 'message' => 'The specified parameter ImageUrl is not valid.', 'http_code' => 400, 'description' => '指定的ImageUrl错误,请您确认该ImageUrl是否正确。'], + ['code' => 'InvalidImage.TooLarge', 'message' => 'The image is too large.', 'http_code' => 400, 'description' => '图像太大,请您稍后重试。'], + ['code' => 'InvalidIntervalParameter', 'message' => 'The specified interval parameter is invalid.', 'http_code' => 400, 'description' => '指定的interval参数无效。'], + ['code' => 'InvalidLocationParameter', 'message' => 'The specified location name parameter is invalid.', 'http_code' => 400, 'description' => '指定的LocationNameEn参数无效。'], + ['code' => 'InvalidMixDomain.NotFound', 'message' => 'The mix domain provided does not exist in our records.', 'http_code' => null, 'description' => '当前账户下未查到混流域名,请您确认该混流域名是否正确。'], + ['code' => 'InvalidMixStream.NotPublish', 'message' => 'Specified mix stream is not publishing.', 'http_code' => 400, 'description' => '未推流,请您确认推流是否正确。'], + ['code' => 'InvalidNormalizedX', 'message' => 'Specified parameter NormalizedX is not valid.', 'http_code' => 400, 'description' => '指定的NormalizedX错误,请您确认该NormalizedX参数是否正确。'], + ['code' => 'InvalidNormalizedY', 'message' => 'Specified parameter NormalizedY is not valid.', 'http_code' => 400, 'description' => '指定的NormalizedX错误,请您确认该NormalizedX参数是否正确。'], + ['code' => 'InvalidNotifyUrl.Malformed', 'message' => 'Specified parameter NotifyUrl is not valid.', 'http_code' => null, 'description' => '指定的notifyurl错误,请您确认该notifyurl参数是否正确。'], + ['code' => 'InvalidNotifyUrl.Malformed', 'message' => 'Specified NotifyUrl is invalid.', 'http_code' => 400, 'description' => '指定的notifyurl错误,请您确认该notifyurl参数是否正确。'], + ['code' => 'InvalidNotifyUrl.Unsafe', 'message' => 'Specified NotifyUrl is not safe.', 'http_code' => 400, 'description' => '指定的notifyurl错误,请您确认该notifyurl参数是否正确。'], + ['code' => 'InvalidOssBucket.Malformed', 'message' => 'Specified OssBucket is malformed.', 'http_code' => 400, 'description' => 'OSSBucket参数错误,请您确认该OSS BUCKET参数是否正确。'], + ['code' => 'InvalidOssBucket.Malformed', 'message' => 'Specified parameter OssBucket is not valid.', 'http_code' => 400, 'description' => 'OSSBucket参数错误,请您确认该OSS BUCKET参数是否正确。'], + ['code' => 'InvalidOssBucket.NotFound', 'message' => 'The parameter OssBucket does not exist.', 'http_code' => null, 'description' => 'OSSBucket参数错误,请您确认该OSS BUCKET参数是否正确。'], + ['code' => 'InvalidOssEndpoint.Malformed', 'message' => 'Specified OssObject is malformed.', 'http_code' => null, 'description' => 'OSSObject参数错误,请您确认该OSSObject参数是否正确。'], + ['code' => 'InvalidOssEndpoint.Malformed', 'message' => 'Specified parameter OssEndpoint is not valid.', 'http_code' => null, 'description' => 'OSSEndpoint参数错误,请您确认该OSSEndpoint参数是否正确。'], + ['code' => 'InvalidOssObject.Malformed', 'message' => 'Specified OssObject is malformed.', 'http_code' => null, 'description' => 'OSSObject参数错误,请您确认该OSSObject参数是否正确。'], + ['code' => 'InvalidOssObjectPrefix.Malformed', 'message' => 'Specified parameter OssObjectPrefix is not valid.', 'http_code' => null, 'description' => 'OSSObjectPrefix参数错误,请您确认该OSSObjectPrefix参数是否正确。'], + ['code' => 'InvalidOverwriteOssObject.Malformed', 'message' => 'Specified parameter OverwriteOssObject is not valid.', 'http_code' => 400, 'description' => 'OverwriteOSSObject参数错误,请您确认该OverwriteOSSObject参数是否正确。'], + ['code' => 'InvalidOverwriteOssObjectOrSequenceOssObject.Malformed', 'message' => 'Specified paramters OverwriteOssObject or SequenceOssObject should have one.', 'http_code' => 400, 'description' => 'OverwriteOssObject与SequenceOssObject参数任选其一。'], + ['code' => 'InvalidPageNumber.ValueNotSupported', 'message' => 'The specified value of parameter PageNumber is not supported.', 'http_code' => 400, 'description' => '指定的PageNumber参数的值不支持。'], + ['code' => 'InvalidPageToken', 'message' => 'The token of page is invalid.', 'http_code' => 400, 'description' => '指定的分页token错误,请传入上次查询返回的正确索引,并确认没有修改您的请求参数。'], + ['code' => 'InvalidParam', 'message' => 'The parameter is invalid.', 'http_code' => 400, 'description' => '参数不合法'], + ['code' => 'InvalidParam', 'message' => 'Parameter invalid.', 'http_code' => 400, 'description' => '输入参数不合法'], + ['code' => 'InvalidParam.CodeIllegalDuration', 'message' => '%s.', 'http_code' => 400, 'description' => '开始时间应该小于结束时间。'], + ['code' => 'InvalidParameter', 'message' => 'The parameter you provided is invalid,Please check whether the input parameters are complete and correct.', 'http_code' => 400, 'description' => '您输入的参数无效,请检查输入的参数是否完整正确'], + ['code' => 'InvalidParameter', 'message' => 'The specified parameter is invalid.', 'http_code' => 400, 'description' => '参数错误,请依据API文档,核对需要输入的参数'], + ['code' => 'InvalidParameter', 'message' => '%s.', 'http_code' => 400, 'description' => '参数错误'], + ['code' => 'InvalidParameter. MixTranscodeParams', 'message' => '%s, please check the transcodeParams.', 'http_code' => 400, 'description' => '参数MixTranscodeParams存在无效字段,请检查。'], + ['code' => 'InvalidParameter.ChargeType', 'message' => 'Specified parameter ChargeType is invalid.', 'http_code' => 400, 'description' => '指定的ChargeType参数无效。'], + ['code' => 'InvalidParameter.Malformed', 'message' => 'There are invalid parameters: %s.', 'http_code' => 400, 'description' => '存在无效参数:%s。'], + ['code' => 'InvalidParameter.MixLayoutParams.UserPanes', 'message' => '%s, please check the userPanes of mixLayoutParams.', 'http_code' => 400, 'description' => '参数UserPanes存在无效字段,请检查。'], + ['code' => 'InvalidParameter.MixTranscodeParams', 'message' => '%s, please check the transcodeParams.', 'http_code' => 400, 'description' => '参数MixTranscodeParams存在无效字段,请检查。'], + ['code' => 'InvalidParameter.NotifyUrl', 'message' => '%s, please check the notifyUrl.', 'http_code' => 400, 'description' => '参数NotifyUrl格式无效,请检查。'], + ['code' => 'InvalidParameter.StorageParams.FileInfo', 'message' => '%s, please check the fileInfo of storageParams.', 'http_code' => 400, 'description' => '参数FileInfo存在无效字段,请检查。'], + ['code' => 'InvalidParameter.StorageParams.OSSParams', 'message' => '%s, please check the ossParams of storageParams.', 'http_code' => 400, 'description' => '参数OSSParams存在无效字段,请检查。'], + ['code' => 'InvalidParameter.SubscribeParams.SubscribeUserIdList', 'message' => '%s, please check the subscribeUserIdList of subscribeParams.', 'http_code' => 400, 'description' => '参数SubscribeUserIdList无效,请检查。'], + ['code' => 'InvalidParameter.SubscribeParams.UserInfos', 'message' => '%s, please check the userInfos of subscribeParams.', 'http_code' => 400, 'description' => '参数UserInfos存在无效字段,请检查。'], + ['code' => 'InvalidParameter.TaskId', 'message' => '%s, please check the TaskId.', 'http_code' => 400, 'description' => '指定的task必须处于运行中或者恢复中状态。'], + ['code' => 'InvalidParameter.UserId', 'message' => '%s, please check the UserId.', 'http_code' => 403, 'description' => 'UserId无效,请检查。'], + ['code' => 'InvalidParameterField', 'message' => 'The specified Field is invalid.', 'http_code' => 400, 'description' => 'Field参数错误,请确认后输入'], + ['code' => 'InvalidParameters', 'message' => 'There are invalid parameters: %s.', 'http_code' => 400, 'description' => '存在无效参数:%s。'], + ['code' => 'InvalidParameterType', 'message' => 'The specified Type is invalid.', 'http_code' => 400, 'description' => 'Type参数错误,请确认后输入'], + ['code' => 'InvalidParamPrecision', 'message' => 'The parameter Precision is invalid, please check StartTime and EndTime or Precision.', 'http_code' => 400, 'description' => 'Precision 参数错误,请检查StartTime、EndTime或者Precision 参数。'], + ['code' => 'InvalidQueryTime.Exceed', 'message' => 'QueryTime exceed three month.', 'http_code' => 400, 'description' => '查询时间距离当前时间超过三个月。'], + ['code' => 'InvalidQueryTime.Malformed', 'message' => 'Specified QueryTime is malformed.', 'http_code' => 400, 'description' => '指定的查询时间无效。'], + ['code' => 'InvalidRecordFmt.NotSupported', 'message' => 'The RecordFmt parameter is not supported.', 'http_code' => 400, 'description' => 'RecordFmt不支持查询输入的类型,请输入文档指定的格式'], + ['code' => 'InvalidRegion', 'message' => 'The current region does not support this operation.', 'http_code' => 400, 'description' => '当前区域不支持该操作。'], + ['code' => 'InvalidRegion.Conflict', 'message' => 'The specified "StorageLocation" does not match the region where the streaming domain is located.', 'http_code' => 403, 'description' => '指定的参数"StorageLocation"与播流域名所在区域不符'], + ['code' => 'InvalidRegion.Malformed', 'message' => 'Specified Region is malformed.', 'http_code' => 400, 'description' => '指定的区域无效。'], + ['code' => 'InvalidRegionId', 'message' => 'Specified parameter RegionId is not valid.', 'http_code' => null, 'description' => 'RegionId参数错误,请您确认该RegionId参数是否正确。'], + ['code' => 'InvalidResumeTime.Malformed', 'message' => 'Specified parameter ResumeTime is not valid.', 'http_code' => null, 'description' => 'ResumeTime参数错误,请您确认该ResumeTime参数是否正确。'], + ['code' => 'InvalidScene.Malformed', 'message' => 'The specified parameter Scene is not valid.', 'http_code' => 400, 'description' => 'Scene参数错误,请您确认该Scene参数是否正确。'], + ['code' => 'InvalidScene.NotFound', 'message' => 'The queried Scene does not exist.', 'http_code' => 404, 'description' => '查询的Scene不存在。'], + ['code' => 'InvalidSceneList.Malformed', 'message' => 'The specified parameter SceneList is not valid.', 'http_code' => 400, 'description' => 'SceneList参数错误,请您确认该SceneList参数是否正确。'], + ['code' => 'InvalidSequenceOssObject.Malformed', 'message' => 'Specified parameter SequenceOssObject is not valid.', 'http_code' => 400, 'description' => 'SequenceOssObject参数错误,请您确认该SequenceOssObject参数是否正确。'], + ['code' => 'InvalidSizeRatio', 'message' => 'Specified parameter SizeRatio is not valid.', 'http_code' => 400, 'description' => 'SizeRatio参数错误,请您确认该SizeRatio参数是否正确。'], + ['code' => 'InvalidSizeRatioMode', 'message' => 'Specified parameter SizeRatioMode is not valid.', 'http_code' => 400, 'description' => 'SizeRatioMode参数错误,请您确认该SizeRatioMode参数是否正确。'], + ['code' => 'InvalidSliceOssObjectPrefix.Malformed', 'message' => 'Specified parameter SliceOssObjectPrefix is not valid.', 'http_code' => 400, 'description' => 'SliceOssObjectPrefix参数错误,请您确认该SliceOssObjectPrefix参数是否正确。'], + ['code' => 'InvalidSourceUrl', 'message' => 'Specified parameter SourceUrl is not valid.', 'http_code' => 400, 'description' => 'SourceUrl参数错误,请您确认该SourceUrl参数是否正确。'], + ['code' => 'InvalidSourceUrl.Unsafe', 'message' => 'Specified SourceUrl is not safe.', 'http_code' => 400, 'description' => '指定SourceUrl不安全,请您确认SourceUrl是否安全。'], + ['code' => 'InvalidSSLPri', 'message' => 'The SSLPri you provided is malformed.', 'http_code' => 400, 'description' => '提供的SSL私钥参数无效。'], + ['code' => 'InvalidStartTime.Malformed', 'message' => 'Specified StartTime is malformed.', 'http_code' => null, 'description' => 'StartTime参数错误,请您确认该StartTime参数是否正确。'], + ['code' => 'InvalidStartTime.Malformed', 'message' => 'Specified parameter StartTime is not valid.', 'http_code' => null, 'description' => 'StartTime参数错误,请您确认该StartTime参数是否正确。'], + ['code' => 'InvalidStartTime.Mismatch', 'message' => 'Specified "StartTime" does not match the current time.', 'http_code' => 400, 'description' => '指定的录制开始时间参数"StartTime"与当前时间不匹配。'], + ['code' => 'InvalidStartTime.ValueNotSupported', 'message' => 'Specified end time does not math the specified start time,And the time range does not exceed 90 days.', 'http_code' => 400, 'description' => '开始时间与结束时间不匹配,开始时间不能晚于结束时间,且时间范围不超过90天。'], + ['code' => 'InvalidStartTime.ValueNotSupported', 'message' => 'The specified value of parameter StartTime is not supported.', 'http_code' => 400, 'description' => '传入的StartTime参数不支持。'], + ['code' => 'InvalidStorage.NotFound', 'message' => 'Specified parameter StorageLocation does not exist.', 'http_code' => 404, 'description' => '指定的StorageLocation参数值不存在。'], + ['code' => 'InvalidStream.NotConfig', 'message' => 'Specified stream does not config.', 'http_code' => 400, 'description' => '此流未进行混流配置,请您确认该流是否进行混流配置。'], + ['code' => 'InvalidStream.NotFound', 'message' => 'Speicified stream does not exist.', 'http_code' => null, 'description' => '直播流不存在,请您确认直播流是否正确。'], + ['code' => 'InvalidStream.NotPublish', 'message' => 'Specified stream is not publishing.', 'http_code' => 400, 'description' => '未推流,请您确认推流是否正确。'], + ['code' => 'InvalidStream.NotStart', 'message' => 'Specified stream has not started.', 'http_code' => 400, 'description' => '此流未启动多路混流服务,请您确认多路混流服务是否正确。'], + ['code' => 'InvalidStreamName.LengthTooLong', 'message' => 'The specified stream name is too long.', 'http_code' => 400, 'description' => 'StreamName的长度超过限制,请传入合法的StreamName。'], + ['code' => 'InvalidStreamNumber.Malformed', 'message' => 'Specified StreamNumber is malformed.', 'http_code' => 400, 'description' => '流数超过限制,请您确认流数是否超过限制。'], + ['code' => 'InvalidStreamProtocol.NotSupport', 'message' => 'The specified stream protocol is not support.', 'http_code' => 400, 'description' => '指定的流协议不支持,请参照文档查询所需的流协议。'], + ['code' => 'InvalidTemplate', 'message' => 'The template provided does not exist in our records or it is not a mix-transcode template.', 'http_code' => 400, 'description' => '在系统中未查到指定的连麦转码模板。'], + ['code' => 'InvalidText', 'message' => 'Specified parameter Text is not valid.', 'http_code' => 400, 'description' => '指定参数文本错误,请您确认该指定参数文本是否正确。'], + ['code' => 'InvalidTime.Malformed', 'message' => 'Specified Time is malformed.', 'http_code' => 400, 'description' => '制定时间错误,请您确认该制定时间是否正确。'], + ['code' => 'InvalidTime.ValueNotSupported', 'message' => 'Specified Time is malformed.', 'http_code' => 400, 'description' => '指定的时间无效。'], + ['code' => 'InvalidTimeSpan', 'message' => 'The time span exceeds the limit.', 'http_code' => 400, 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['code' => 'InvalidTranscode.NotFound', 'message' => 'Transcode is not configured.', 'http_code' => 404, 'description' => '转码模板未配置。'], + ['code' => 'InvalidTransparency', 'message' => 'Specified parameter Transparency is not valid.', 'http_code' => 400, 'description' => '指定参数透明度错误,请您确认该指定参数透明度是否正确。'], + ['code' => 'InvalidUrl', 'message' => 'Specified parameter Url is not valid.', 'http_code' => null, 'description' => 'URL参数错误,请您确认该URL参数是否正确。'], + ['code' => 'InvalidUrl.Unsafe', 'message' => 'Specified Url is not safe.', 'http_code' => null, 'description' => '指定URL不安全,请您确认URL是否安全。'], + ['code' => 'InvalidUserId.Malformed', 'message' => 'Invalid UserId.', 'http_code' => 400, 'description' => '无效的用户Id。'], + ['code' => 'InvalidUserParameter', 'message' => 'The specified user parameter is invalid.', 'http_code' => 400, 'description' => '指定的用户无效。'], + ['code' => 'InvalidVodUrl.Malformed', 'message' => 'VodUrl is invalid.', 'http_code' => 400, 'description' => '输入的点播资源url无效。'], + ['code' => 'LicenseTrialOnceOnly', 'message' => 'Only one trial license can be applied for one package name of each functional module.', 'http_code' => 400, 'description' => '每个功能模块一个包名只能申请一次试用版的license'], + ['code' => 'Live2Vod.ConfigAlreadyExists', 'message' => 'Had live2vod record config already', 'http_code' => 400, 'description' => '直播转点播配置已经存在'], + ['code' => 'LiveServiceNotFound', 'message' => 'Your account does not open Live service yet', 'http_code' => 400, 'description' => '您的账户尚未开通直播服务'], + ['code' => 'LiveServiceSuspended', 'message' => 'live service is suspended', 'http_code' => 400, 'description' => '直播服务已经暂停'], + ['code' => 'LiveServiceSuspended', 'message' => 'Your LIVE service is suspended, Please check whether the account is in arrears.', 'http_code' => 403, 'description' => '直播服务已暂停,请检查账户是否已欠费'], + ['code' => 'LockFail', 'message' => 'The domain name is being used by another operation, please try again later.', 'http_code' => 400, 'description' => '域名正被其他操作占用中,请稍后重试'], + ['code' => 'Meter.AuthError', 'message' => 'Authentication Failed,Please Try Again.', 'http_code' => 403, 'description' => '鉴权失败'], + ['code' => 'Meter.DataSourceError', 'message' => 'Data Source Error:%s,Please Try Again.', 'http_code' => 500, 'description' => '数据查询失败,可能因输入参数有误导致'], + ['code' => 'Meter.DataSourceQueryError', 'message' => 'Data Source Error:%s,Please Try Again.', 'http_code' => 500, 'description' => '数据查询错误'], + ['code' => 'Meter.ParamError', 'message' => 'Param Error:%s,Please Check Again.', 'http_code' => 400, 'description' => '报错信息'], + ['code' => 'Meter.ReadyTsError', 'message' => 'Get ReadyTs Failed,Please Try Again.', 'http_code' => 502, 'description' => '查询的数据还未就绪'], + ['code' => 'Meter.ServerInternalError', 'message' => 'The Request Processing Has Failed Due To Some Unknown Error.', 'http_code' => 500, 'description' => '服务内部异常'], + ['code' => 'MissingDomainName', 'message' => 'DomainName is mandatory for this action.', 'http_code' => 400, 'description' => 'DomainName为必填项,请提供要查询的DomainName。'], + ['code' => 'MissingOssObjectPrefix', 'message' => 'OssObjectPrefix is mandatory for this action.', 'http_code' => null, 'description' => '缺少OssObjectPrefix值,请您确认OssObjectPrefix值是否正确。'], + ['code' => 'MissingParam', 'message' => 'Parameter invalid.', 'http_code' => 400, 'description' => '输入参数不合法'], + ['code' => 'MissingParameter', 'message' => 'Invalid.MissingParameter.', 'http_code' => 400, 'description' => '参数缺失'], + ['code' => 'MissingParameter', 'message' => '%s.', 'http_code' => 400, 'description' => '参数缺失'], + ['code' => 'MissingParameter.AppId', 'message' => '%s, please check the input parameters.', 'http_code' => 400, 'description' => '缺失参数AppId,请检查入参。'], + ['code' => 'MissingSliceOssObjectPrefix', 'message' => 'The parameter "SliceOssObjectPrefix" is missing, please fill in and try again.', 'http_code' => 400, 'description' => '参数SliceOssObjectPrefix缺失,请填写后重试。'], + ['code' => 'MixStreamAlreadyExist', 'message' => 'Mix Stream Task Already Existed', 'http_code' => 400, 'description' => '合流任务已经存在'], + ['code' => 'MixStreamNotExist', 'message' => 'Mix Stream does not exist', 'http_code' => 400, 'description' => '合流任务不存在'], + ['code' => 'NoAuth', 'message' => '%s.', 'http_code' => 403, 'description' => '没有权限'], + ['code' => 'NoRecordContent', 'message' => 'The record content between StartTime and EndTime is empty.', 'http_code' => 400, 'description' => 'StartTime和EndTime之间的记录内容为空。'], + ['code' => 'NoSpecialConfiguration', 'message' => 'No special configuration for domain name.', 'http_code' => 400, 'description' => '该域名没有开启预热开关。'], + ['code' => 'NotFound', 'message' => 'Not Found: %s.', 'http_code' => 404, 'description' => '未找到:%s。'], + ['code' => 'NotFound.OSSBucket', 'message' => '%s, please check the ossBucket of storageParams.', 'http_code' => 400, 'description' => '参数OSSBucket不存在。'], + ['code' => 'NotFound.Task', 'message' => '%s, please check the TaskId.', 'http_code' => 400, 'description' => '参数TaskId不存在。'], + ['code' => 'NotInternationRealIdentity', 'message' => 'You need to do real name authentication when you use Chinese mainland resources.', 'http_code' => 400, 'description' => '你需要使用真正的授权身份来访问中国大陆的资源'], + ['code' => 'PullDomainIsUsed', 'message' => 'The pull domain has been associated with another app ID.', 'http_code' => 400, 'description' => '播放域名已经被其他应用ID绑定。'], + ['code' => 'PullStreamOverLimit', 'message' => 'Pull stream is over limit for this domainName', 'http_code' => 400, 'description' => '拉流数量超过域名上限'], + ['code' => 'PushDomainIsUsed', 'message' => 'The push domain has been associated with another app ID.', 'http_code' => 400, 'description' => '推流域名已经被其他应用ID绑定。'], + ['code' => 'QuotaExceeded.Blacklist', 'message' => 'Exceed max blacklist count limit', 'http_code' => 400, 'description' => '超过黑名单最大数量'], + ['code' => 'QuotaLimitError', 'message' => '%s.', 'http_code' => 400, 'description' => '每个AppId,最多同时允许创建20个订阅,并且只允许1个全频道订阅'], + ['code' => 'RecordContentExceed', 'message' => 'The record content between StartTime and EndTime is exceeded', 'http_code' => 400, 'description' => '此时间范围的内容超限,请您缩小查找范围。'], + ['code' => 'ResourceNotExist', 'message' => '%s.', 'http_code' => 404, 'description' => '请求资源不存在,请检查后重新尝试'], + ['code' => 'ServerError', 'message' => '%s.', 'http_code' => 500, 'description' => '未知错误,请稍后重试或提交工单咨询。'], + ['code' => 'ServiceSuspended', 'message' => 'Your LIVE service is suspended,Please check whether the account is in arrears.', 'http_code' => 403, 'description' => '直播服务已暂停,请检查账户是否已欠费'], + ['code' => 'StreamNotFound', 'message' => 'Stream is not found', 'http_code' => 409, 'description' => '没有发现流存在'], + ['code' => 'SuperLargeGroup', 'message' => '%s.', 'http_code' => 420, 'description' => '当群成员超过2000人时,群组升级为超级大群,不再支持查询用户列表'], + ['code' => 'TaskAlreadyStarted', 'message' => 'The task has already started', 'http_code' => 400, 'description' => '任务已经启动'], + ['code' => 'TaskIdAlreadyStarted', 'message' => 'The update program failed to pull the push task. The task has already started and cannot be updated.', 'http_code' => 400, 'description' => '更新程序拉取推送任务失败,任务已启动无法更新。'], + ['code' => 'TaskIdNotExist', 'message' => 'The request taskId does not exist. Please check and try again.', 'http_code' => 400, 'description' => '请求任务Id不存在,请检查后重新尝试。'], + ['code' => 'Throttling', 'message' => 'Request was denied due to request throttling.', 'http_code' => null, 'description' => '您这个时段的流量已经超限。如果不能满足现有业务要求可以提工单进行申请。'], + ['code' => 'TriggerRecordIsTooFrequently', 'message' => 'Trigger too frequently pre-record is not complete yet please try later.', 'http_code' => 400, 'description' => '触发过于频繁,预录制尚未完成,请稍后再试。'], + ['code' => 'Unauthorized', 'message' => 'The request is not authorized', 'http_code' => 401, 'description' => '请求没有授权'], + ['code' => 'UnexpectedLocationID', 'message' => 'The locationId is unexpected', 'http_code' => 400, 'description' => 'LocationId 为不存在的非法值'], + ['code' => 'UnsupportedParameter', 'message' => 'The parameters "OwnerId"or "OwnerAccount" is unsupported.', 'http_code' => 400, 'description' => '指定的OwnerId或者OwnerAccount参数不支持。'], + ['code' => 'UserNotAck', 'message' => '%s.', 'http_code' => 408, 'description' => '发高可靠消息给用户 ,用户未响应'], + ['code' => 'UserQuotaExceed', 'message' => 'Quota exceeded: %s.', 'http_code' => 403, 'description' => '超出配额:%s。'], + ['code' => 'InvalidParameter.AppId', 'message' => '%s, please check the appId.', 'http_code' => 404, 'description' => '参数AppId无效,请检查。'], + ['code' => 'CertNameNotFound', 'message' => 'The cert name is not found.', 'http_code' => 404, 'description' => '证书名不存在。'], + ['code' => 'InvalidUserId.Malformed', 'message' => '%s, please check userId.', 'http_code' => 400, 'description' => '传入的userId无效,请检查。'], + ['code' => 'AppIdNotFound', 'message' => 'The appId doesn\'t exists.', 'http_code' => 404, 'description' => '输入的appId不存在。'], + ['code' => 'AppIdNotFound', 'message' => 'The appId doesn\'t exist.', 'http_code' => 404, 'description' => '输入的appId不存在。'], + ['code' => 'Duplicate.TagKey', 'message' => 'The tags should not contain duplicate keys.', 'http_code' => 403, 'description' => '标签中不应该包含重复键。'], + ['code' => 'InvalidResourcesCount', 'message' => 'The count of resources is invalid, %s.', 'http_code' => 403, 'description' => '输入的资源数组,资源总数不能超过最大值,同时必须大于0个。'], + ['code' => 'InvalidResourceType', 'message' => 'The resourceType is invalid.', 'http_code' => 401, 'description' => '指定的resourceType参数无效。'], + ['code' => 'QuotaExceed.TagsPerResource', 'message' => 'The maximum number of tags for each resource is exceeded.', 'http_code' => 401, 'description' => '资源的标签数量超过上限。'], + ['code' => 'StreamNotExists.Blacklist', 'message' => 'stream not exists.', 'http_code' => 400, 'description' => '流不存在'], + ['code' => 'InvalidTagKey', 'message' => 'The tag key is invalid, %s.', 'http_code' => 401, 'description' => '标签键无效。'], + ['code' => 'LockFail', 'message' => 'Domain has been occupied.', 'http_code' => 400, 'description' => '域名当前在占用中,请稍后再试。'], + ['code' => 'InvalidParameter.StorageParams.StorageType', 'message' => '%s, please check the storageType of storageParams.', 'http_code' => 405, 'description' => '参数StorageType无效,请检查。'], + ['code' => 'InvalidRecordModeParameter', 'message' => 'RecordMode parameter error.', 'http_code' => 400, 'description' => 'RecordMode参数错误'], + ['code' => 'InvalidAppIdParameter', 'message' => 'AppId parameter error.', 'http_code' => 400, 'description' => 'AppId参数错误'], + ['code' => 'InvalidParameter.NotifyFileUploadedFormat', 'message' => '%s, please check the notifyFileUploadedFormat.', 'http_code' => 405, 'description' => '参数NotifyFileUploadedFormat无效,请检查。'], + ['code' => 'DomainOffline', 'message' => 'The domain is not online, please check the domain status and try again later.', 'http_code' => 400, 'description' => '域名尚未启用,请检查域名状态后重试。'], + ['code' => 'InvalidParam', 'message' => '%s.', 'http_code' => 400, 'description' => '参数校验失败'], + ['code' => 'InvalidParameters', 'message' => '%s Please check and try again later.', 'http_code' => 400, 'description' => '存在异常参数,请检查后重试。'], + ['code' => 'ConfigAlreadyExists', 'message' => '%s Please check and try again later.', 'http_code' => 400, 'description' => '配置已存在,请检查后重试。'], + ['code' => 'TemplateLimit', 'message' => '%s Please check and try again later.', 'http_code' => 400, 'description' => '模板数量达到上限。'], + ['code' => 'MissingParam', 'message' => '%s. Please check and try again later.', 'http_code' => 400, 'description' => '存在参数缺失,请检查后重试。'], + ['code' => 'InvalidAppId', 'message' => '%s Please check and try again later.', 'http_code' => 400, 'description' => 'appId参数无效,请检查后重试。'], + ['code' => 'InvalidOssEndpoint.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '无效的OssEndpoint,请检查后重试。'], + ['code' => 'CodeMissingParam', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '缺少参数,请检查后重试。'], + ['code' => 'CodeAppNameIsIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数AppName无效,请检查后重试。'], + ['code' => 'CodeStreamNameIsIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'StreamName无效,请检查后重试。'], + ['code' => 'CodeIsLazyIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'IsLazy参数无效,请检查后重试。'], + ['code' => 'CodeIsTimeAlignIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'IsTimeAlign参数无效,请检查后重试。'], + ['code' => 'CodeAddToRdsFailed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '添加到数据库失败,请稍后重试。'], + ['code' => 'CodeQueryHlsMultirateFailed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '查询Hls多码率失败,请稍后重试。'], + ['code' => 'CodeMultiRateGroupIdLengthIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'GroupId长度无效,请检查后重试。'], + ['code' => 'CodeMultiRateBandWidthIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'BandWidth参数无效,请检查后重试。'], + ['code' => 'CodeMultiRateConfigIsEmpty', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '配置不存在,请检查后重试。'], + ['code' => 'CodeMultiRateUpdateParamError', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Templates参数错误,请检查后重试。'], + ['code' => 'CodeUpdateToBizTranscodeAllFailed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '更新失败,请稍后重试。'], + ['code' => 'CodeGroupIdIsIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'GroupId无效,请检查后重试。'], + ['code' => 'CodeMultiRateTemplatesIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Templates参数无效,请检查后重试。'], + ['code' => 'CodeMultiRateBandWidthSyntaxIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数BandWidth无效,请检查后重试。'], + ['code' => 'CodeIsAvFormatIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数avformat无效,请检查后重试。'], + ['code' => 'CodeTemplateTypeIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'TemplateType无效,请检查后重试。'], + ['code' => 'CodeTemplateNameIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'TemplateName无效,请检查后重试。'], + ['code' => 'CodeTemplateHeightIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'TemplateHeight无效,请检查后重试。'], + ['code' => 'CodeTemplateWidthIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'TemplateWidth无效,请检查后重试。'], + ['code' => 'CodeTemplateFpsIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数Fps无效,请检查后重试。'], + ['code' => 'CodeTemplateGopIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数Gop无效,请检查后重试。'], + ['code' => 'CodeTemplateVideoBitrateIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数VideoBitrate无效,请检查后重试。'], + ['code' => 'CodeTemplateProfileIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数Profile无效,请检查后重试。'], + ['code' => 'CodeTemplateAudioProfileIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数AudioProfile无效,请检查后重试。'], + ['code' => 'CodeTemplateAudioCodecIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数AudioCodec无效,请检查后重试。'], + ['code' => 'CodeTemplateAudioBitrateIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数AudioBitrate无效,请检查后重试。'], + ['code' => 'CodeTemplateAudioRateIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数AudioRate无效,请检查后重试。'], + ['code' => 'CodeTemplateAudioChannelNumIllegal', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数AudioChannelNum无效,请检查后重试。'], + ['code' => 'CodeGroupCountIsOutOfRange', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '模板组数量超限,请检查后重试。'], + ['code' => 'CodeInternalErr', 'message' => '%s, please try again later.', 'http_code' => 500, 'description' => '内部错误,请稍后重试。'], + ['code' => 'CodeTemplateCountOutOfRange', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '模板数量超限,请检查后重试。'], + ['code' => 'CodeConfigAlreadyExists', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '配置已存在,请检查后重试。'], + ['code' => 'CodeAddToBizTranscodePartFailed', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => '添加配置失败,请稍后重试。'], + ['code' => 'CodeAddToBizTranscodeAllFailed', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => '添加配置失败,请稍后重试。'], + ['code' => 'CodeUpdateToBizTranscodePartFailed', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => '更新失败,请稍后重试。'], + ['code' => 'CodeMultiRateDeleteAllIllegal', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => '删除配置失败,请稍后重试。'], + ['code' => 'CodeDeleteAllIllegal', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => '删除配置失败,请稍后重试。'], + ['code' => 'InvalidCasterId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数CasterId无效,请检查后重试。'], + ['code' => 'InvalidPositionNormalized.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数PositionNormalized无效,请检查后重试。'], + ['code' => 'DuplicateLocationID', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数LocationID重复,请检查后重试。'], + ['code' => 'IllegalOperation', 'message' => '%s, please check and try again later.', 'http_code' => 401, 'description' => '不允许的操作,请检查后重试。'], + ['code' => 'InvalidCaster.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '导播台不存在,请检查后重试。'], + ['code' => 'CanvasNotExist', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Canvas不存在,请检查后重试。'], + ['code' => 'InternalError', 'message' => '%s, please try again later.', 'http_code' => 500, 'description' => '内部错误,请稍后重试。'], + ['code' => 'InvalidComponent.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '待操作的组件不存在,请检查后重试。'], + ['code' => 'SwitchTypeInvalid.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数SwitchType无效,请检查后重试。'], + ['code' => 'IncorrectStartTime', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数StartTime无效,请检查后重试。'], + ['code' => 'IncorrectEndTime', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数EndTime无效,请检查后重试。'], + ['code' => 'EpisodeConflict.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '节目时间存在冲突,请检查后重试。'], + ['code' => 'InvalidResource.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '资源不存在,请检查后重试。'], + ['code' => 'IncorrectEpisodeStatus', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '节目当前状态不可操作,请检查后重试。'], + ['code' => 'InvalidEpisode.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '节目不存在,请检查后重试。'], + ['code' => 'InvalidClientToken.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数ClientToken无效,请检查后重试。'], + ['code' => 'InvalidVideoLayersAndBlendListSize.Mismatch', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'VideoLayers的大小与BlendList的大小不匹配,请检查后重试。'], + ['code' => 'InvalidAudioLayersAndMixListSize.Mismatch', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'AudioLayers的大小与MixList的大小不匹配,请检查后重试。'], + ['code' => 'InvalidBlendList.ExceedNorm', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'BlendList大小超过规格,请检查后重试。'], + ['code' => 'InvalidHeightOrWidthNormalized', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'HeightNormalized或者WidthNormalized参数无效,请检查后重试。'], + ['code' => 'InvalidLayoutId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'LayoutId无效,请检查后重试。'], + ['code' => 'InvalidLayout.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'LayoutId不存在,请检查后重试。'], + ['code' => 'InvalidPageSize.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数PageSize无效,请检查后重试。'], + ['code' => 'InvalidPageNum.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数PageNum无效,请检查后重试。'], + ['code' => 'InvalidLiveStreamUrl.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数LiveStreamUrl无效,请检查后重试。'], + ['code' => 'InvalidMaterialId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数MaterialId无效,请检查后重试。'], + ['code' => 'InvalidVodUrl.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数VodUrl无效,请检查后重试。'], + ['code' => 'ResourceNumberExceed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '资源数量超限,请检查后重试。'], + ['code' => 'UnexpectedLocationID', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'LocationId无效,请检查后重试。'], + ['code' => 'InvalidResourceId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数ResourceId无效,请检查后重试。'], + ['code' => 'MalformedParam', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '存在无效参数,请检查后重试。'], + ['code' => 'MissingParam', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数缺失,请检查后重试。'], + ['code' => 'InternalErr', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => '内部错误,请稍后重试。'], + ['code' => 'ConfigExisted', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '配置已存在,请检查后重试。'], + ['code' => 'ConfigNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '配置不存在,请检查后重试。'], + ['code' => 'UnsafeCallback', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '回调地址不安全,请检查后重试。'], + ['code' => 'ConfigAlreadyExists', 'message' => '%s, please check and try again later.', 'http_code' => 409, 'description' => '配置已存在,请检查后重试。'], + ['code' => 'InvalidShowList.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'ShowList不存在,请检查后重试。'], + ['code' => 'InvalidShow.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Show不存在,请检查后重试。'], + ['code' => 'IncorrectCasterStatus', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '导播台状态有误,请检查后重试。'], + ['code' => 'InvalidHtmlResource.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'HtmlResource不存在,请检查后重试。'], + ['code' => 'DuplicateHtmlResource', 'message' => '%s, please check and try again later.', 'http_code' => 409, 'description' => 'HtmlResource已存在,请检查后重试。'], + ['code' => 'HtmlResourceAlreadyAlive', 'message' => '%s, please check and try again later.', 'http_code' => 409, 'description' => 'HtmlResource已启动,请检查后重试。'], + ['code' => 'InvalidMixList.ExceedNorm', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'MixList大小超过规格,请检查后重试。'], + ['code' => 'InvalidVideoLayersConfig', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'VideoLayers的大小与BlendList的大小不匹配,请检查后重试。'], + ['code' => 'InvalidAudioLayersConfig', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'AudioLayers的大小与MixList的大小不匹配,请检查后重试。'], + ['code' => 'InvalidParameter.Status', 'message' => '%s, please check and try again later.', 'http_code' => 500, 'description' => '参数Status无效,请检查后重试。'], + ['code' => 'NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '访问对象不存在,请检查后重试。'], + ['code' => 'InvalidHtmlResource.NotBelongToYou', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '无权操作HtmlResource,请检查后重试。'], + ['code' => 'InvalidParameter.EndTime', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数EndTime无效,请检查后重试。'], + ['code' => 'PlayListIsEmpty', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '播放列表为空,请检查后重试。'], + ['code' => 'MissInputParams', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数缺失,请检查后重试。'], + ['code' => 'InvalidProgramId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数ProgramId无效,请检查后重试。'], + ['code' => 'InvalidDomainName.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '域名不存在,请检查后重试。'], + ['code' => 'CasterNumberExceed', 'message' => '%s, please check and try again later.', 'http_code' => 401, 'description' => '导播台数量超限,请检查后重试。'], + ['code' => 'IncorrectPlaylistStatus.Inuse', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Playlist正在使用中,请检查后重试。'], + ['code' => 'PlayListNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'PlayList不存在,请检查后重试。'], + ['code' => 'InvalidSceneId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数SceneId无效,请检查后重试。'], + ['code' => 'IncorrectSceneStatus', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Scene状态不支持,请检查后重试。'], + ['code' => 'IncorrectSceneStatus.Idle', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Scene状态为空闲,请检查后重试。'], + ['code' => 'IncorrectSceneStatus.ConfigError', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Scene配置错误,请检查后重试。'], + ['code' => 'InvalidScene.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'Scene不存在,请检查后重试。'], + ['code' => 'ResourceInChannel.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '资源不存在,请检查后重试。'], + ['code' => 'ResourceInChannel.PreConditionFailed', 'message' => '%s, please try again later.', 'http_code' => 412, 'description' => '资源预校验失败,请稍后重试。'], + ['code' => 'ResourceInChannel.Invalid', 'message' => '%s, please check and try again later.', 'http_code' => 412, 'description' => '资源与通道素材地址不一致,请检查后重试。'], + ['code' => 'InvalidVideo.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '视频资源不存在,请检查后重试。'], + ['code' => 'IncorrectSceneStatus.Inuse', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Scene已开启,请检查后重试。'], + ['code' => 'InvalidCaptionResource', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '语音字幕组件引用的资源不存在或不为直播源,请检查后重试。'], + ['code' => 'ComponentNumberExceed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '组件数量超限,请检查后重试。'], + ['code' => 'SceneNumberExceed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Scene数量超限,请检查后重试。'], + ['code' => 'IncorrectSceneStatus.Waiting', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => 'Scene等待中,请稍后重试。'], + ['code' => 'InvalidUrgentMaterial.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '备播素材不存在,请检查后重试。'], + ['code' => 'ConfigurationNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '配置不存在,请检查后重试。'], + ['code' => 'TemplateAlreadyExist', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '模板已存在,请检查后重试。'], + ['code' => 'CustomTemplateInvalid', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '自定义模板无效,请检查后重试。'], + ['code' => 'IncorrectCasterStatus.Idle', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '导播台未开启,请检查后重试。'], + ['code' => 'InvalidParams', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数无效,请检查后重试。'], + ['code' => 'InvalidProtocol', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数Protocol无效,请检查后重试。'], + ['code' => 'InvalidSegmentNum', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数SegmentNum无效,请检查后重试。'], + ['code' => 'InvalidSegmentDuration', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数SegmentDuration无效,请检查后重试。'], + ['code' => 'InvalidPartDuration', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数PartDuration无效,请检查后重试。'], + ['code' => 'ConfigConflicts', 'message' => '%s, please check and try again later.', 'http_code' => 409, 'description' => '配置冲突,请检查后重试。'], + ['code' => 'InternalErr', 'message' => '%s, please try again.', 'http_code' => 500, 'description' => '内部错误,请稍后重试。'], + ['code' => 'ConfigNotFound', 'message' => '%s, please check and try again.', 'http_code' => 404, 'description' => '配置不存在,请检查后重试。'], + ['code' => 'IncorrectCasterStatus.EnableChannel', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '导播台状态不支持EnableChannel设置,请检查后重试。'], + ['code' => 'InvalidCasterTemplate.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '导播台模板不存在,请检查后重试。'], + ['code' => 'PlayListItemNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => 'PlayListItem不存在,请检查后重试。'], + ['code' => 'InvalidNormType.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '规格类型无效,请检查后重试。'], + ['code' => 'InvalidParameter.Offset', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数Offset无效,请检查后重试。'], + ['code' => 'InvalidParameter.StartItemId', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数StartItemId无效,请检查后重试。'], + ['code' => 'DuplicateResourceId', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'ResourceId重复,请检查后重试。'], + ['code' => 'InvalidParamter', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数无效,请检查后重试。'], + ['code' => 'CodeConfigNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '配置不存在,请检查后重试。'], + ['code' => 'InvalidStream.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '直播流不存在,请您确认直播流是否正确。'], + ['code' => 'IncorrectChannel.Disable', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Channel处于不可设置状态,请检查后重试。'], + ['code' => 'InvalidParameter.EventName', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数EventName无效,请检查后重试。'], + ['code' => 'InvalidConfiguration.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '配置不存在,请检查后重试。'], + ['code' => 'InvalidAppId', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'AppId无效,请检查后重试。'], + ['code' => 'LiveServiceNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '直播服务未开通,请检查后重试。'], + ['code' => 'InvalidParameter.StartTime', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数StartTime无效,请检查后重试。'], + ['code' => 'InvalidParameter.Status', 'message' => '%s, please check and try again.', 'http_code' => 400, 'description' => 'Status无效,请检查后重试。'], + ['code' => 'DomainConfigFailed', 'message' => '%s, please try again later.', 'http_code' => 500, 'description' => '域名配置失败,请稍后重试。'], + ['code' => 'InvalidDataNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '数据不存在,请检查后重试。'], + ['code' => 'InvalidStreamNum', 'message' => '%s, please check and try again later.', 'http_code' => 409, 'description' => '流数量异常,请检查后重试。'], + ['code' => 'InvalidParameter.PurchaseTime', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数PurchaseTime无效,请检查后重试。'], + ['code' => 'InvalidChargeType.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数ChargeType无效,请检查后重试。'], + ['code' => 'InvalidChargeType.PostSupport', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'ChargeType仅支持后付费,请检查后重试。'], + ['code' => 'InvalidCasterTemplate.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数CasterTemplate无效,请检查后重试。'], + ['code' => 'InvalidParameter.ChargeType', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数ChargeType无效,请检查后重试。'], + ['code' => 'InvalidPeriod.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '时间间隔无效,请检查后重试。'], + ['code' => 'PermissionDenied', 'message' => '%s, please check and try again later.', 'http_code' => 403, 'description' => '访问拒绝,请检查后重试。'], + ['code' => 'InvalidParameter.NormType', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '参数NormType无效,请检查后重试。'], + ['code' => 'CreateLiveAIStudio.Timeout', 'message' => '%s, please try again later.', 'http_code' => 408, 'description' => '调用CreateLiveAIStudio超时,请稍后重试。'], + ['code' => 'DeleteLiveAIStudio.Timeout', 'message' => '%s, please try again later.', 'http_code' => 408, 'description' => '调用DeleteLiveAIStudio超时,请稍后重试。'], + ['code' => 'ModifyLiveAIStudio.Timeout', 'message' => '%s, please try again later.', 'http_code' => 408, 'description' => '调用ModifyLiveAIStudio超时,请稍后重试。'], + ['code' => 'DescribeLiveAIStudio.Timeout', 'message' => '%s, please try again later.', 'http_code' => 408, 'description' => '调用DescribeLiveAIStudio超时,请稍后重试。'], + ['code' => 'StreamMonitorExist', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '监播室已存在,请检查后重试。'], + ['code' => 'InvalidMonitorId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数MonitorId无效,请检查后重试。'], + ['code' => 'StreamMonitorNotExist', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '监播室不存在,请检查后重试。'], + ['code' => 'StreamMonitorAlreadyStarted', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '监播室已经开启,请检查后重试。'], + ['code' => 'StreamMonitorAlreadyStop', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '监播室已经停止,请检查后重试。'], + ['code' => 'MixStreamAlreadyExist', 'message' => '%s, please check and try again later.', 'http_code' => 403, 'description' => '合流任务已存在,请检查后重试。'], + ['code' => 'MixStreamNotExist', 'message' => '%s, please check and try again later.', 'http_code' => 403, 'description' => '合流任务不存在,请检查后重试。'], + ['code' => 'Forbidden', 'message' => '%s, please check and try again later.', 'http_code' => 403, 'description' => '无权限,请检查后重试。'], + ['code' => 'TemplateNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '模板不存在,请检查后重试。'], + ['code' => 'OperationDenied', 'message' => '%s, please check and try again later.', 'http_code' => 403, 'description' => '操作拒绝,请检查后重试。'], + ['code' => 'JobNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '任务不存在,请检查后重试。'], + ['code' => 'UserTaskExceed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '用户任务达到上限,请检查后重试。'], + ['code' => 'MissingParams', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数缺失,请检查后重试。'], + ['code' => 'Cannot find task', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '任务不存在,请检查后重试。'], + ['code' => 'CreateCaster.Timeout', 'message' => '%s, please try again later.', 'http_code' => 408, 'description' => '调用CreateCaster超时,请稍后重试。'], + ['code' => 'InvalidParameter.PlayStatus', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数PlayStatus无效,请检查后重试。'], + ['code' => 'InvalidChannelId.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数ChannelId无效,请检查后重试。'], + ['code' => 'InvalidParameter.SeekOffset', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数SeekOffset无效,请检查后重试。'], + ['code' => 'ResourceOfChannelExist', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '通道中已存在资源,请检查后重试。'], + ['code' => 'InvalidParameter.ExpireTime', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数ExpireTime无效,请检查后重试。'], + ['code' => 'IncorrectStudioStatus.Inuse', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'Studio使用中,请检查后重试。'], + ['code' => 'MalformedParams', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数无效,请检查后重试。'], + ['code' => 'InvalidTaskId', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'TaskId无效,请检查后重试。'], + ['code' => 'InvalidBlockIngInfo.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'BlockingInfo无效,请检查后重试。'], + ['code' => 'InvalidEndTime.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'BlockingEndTime参数无效,请检查后重试。'], + ['code' => 'IllegalOperation', 'message' => '%s, please check and try again.', 'http_code' => 400, 'description' => '错误操作,请检查后重试。'], + ['code' => 'InvalidStreamNumber.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '流数量无效,请检查后重试。'], + ['code' => 'InvalidTime.ValueNotSupported', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'StartTime与EndTime不匹配,请检查后重试。'], + ['code' => 'InvalidTime.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'StartTime和EndTime间隔无效,请检查后重试。'], + ['code' => 'InvalidStartTime.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'StartTime参数无效,请检查后重试。'], + ['code' => 'InvalidEndTime.Malformed', 'message' => '%s, please check and try again.', 'http_code' => 400, 'description' => 'EndTime参数无效,请检查后重试。'], + ['code' => 'Throttling', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => '触发流控,请稍后重试。'], + ['code' => 'CdnServiceNotFound', 'message' => '%s, please try again later.', 'http_code' => 400, 'description' => '服务不存在,请稍后重试。'], + ['code' => 'InvalidAppName.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => 'AppName参数无效,请检查后重试。'], + ['code' => 'StreamNotFound', 'message' => '%s, please check and try again later.', 'http_code' => 409, 'description' => '流不存在,请检查后重试。'], + ['code' => 'TaskAlreadyStarted', 'message' => '%s, please do not start again.', 'http_code' => 409, 'description' => '任务已启动,请勿重复启动。'], + ['code' => 'IncorrectCasterStatus.Inuse', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '导播台状态为已开启,请检查后重试。'], + ['code' => 'InvalidParameter.PageSize', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数PageSize无效,请检查后重试。'], + ['code' => 'InvalidParameter.PageNum', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '参数PageNum无效,请检查后重试。'], + ['code' => 'InvalidCaster.ChannelDisableUnsupported', 'message' => '%s, please check.', 'http_code' => 400, 'description' => '不支持关闭已启用的Channel。'], + ['code' => 'IncorrectCasterStatus.EnableChannel', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '导播台状态不支持EnableChannel设置,请检查后重试。'], + ['code' => 'IncorrectCasterStatus.Cease', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '导播台已欠费停服,请结清后重试。'], + ['code' => 'IncorrectCasterStatus.Expire', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '导播台预付费实例过期,请续费后重试。'], + ['code' => 'InvalidTranscode.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '转码未配置,请检查后重试。'], + ['code' => 'InvalidDelay.NotFound', 'message' => '%s, please check and try again later.', 'http_code' => 404, 'description' => '延时播放未配置,请检查后重试。'], + ['code' => 'InvalidFunctionName.ValueNotSupported', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '输入的函数名不支持。'], + ['code' => 'InvalidArgName.ValueNotSupported', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '传入的ArgName无效。'], + ['code' => 'InvalidArgValue.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '传入的ArgValue无效。'], + ['code' => 'InvalidRule.Malformed', 'message' => '%s, please check and try again later.', 'http_code' => 400, 'description' => '传入的Rule无效。'], + ['code' => 'MissingTemplate', 'message' => 'Template is mandatory for this action.', 'http_code' => 400, 'description' => '缺少转码模板参数配置。'], + ['code' => 'QuotaExceed.RunningTask', 'message' => 'The number of active cloud recording tasks has reached the limit.', 'http_code' => 403, 'description' => '活跃的云端录制任务数量达到上限。'], + ], + 'changeSet' => [ + [ + 'apis' => [ + ['description' => '错误码发生变更、请求参数发生变更、响应参数发生变更', 'api' => 'DescribeLiveStreamTranscodeStreamNum'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"a05e6b15-15af-405b-a4a2-0152245d****\\",\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\"\\n}","type":"json"}]', - 'title' => '停止拉流转推任务', - 'description' => '- 调用本接口停止拉流转推任务。'."\n" - .'- 支持强制停止运行中(含异常重试状态)的任务,对未运行的任务无效。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'createdAt' => '2025-04-11T03:13:47.000Z', + 'description' => '', ], - 'RestartLivePullToPush' => [ - 'summary' => '重启任务接口。', - 'methods' => [ - 'get', + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'DescribeLiveStreamsNotifyUrlConfig'], + ['description' => '请求参数发生变更', 'api' => 'SetLiveStreamsNotifyUrlConfig'], ], - 'schemes' => [ - 'https', + 'createdAt' => '2025-04-01T06:33:49.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeLivePullToPush'], + ['description' => '响应参数发生变更', 'api' => 'DescribeLivePullToPushList'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2025-04-01T03:47:26.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeLiveMessageApp'], + ['description' => '响应参数发生变更', 'api' => 'ListLiveMessageApps'], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '257299', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'createdAt' => '2025-03-26T02:53:24.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeLiveMessageGroup'], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Region', - 'in' => 'query', - 'schema' => [ - 'description' => '指定直播中心查询。取值:'."\n" - .'- ap-southeast-1(新加坡)'."\n" - .'- ap-southeast-5(印度尼西亚)'."\n" - .'- cn-beijing(北京)'."\n" - .'- cn-shanghai(上海)', - 'type' => 'string', - 'required' => true, - 'example' => 'preregion', - 'enum' => [ - 'ap-northeast-1', - 'ap-southeast-1', - 'ap-southeast-5', - 'eu-central-1', - 'me-central-1', - 'cn-beijing', - 'cn-shanghai', - 'cn-shenzhen', - 'cn-qingdao', - 'preregion', - ], - ], - ], - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '根据任务ID查询。', - 'type' => 'string', - 'required' => true, - 'example' => '6f869419-0692-4fd5-8cf0-66cab659****', - 'enum' => [], - ], - ], + 'createdAt' => '2025-03-26T02:50:54.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'ListLiveMessageGroupUsers'], + ], + 'createdAt' => '2025-03-26T02:43:54.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'CreateLiveMessageApp'], + ], + 'createdAt' => '2025-02-26T03:18:25.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更、请求参数发生变更、响应参数发生变更', 'api' => 'DescribeLiveStreamsNotifyUrlConfig'], + ['description' => '请求参数发生变更', 'api' => 'SetLiveStreamsNotifyUrlConfig'], + ], + 'createdAt' => '2025-02-20T08:26:19.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeLiveMessageApp'], + ['description' => '响应参数发生变更', 'api' => 'ListLiveMessageApps'], + ['description' => '响应参数发生变更', 'api' => 'SendLiveMessageGroup'], + ['description' => '错误码发生变更、请求参数发生变更、响应参数发生变更', 'api' => 'SendLiveMessageUser'], + ], + 'createdAt' => '2025-01-23T12:01:08.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'CreateLiveMessageApp'], + ], + 'createdAt' => '2025-01-22T10:57:09.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'SendLiveMessageGroup'], + ], + 'createdAt' => '2025-01-13T05:41:38.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更、响应参数发生变更', 'api' => 'DescribeLiveStreamsPublishList'], + ], + 'createdAt' => '2024-12-30T02:09:45.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeCasterConfig'], + ], + 'createdAt' => '2024-12-12T09:11:26.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'AddLiveAISubtitle'], + ['description' => '错误码发生变更', 'api' => 'DeleteLiveAISubtitle'], + ['description' => '错误码发生变更', 'api' => 'DescribeLiveAISubtitle'], + ['description' => '错误码发生变更', 'api' => 'UpdateLiveAISubtitle'], + ], + 'createdAt' => '2024-12-04T05:55:26.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'ListRtcMPUTaskDetail'], + ['description' => '请求参数发生变更', 'api' => 'StartLiveMPUTask'], + ], + 'createdAt' => '2024-11-14T09:21:58.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'ListRtcMPUTaskDetail'], + ], + 'createdAt' => '2024-10-30T09:34:14.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'StartLiveMPUTask'], + ['description' => '请求参数发生变更', 'api' => 'UpdateLiveMPUTask'], + ], + 'createdAt' => '2024-10-30T08:35:59.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'AddLiveDomain'], + ], + 'createdAt' => '2024-10-24T06:15:08.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'RemoveTerminals'], + ], + 'createdAt' => '2024-10-18T04:00:06.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'AddLiveAIProduceRules'], + ['description' => '请求参数发生变更', 'api' => 'DeleteLiveAIProduceRules'], + ['description' => '响应参数发生变更', 'api' => 'DescribeLiveAIProduceRules'], + ['description' => '请求参数发生变更', 'api' => 'UpdateLiveAIProduceRules'], + ], + 'createdAt' => '2024-10-14T03:48:07.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'StopLiveDomain'], + ], + 'createdAt' => '2024-09-29T06:30:50.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeLiveDomainLog'], + ['description' => '错误码发生变更', 'api' => 'DescribeLiveDomainMapping'], + ], + 'createdAt' => '2024-09-29T03:52:12.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeLiveDomainCertificateInfo'], + ], + 'createdAt' => '2024-09-29T03:21:53.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDomainWithIntegrity'], + ], + 'createdAt' => '2024-09-29T03:09:55.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'CreateCaster'], + ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'DescribeCasters'], + ], + 'createdAt' => '2024-09-27T02:17:14.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更、请求参数发生变更', 'api' => 'AddLiveDomain'], + ['description' => '响应参数发生变更', 'api' => 'DescribeLiveDomainDetail'], + ], + 'createdAt' => '2024-09-25T07:01:49.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'DescribeLiveUserDomains'], + ], + 'createdAt' => '2024-09-25T02:40:34.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'CreateLiveStreamMonitor'], + ['description' => '请求参数发生变更', 'api' => 'UpdateLiveStreamMonitor'], + ], + 'createdAt' => '2024-09-04T07:13:57.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更、请求参数发生变更', 'api' => 'CreateCaster'], + ['description' => '错误码发生变更', 'api' => 'DeleteCaster'], + ['description' => '错误码发生变更、请求参数发生变更、响应参数发生变更', 'api' => 'DescribeCasters'], + ['description' => '错误码发生变更', 'api' => 'SetCasterConfig'], + ], + 'createdAt' => '2024-08-21T03:34:41.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'ListRtcMPUTaskDetail'], + ['description' => '请求参数发生变更', 'api' => 'StartLiveMPUTask'], + ['description' => '请求参数发生变更', 'api' => 'UpdateLiveMPUTask'], + ], + 'createdAt' => '2024-08-13T08:24:13.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'CreateRtcAsrTask'], + ], + 'createdAt' => '2024-08-12T06:05:19.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'AddCasterVideoResource'], + ], + 'createdAt' => '2024-08-08T03:25:14.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'ListRtcMPUTaskDetail'], + ['description' => '请求参数发生变更', 'api' => 'StartLiveMPUTask'], + ['description' => '请求参数发生变更', 'api' => 'UpdateLiveMPUTask'], + ], + 'createdAt' => '2024-08-06T08:00:32.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'DescribeLiveStreamsOnlineList'], + ], + 'createdAt' => '2024-08-01T06:18:00.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeLiveMessageApp'], + ['description' => '响应参数发生变更', 'api' => 'ListLiveMessageApps'], + ], + 'createdAt' => '2024-08-01T02:19:34.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'RecoverLiveMessageDeletedGroup'], + ], + 'createdAt' => '2024-07-19T03:45:27.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeShowList'], + ], + 'createdAt' => '2024-07-15T01:32:07.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeShowList'], + ], + 'createdAt' => '2024-07-11T09:46:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'DescribeLiveStreamsOnlineList'], + ], + 'createdAt' => '2024-07-11T03:44:06.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'ListRtcMPUTaskDetail'], + ['description' => '错误码发生变更', 'api' => 'StartLiveMPUTask'], + ['description' => '错误码发生变更', 'api' => 'StopLiveMPUTask'], + ['description' => '错误码发生变更', 'api' => 'UpdateLiveMPUTask'], + ], + 'createdAt' => '2024-07-04T07:03:49.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'CreateRtcMPUEventSub'], + ['description' => '错误码发生变更', 'api' => 'DeleteRtcMPUEventSub'], + ['description' => '错误码发生变更', 'api' => 'DescribeRtcMPUEventSub'], + ['description' => '错误码发生变更', 'api' => 'ListRtcMPUEventSubRecord'], + ['description' => '错误码发生变更', 'api' => 'SetLiveMpuTaskSei'], + ['description' => '错误码发生变更', 'api' => 'UpdateRtcMPUEventSub'], + ], + 'createdAt' => '2024-07-04T06:15:53.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'AddLiveAIProduceRules'], + ['description' => '响应参数发生变更', 'api' => 'DescribeLiveAIProduceRules'], + ['description' => '请求参数发生变更', 'api' => 'UpdateLiveAIProduceRules'], + ], + 'createdAt' => '2024-07-04T02:58:31.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更、错误码发生变更', 'api' => 'DescribeLiveStreamRecordIndexFile'], + ['description' => '响应参数发生变更', 'api' => 'DescribeLiveStreamRecordIndexFiles'], + ], + 'createdAt' => '2024-06-25T08:56:07.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'ListEventSub'], + ], + 'createdAt' => '2024-06-14T07:15:10.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeChannelParticipants'], + ], + 'createdAt' => '2024-06-13T01:20:56.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'StartLiveMPUTask'], + ['description' => '请求参数发生变更', 'api' => 'UpdateLiveMPUTask'], + ], + 'createdAt' => '2024-06-12T05:52:37.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'DescribeLiveAISubtitle'], + ], + 'createdAt' => '2024-06-11T03:34:04.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'ListLiveMessageGroups'], + ], + 'createdAt' => '2024-05-23T05:56:48.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'ModifyLiveMessageUserInfo'], + ], + 'createdAt' => '2024-05-10T02:55:32.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeShowList'], + ], + 'createdAt' => '2024-04-11T07:34:41.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DeleteLiveStreamTranscode'], + ], + 'createdAt' => '2024-03-15T07:05:47.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'CreateLiveMessageApp'], + ], + 'createdAt' => '2024-03-13T01:43:13.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'StartLiveMPUTask'], + ['description' => '请求参数发生变更', 'api' => 'UpdateLiveMPUTask'], + ], + 'createdAt' => '2024-03-06T17:48:16.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'StartLiveMPUTask'], + ['description' => '请求参数发生变更', 'api' => 'UpdateLiveMPUTask'], + ], + 'createdAt' => '2024-03-01T07:40:57.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeLiveMessageApp'], + ], + 'createdAt' => '2024-02-22T06:02:47.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeMeterLiveRtcDuration'], + ['description' => '响应参数发生变更', 'api' => 'DescribeRTSNativeSDKPlayTime'], + ], + 'createdAt' => '2024-02-20T03:12:58.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'ModifyLiveMessageAppAudit'], + ['description' => '错误码发生变更', 'api' => 'ModifyLiveMessageAppCallback'], + ], + 'createdAt' => '2024-02-02T01:46:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更、响应参数发生变更', 'api' => 'CreateLiveMessageApp'], + ], + 'createdAt' => '2024-01-31T03:43:15.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'CreateLiveMessageGroup'], + ], + 'createdAt' => '2024-01-31T03:36:40.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DeleteLiveDetectNotifyConfig'], + ['description' => '错误码发生变更', 'api' => 'DeleteLiveDomainPlayMapping'], + ], + 'createdAt' => '2024-01-30T08:57:27.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'CreateLiveStreamRecordIndexFiles'], + ], + 'createdAt' => '2024-01-30T07:46:18.000Z', + 'description' => '无', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeShowList'], + ], + 'createdAt' => '2024-01-30T03:32:15.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeLiveStreamsOnlineList'], + ], + 'createdAt' => '2024-01-26T05:59:52.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更、错误码发生变更', 'api' => 'DescribeLiveLazyPullStreamConfig'], + ], + 'createdAt' => '2024-01-23T08:49:39.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeLiveDomainLimit'], + ], + 'createdAt' => '2024-01-23T07:51:42.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'RealTimeSnapshotCommand'], + ], + 'createdAt' => '2024-01-11T07:55:00.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeLiveMessageApp'], + ['description' => '响应参数发生变更', 'api' => 'ListLiveMessageApps'], + ['description' => '请求参数发生变更', 'api' => 'SendLiveMessageGroup'], + ], + 'createdAt' => '2024-01-09T03:36:21.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'StartLiveMPUTask'], + ['description' => '请求参数发生变更', 'api' => 'UpdateLiveMPUTask'], + ], + 'createdAt' => '2023-12-26T06:02:30.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更、请求参数发生变更、响应参数发生变更', 'api' => 'DescribeLiveStreamMetricDetailData'], + ], + 'createdAt' => '2023-12-21T06:32:26.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'TagLiveResources'], + ], + 'createdAt' => '2023-12-14T02:41:25.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'SendLiveMessageGroup'], + ], + 'createdAt' => '2023-12-13T07:07:53.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeCasterConfig'], + ['description' => '请求参数发生变更', 'api' => 'SetCasterConfig'], + ], + 'createdAt' => '2023-11-22T01:25:43.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'CreateEventSub'], + ], + 'createdAt' => '2023-11-21T09:22:15.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeLiveDomainLogExTtl'], + ], + 'createdAt' => '2023-11-21T09:18:49.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更、请求参数发生变更', 'api' => 'CreateEventSub'], + ['description' => '错误码发生变更、请求参数发生变更、响应参数发生变更', 'api' => 'DeleteEventSub'], + ], + 'createdAt' => '2023-11-21T05:56:18.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'CreateEventSub'], + ['description' => '错误码发生变更', 'api' => 'DeleteChannel'], + ['description' => '错误码发生变更', 'api' => 'DescribeChannelUsers'], + ['description' => '错误码发生变更', 'api' => 'RemoveTerminals'], + ], + 'createdAt' => '2023-08-31T01:48:52.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'CreateEventSub'], + ], + 'createdAt' => '2023-08-04T10:36:56.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更、请求参数发生变更', 'api' => 'DescribeDomainUsageData'], + ], + 'createdAt' => '2023-07-27T07:29:29.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'AddLiveDomain'], + ], + 'createdAt' => '2023-05-09T08:03:09.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'CancelMuteAllGroupUser'], + ['description' => '请求参数发生变更', 'api' => 'MuteAllGroupUser'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求id', - 'type' => 'string', - 'example' => 'a05e6b15-15af-405b-a4a2-01522450****', - ], - 'TaskId' => [ - 'description' => '新建任务id。', - 'type' => 'string', - 'example' => 'fb0d4ac7-c7e3-4978-9743-0bf2f6e8****', - ], - ], - ], - ], + 'createdAt' => '2023-04-04T06:10:42.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'ModifyCasterVideoResource'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'LiveServiceNotFound', - 'errorMessage' => 'Your account does not open Live service yet', - ], - [ - 'errorCode' => 'InvalidParam.CodeIllegalDuration', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'CodeInvalidAliUid', - 'errorMessage' => 'This aliuid does not have a live domain name.', - ], - [ - 'errorCode' => 'CodeTaskNotExist', - 'errorMessage' => 'Task does not exist.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], - ], + 'createdAt' => '2023-03-31T11:03:40.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'AddCasterVideoResource'], + ['description' => '响应参数发生变更', 'api' => 'DescribeCasterConfig'], + ['description' => '响应参数发生变更', 'api' => 'DescribeCasterVideoResources'], + ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'ModifyCasterVideoResource'], + ['description' => '请求参数发生变更', 'api' => 'SetCasterConfig'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2023-03-31T08:27:31.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'SendMessageToGroupUsers'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"a05e6b15-15af-405b-a4a2-01522450****\\",\\n \\"TaskId\\": \\"fb0d4ac7-c7e3-4978-9743-0bf2f6e8****\\"\\n}","type":"json"}]', - 'title' => '重启拉流转推任务', - 'description' => '- 调用本接口重启拉流转推任务。'."\n" - .'- 支持重启运行中(含异常重试状态)或已停止的任务,运行中任务会被停止再启动,未运行中任务会被直接启动。'."\n" - .'- 任务未到设置的开始时间,重启无效。'."\n" - .'- 任务重启会根据任务最新配置执行,会造成推流中断。'."\n" - .'- 点播类型任务被重启后,是根据最新播放列表从头开始播放,用户可以通过调用更新接口设置视频索引和视频播放进度实现续播。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', + 'createdAt' => '2023-03-28T07:17:29.000Z', + 'description' => '', ], - 'SetLiveDomainMultiStreamConfig' => [ - 'summary' => '调用 SetLiveDomainMultiStreamConfig 设置开启双流灾备开关。', - 'methods' => [ - 'get', + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'UpdateCasterSceneAudio'], ], - 'schemes' => [ - 'https', + 'createdAt' => '2023-03-24T08:24:58.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeCasterConfig'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2023-03-24T08:24:47.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'SendMessageToGroup'], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '250492', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'createdAt' => '2023-03-24T08:22:46.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'ListMessageGroupUserById'], ], - 'parameters' => [ - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '主播放域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'Switch', - 'in' => 'query', - 'schema' => [ - 'description' => '功能开关。取值:'."\n" - .'- **on**:开启'."\n" - .'- **off**:关闭', - 'type' => 'string', - 'required' => true, - 'example' => 'on', - 'enum' => [ - 'on', - 'off', - ], - ], - ], + 'createdAt' => '2023-03-24T08:22:07.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'AddLiveDomain'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64-af62-20e91b96****', - ], - ], - ], - ], + 'createdAt' => '2022-12-22T09:04:25.000Z', + 'description' => '错误码更新', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'MuteAllGroupUser'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'CodeGetPushbackDomainError', - 'errorMessage' => 'Unable to get the push domain name, please check the domain name mapping configuration.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], - ], + 'createdAt' => '2022-12-08T09:06:36.000Z', + 'description' => 'API更新。', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'SendMessageToGroupUsers'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2022-12-05T08:48:35.000Z', + 'description' => 'API配置更新', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'ListMessageGroup'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5c6a2a0df228-4a64-af62-20e91b96****\\"\\n}","type":"json"}]', - 'title' => '设置双流灾备开关', - 'description' => '调用本接口开启双流灾备功能,支持向相同的直播流名进行推流。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户 QPS 限制为 10 次/秒。超过限制,API 调用会被限流,这可能会影响您的业务,请合理调用。', + 'createdAt' => '2022-12-05T02:26:37.000Z', + 'description' => 'API更新。', ], - 'SetLiveDomainMultiStreamOptimalMode' => [ - 'summary' => '设置双流灾备自动模式开关。', - 'methods' => [ - 'get', + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'SendMessageToGroup'], + ['description' => '请求参数发生变更', 'api' => 'SendMessageToGroupUsers'], ], - 'schemes' => [ - 'https', + 'createdAt' => '2022-12-04T11:01:18.000Z', + 'description' => '更新API。', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'ListMessage'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2022-11-24T12:46:01.000Z', + 'description' => '发布接口。', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'ListMessageGroupUser'], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '250499', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', - ], + 'createdAt' => '2022-11-24T09:14:29.000Z', + 'description' => '修改限流值。', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'ListMessageGroup'], ], - 'parameters' => [ - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '主播放域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => 'App名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'testapp', - 'enum' => [], - ], - ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流名。', - 'type' => 'string', - 'required' => true, - 'example' => 'teststream', - ], - ], - [ - 'name' => 'OptimalMode', - 'in' => 'query', - 'schema' => [ - 'description' => '自动模式开关。取值:'."\n" - .'- **on**:开启'."\n" - .'- **off**:关闭', - 'type' => 'string', - 'required' => true, - 'example' => 'on', - 'enum' => [ - 'on', - 'off', - ], - ], - ], + 'createdAt' => '2022-10-27T06:55:06.000Z', + 'description' => '新增接口', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI 下线', 'api' => 'DescribeRTSNativeSDKPlayFailStatus'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-****-CB92E68F4CD8', - ], - ], - ], - ], + 'createdAt' => '2022-10-27T02:35:07.000Z', + 'description' => 'rts native 数据质量接口发布', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI 下线', 'api' => 'GetMessageUserInfo'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'CodeTaskNotExist', - 'errorMessage' => 'Task does not exist.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', - ], - ], + 'createdAt' => '2022-09-29T08:17:34.000Z', + 'description' => '增加获取用户信息和应用更新', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI 下线', 'api' => 'CancelMuteAllGroupUser'], + ['description' => '响应参数发生变更', 'api' => 'GetMessageGroup'], + ['description' => '请求参数发生变更', 'api' => 'JoinMessageGroup'], + ['description' => '请求参数发生变更', 'api' => 'LeaveMessageGroup'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2022-09-27T09:18:49.000Z', + 'description' => '新增IMV3-禁言点赞功能', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'ListMessage'], + ['description' => '请求参数发生变更', 'api' => 'ListMessage'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-****-CB92E68F4CD8\\"\\n}","type":"json"}]', - 'title' => '设置双流灾备自动模式开关', + 'createdAt' => '2022-09-13T02:27:54.000Z', + 'description' => '新增查询消息列表的接口。', ], - 'SetLiveDomainMultiStreamMaster' => [ - 'summary' => '手动切换双流灾备主流。', - 'methods' => [ - 'get', + [ + 'apis' => [ + ['description' => 'OpenAPI 下线', 'api' => 'CloseMessageGroup'], + ['description' => 'OpenAPI 下线', 'api' => 'CreateMessageGroup'], + ['description' => 'OpenAPI 下线', 'api' => 'DeleteMessageApp'], + ['description' => 'OpenAPI 下线', 'api' => 'GetMessageToken'], + ['description' => 'OpenAPI 下线', 'api' => 'ListMessageGroup'], + ['description' => 'OpenAPI 下线', 'api' => 'ListMessageGroupUser'], + ['description' => 'OpenAPI 下线', 'api' => 'SendMessageToGroup'], + ], + 'createdAt' => '2022-09-08T15:23:58.000Z', + 'description' => '增加直播-互动消息能力API集合', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI 下线', 'api' => 'DescribeMeterLiveRtcDuration'], ], - 'schemes' => [ - 'https', + 'createdAt' => '2022-09-01T02:47:32.000Z', + 'description' => '一体化直播连麦接口发布', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeLiveDomainDetail'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2022-08-31T08:14:35.000Z', + 'description' => 'api治理', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI 下线', 'api' => 'CreateLiveTranscodeTemplate'], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ + 'createdAt' => '2022-08-22T13:21:24.000Z', + 'description' => 'api治理', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DeleteLiveLazyPullStreamInfoConfig'], + ], + 'createdAt' => '2022-08-17T11:23:47.000Z', + 'description' => 'api治理', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DeleteLiveStreamsNotifyUrlConfig'], + ], + 'createdAt' => '2022-08-17T09:42:51.000Z', + 'description' => 'api治理', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'SetLiveLazyPullStreamInfoConfig'], + ], + 'createdAt' => '2022-08-16T09:11:58.000Z', + 'description' => 'api治理', + ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveRecordNotifyConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EffectCasterUrgent'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveStreamWatermarkRule'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGetOnlineUsers'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainMultiStreamMaster'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteStudioLayout'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveSnapshotNotifyConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLivePullToPushList'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCasterSceneConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainRecordUsageData'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamTranscodeInfo'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveDelayConfig'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateMessageApp'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CopyCasterSceneConfig'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageAppCallback'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamMerge'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveAudioAuditConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopLiveStreamMonitor'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendMessageToGroupUsers'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveSpecificStagingConfig'], + ['threshold' => '2000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamState'], + ['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMuteGroupUser'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEdgeTranscodeJob'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveMessageGroup'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetCasterSceneConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveStreamMonitor'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveCenterTransfer'], + ['threshold' => '1000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamBitRateData'], + ['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelMuteAllGroupUser'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveSnapshotNotifyConfig'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAppRecordConfig'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetShowListBackground'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainRealtimeLogDelivery'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'LeaveMessageGroup'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartCasterScene'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamRecordIndexFile'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveTopDomainsByFlow'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMessageGroupUser'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCustomLiveStreamTranscode'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveLazyPullStreamInfoConfig'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartLiveMPUTask'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveAIStudio'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveRecordNotifyConfig'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveStreamsNotifyUrlConfig'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveMessageApp'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveUserTags'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEventSub'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRtcMPUEventSub'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLivePrivateLine'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveRealTimeLogDelivery'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartRtcCloudRecording'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyStudioLayout'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAudioAuditConfig'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAppSnapshotConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EditShowAndReplace'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PlayChoosenShow'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCasterSceneAudio'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopEdgeTranscodeJob'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopRtcAsrTask'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveAIStudio'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAllCustomTemplates'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddShowIntoShowList'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveCertificateDetail'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListRtcMPUTaskDetail'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveMessageApp'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveMessageGroupBand'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveStreamBlock'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsBlockList'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLivePushProxyLog'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveStreamMonitor'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveStreamTranscode'], + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterEpisodeGroupContent'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateRtcCloudRecording'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveDetectNotifyConfig'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RecoverLiveMessageDeletedGroup'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRtcMPUEventSub'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMeterLiveBypassDuration'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySnapshotCallbackAuth'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsControlHistory'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamCount'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetMessageGroup'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLivePullToPush'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveRealtimeLogDelivery'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryRtcAsrTasks'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMessageGroup'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainMonitoringUsageData'], + ['threshold' => '1000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'HotLiveRtcStream'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableLiveRealtimeLogDelivery'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteMessageApp'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateCaster'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLivePullToPush'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamRecordContent'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAIProduceRules'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListPlaylistItems'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveCenterStreamRateData'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEdgeTranscodeTemplate'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveLiveMessageGroupBand'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveSnapshotConfig'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEdgeTranscodeJob'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRTSNativeSDKVvData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveStreamTranscode'], + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCasterProgram'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeStudioLayouts'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveRealtimeDeliveryAcc'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAISubtitle'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendLiveMessageUser'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRtcAsrTask'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableLiveRealtimeLogDelivery'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSetLiveDomainConfigs'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveStreamMerge'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainDetail'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainMapping'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageAppDisable'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveDelayConfig'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveDomainPlayMapping'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddStudioLayout'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAISubtitle'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeStreamLocationBlock'], + ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ForbidLiveStream'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveMessageGroupByPage'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEdgeTranscodeJob'], + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCasterEpisodeGroup'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveStreamBlock'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRtcMPUEventSub'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveVerifyContent'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAppSnapshotConfig'], + ['threshold' => '90', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRTSNativeSDKFirstFrameDelay'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EffectCasterVideoResource'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainLog'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCustomLiveStreamTranscode'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCasterComponent'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageAppAudit'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryMessageApp'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'KickLiveMessageGroupUser'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetCasterConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartCaster'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListEventSub'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainMultiStreamConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopCaster'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopLiveMPUTask'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveDomain'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAudioAuditConfig'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveEdgeTransfer'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAppRecordConfig'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeMixStreamList'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEdgeTranscodeJob'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveCenterTransfer'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveTerminals'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEditingJobInfo'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateMixStream'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDetectNotifyConfig'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsNotifyRecords'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'VerifyLiveDomainOwner'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveSnapshotDetectPornConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CloseLiveShift'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveStreamRecordIndexFiles'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageUserInfo'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartPlaylist'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveEdgeTransfer'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainMultiStreamConfig'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveStreamMerge'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryLiveDomainMultiStreamList'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateMessageApp'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUpBpsPeakOfLine'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRTSNativeSDKPlayFailStatus'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainStagingConfig'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveStreamWatermark'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRTSNativeSDKPlayTime'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamWatermarks'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EditPlaylist'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDomainWithIntegrity'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeToutiaoLivePublish'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRtcCloudRecordingFiles'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainPublishErrorCode'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAudioAuditConfig'], + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCasterProgram'], + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterEpisodeGroup'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLivePrivateLineAvailGA'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDrmUsageData'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamWatermarkRules'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnbanLiveMessageGroup'], + ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'JoinMessageGroup'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveRecordNotifyConfig'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveRealtimeLogAuthorized'], + ['threshold' => '1000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendLiveMessageGroup'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLiveDelayConfig'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RollbackLiveStagingConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLivePackageConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterComponent'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveMessageApps'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAudioAuditNotifyConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartLiveStreamMonitor'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCasterVideoResource'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEventSub'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveCertificateList'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RestartLivePullToPush'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLivePullToPush'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsNotifyUrlConfig'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUpBpsPeakData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageGroupBand'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainBpsDataByLayer'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveRealtimeLogDeliveryDomains'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetCustomTemplate'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CheckLiveMessageUsersInGroup'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamTranscodeMetricData'], + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyCasterProgram'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveStreamsNotifyUrlConfig'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PublishLiveStagingConfigToProduction'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendLike'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartLiveDomain'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateMessageGroup'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveAISubtitle'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveCenterTransfer'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveRecordNotifyRecords'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamAuthChecking'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'OpenLiveShift'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterVideoResource'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddPlaylistItems'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainMultiStreamOptimalMode'], + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveUserBillPrediction'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopLivePullToPush'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RestartCaster'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopCasterScene'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainRealTimeTrafficData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAudioAuditNotifyConfig'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainByCertificate'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMessage'], + ['threshold' => '4', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyCasterEpisode'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAIProduceRules'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamSnapshotInfo'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateRtcMPUEventSub'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveIpInfo'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddRtsLiveStreamTranscode'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetCasterChannel'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveRecordNotifyConfig'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAISubtitle'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainTimeShiftData'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListLiveMessageGroups'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TagLiveResources'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainTrafficData'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CheckLiveMessageUsersOnline'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartEdgeTranscodeJob'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateMessageGroup'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainStagingConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveShowFromShowList'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyLiveMessageGroup'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopLiveDomain'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDelayConfig'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveAppRecordConfig'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamHistoryUserNum'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveMpuTaskSei'], + ['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'AddLiveRecordVodConfig'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCasterResourceGroup'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLivePackageConfig'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDomainMapping'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLivePullStreamInfoConfig'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLivePrivateLine'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveStreamPreloadTasks'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamPushMetricDetailData'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainConfigs'], + ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamRecordIndexFiles'], + ['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'DescribeLiveStreamDelayConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamPreloadTasks'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveDomainCertificate'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRtcAsrTask'], + ['threshold' => '1000', 'countWindow' => 60, 'regionId' => '*', 'api' => 'SetLiveStreamDelayConfig'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLivePullToPush'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetLiveEdgeTransfer'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDomainPlayMapping'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveAudioAuditNotifyConfig'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRoomRealTimeStreamAddress'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateLiveMPUTask'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDetectNotifyConfig'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveStreamWatermarkRule'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteChannel'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DynamicUpdateWaterMarkStreamRule'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopRtcCloudRecording'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamMetricDetailData'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetSnapshotCallbackAuth'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUpPeakPublishStreamData'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRTSNativeSDKFirstFrameCost'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListEdgeTranscodeTemplate'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDelayConfig'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveDomain'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddLiveDomainMapping'], + ['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'MuteAllGroupUser'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RealTimeRecordCommand'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCasterLayout'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ResumeLiveStream'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveUserDomains'], + ['threshold' => '60', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveAIProduceRules'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamDetailFrameRateAndBitRateData'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamMonitorList'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveStreamsPublishList'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveSnapshotDetectPornConfig'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeLiveDomainStreamTranscodeData'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveSnapshotNotifyConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCaster'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeChannelParticipants'], + ['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'MuteGroupUser'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListMessageApp'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopPlaylist'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnTagLiveResources'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEventSub'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteLiveMessageGroupMessage'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeCasterScenes'], + ['threshold' => '300', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelMuteGroupUser'], + ], + ], + 'ram' => [ + 'productCode' => 'Live', + 'productName' => '视频直播', + 'ramCodes' => ['live', 'live-interaction'], + 'ramLevel' => '资源级', + 'ramConditions' => [], + 'ramActions' => [ + [ + 'apiName' => 'UpdateMixStream', + 'description' => '更新合流任务', 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '250500', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', + 'ramAction' => [ + 'action' => 'live:UpdateMixStream', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '主播放域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.aliyundoc.com', + [ + 'apiName' => 'EffectCasterUrgent', + 'description' => '切换导播台备播', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:EffectCasterUrgent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'testapp', - 'enum' => [], + ], + [ + 'apiName' => 'DeleteLiveEdgeTransfer', + 'description' => '删除直播转推配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveEdgeTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播播流流名', - 'type' => 'string', - 'required' => true, - 'example' => 'teststream', + ], + [ + 'apiName' => 'UpdateLivePackageConfig', + 'description' => '更新直播封装配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLivePackageConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'UpstreamSequence', - 'in' => 'query', - 'schema' => [ - 'description' => '推流唯一标识。通过[QueryLiveDomainMultiStreamList - 查询双流灾备在线记录](~~2871872~~)获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'teststream_***', - 'enum' => [], + ], + [ + 'apiName' => 'CreateRTCWhipStreamAddress', + 'description' => '创建RTC频道WHIP推流地址', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:CreateRTCWhipStreamAddress', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4E*****43-CB92E68F4CD8', - ], - ], + [ + 'apiName' => 'AddLiveStreamTranscode', + 'description' => '添加转码配置信息', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'LiveServiceNotFound', - 'errorMessage' => 'Your account does not open Live service yet', - ], - [ - 'errorCode' => 'CodeTaskNotExist', - 'errorMessage' => 'Task does not exist.', - ], - [ - 'errorCode' => 'CodeTaskNotStarted', - 'errorMessage' => 'Task not started, cannot operate.', + [ + 'apiName' => 'BatchDeleteLiveDomainConfigs', + 'description' => '批量删除域名配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:BatchDeleteLiveDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', + ], + [ + 'apiName' => 'DeleteLiveStreamBlock', + 'description' => '删除直播流粒度封禁', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamBlock', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4E*****43-CB92E68F4CD8\\"\\n}","type":"json"}]', - 'title' => '手动切换双流灾备主流', - ], - 'DescribeLiveDomainMultiStreamConfig' => [ - 'summary' => '查询双流灾备配置状态。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeLiveStreamRecordIndexFile', + 'description' => '查询单个录制索引文件', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamRecordIndexFile', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'DescribeLiveDrmUsageData', + 'description' => '获取直播DRM用量数据', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '250493', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDrmUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '主播放域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'pliveplay.gstv.com.cn', + [ + 'apiName' => 'DescribeLiveDomainCertificateInfo', + 'description' => '查询指定直播域名证书信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainCertificateInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F486A44F-6B35-5A96-BF2C-************', - ], - 'Switch' => [ - 'description' => '功能开关。取值:'."\n" - .'- **on**:开启'."\n" - .'- **off**:关闭', - 'type' => 'string', - 'enumValueTitles' => [ - 'off' => 'off', - 'on' => 'on', - ], - 'example' => 'on', - ], - ], + [ + 'apiName' => 'UpdateLiveAISubtitle', + 'description' => '更新字幕模板', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveAISubtitle', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'CodeGetPushbackDomainError', - 'errorMessage' => 'Unable to get the push domain name, please check the domain name mapping configuration.', + [ + 'apiName' => 'DeleteSnapshotCallbackAuth', + 'description' => '删除截图回调鉴权配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteSnapshotCallbackAuth', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', + ], + [ + 'apiName' => 'EditShowAndReplace', + 'description' => '添加剪辑任务', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:EditShowAndReplace', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F486A44F-6B35-5A96-BF2C-************\\",\\n \\"Switch\\": \\"on\\"\\n}","type":"json"}]', - 'title' => '查询双流灾备配置状态', - ], - 'QueryLiveDomainMultiStreamList' => [ - 'summary' => '查询双流灾备在线记录。', - 'methods' => [ - 'get', + [ + 'apiName' => 'GetEditingJobInfo', + 'description' => '查询剪辑任务', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetEditingJobInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'https', + [ + 'apiName' => 'ModifyCasterProgram', + 'description' => '修改导播台节目单', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyCasterProgram', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DeleteLiveSnapshotNotifyConfig', + 'description' => '删除截图回调配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveSnapshotNotifyConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '250498', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', + [ + 'apiName' => 'RollbackLiveStagingConfig', + 'description' => '将灰度环境配置回滚', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:RollbackLiveStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '主播放域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', + [ + 'apiName' => 'DescribeUpPeakPublishStreamData', + 'description' => '查询用户的每日上行并发推流数峰值', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeUpPeakPublishStreamData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。用于做过滤,精确搜索。', - 'type' => 'string', - 'required' => false, - 'example' => 'teststream', + ], + [ + 'apiName' => 'ListLiveRealtimeLogDelivery', + 'description' => '查询用户下所有实时日志投递', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListLiveRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '查询范围的起始时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - .'StartTime和EndTime时间间隔在 7 天内。', - 'type' => 'string', - 'required' => false, - 'example' => '2024-12-01T01:00:00Z', + ], + [ + 'apiName' => 'KickLiveMessageGroupUser', + 'description' => '将指定用户从群组中踢出去', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:KickLiveMessageGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。'."\n" - ."\n" - .'结束时间需大于起始时间。起止时间和结束时间,间隔不超过 7 天。'."\n" - .'默认最近 24 小时。', - 'type' => 'string', - 'required' => false, - 'example' => '2024-12-02T01:00:00Z', + ], + [ + 'apiName' => 'CreateLiveStreamMonitor', + 'description' => '创建监播室', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveStreamMonitor', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '当前页码。默认值为**1**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - 'default' => '1', + ], + [ + 'apiName' => 'ChangeLiveDomainResourceGroup', + 'description' => '直播域名资源转组', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ChangeLiveDomainResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '单页显示的数量,默认值:10。'."\n" - ."\n" - .'取值范围:1~100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', + ], + [ + 'apiName' => 'DescribeLiveSnapshotDetectPornConfig', + 'description' => '查询直播审核配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveSnapshotDetectPornConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CF60DB6A-7FD6-426E-9288-122CC1A5****', - ], - 'PageNumber' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'TotalCount' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '19', - ], - 'OnlineStreams' => [ - 'description' => '在线记录数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Domain' => [ - 'description' => '主播流域名。', - 'type' => 'string', - 'example' => 'play.***.com', - ], - 'AppName' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'example' => 'apptest', - ], - 'StreamName' => [ - 'description' => '直播流名称。', - 'type' => 'string', - 'example' => 'teststream', - ], - 'OptimalMode' => [ - 'description' => '功能开关。取值:'."\n" - .'- **on**:开启'."\n" - .'- **off**:关闭', - 'type' => 'string', - 'enumValueTitles' => [ - 'off' => 'off', - 'on' => 'on', - ], - 'example' => 'on', - ], - 'UpstreamList' => [ - 'description' => '表示所有备选的流。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'UpstreamSequence' => [ - 'description' => '推流唯一标识。', - 'type' => 'string', - 'example' => '***test_Alirewrite1', - ], - 'UpstreamIp' => [ - 'description' => '推流客户端IP。', - 'type' => 'string', - 'example' => '1.1.1.1', - ], - 'UpstreamTime' => [ - 'description' => '推流时间。', - 'type' => 'string', - 'example' => '2024-11-13T09:20:47Z', - ], - 'MasterFlag' => [ - 'description' => '主备标记。'."\n" - .'> 用于标记当前合流分发的是哪个流。', - 'type' => 'boolean', - 'enumValueTitles' => [ - 'true' => 'true', - 'false' => 'false', - ], - 'example' => 'false', - ], - ], - ], - ], - 'ChangeLogs' => [ - 'description' => '切流记录。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ChangeTime' => [ - 'description' => '切流时间。', - 'type' => 'string', - 'example' => '2024-11-13T09:20:47Z', - ], - 'ChangeReason' => [ - 'description' => '切流原因'."\n" - .'* 用户手动切流 merge cut manually'."\n" - .'* 主流没有数据 master stream no data'."\n" - .'* 主流质量劣化 master stream low quality。', - 'type' => 'string', - 'example' => 'merge cut manually', - ], - 'MasterUpstream' => [ - 'description' => '切流后实际使用的流。', - 'type' => 'string', - 'example' => 'rtmp://118.178.168.35:1936/wwMultitest/pull.livetest2.aliyunlive.com_wwMultitest428_AliRewrite_2?vhost=pull.livetest2.aliyunlive.com&live_rtmp_test=on', - ], - 'UpstreamSequence' => [ - 'description' => '切流后的流标识。', - 'type' => 'string', - 'example' => '***test_AliRewrite_2', - ], - 'UpstreamIp' => [ - 'description' => '切流后使用的ip。', - 'type' => 'string', - 'example' => '1.1.1.1', - ], - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'DescribeCasterStreamUrl', + 'description' => '查询导播台流信息列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterStreamUrl', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'InvalidParam.CodeIllegalDuration', - 'errorMessage' => '%s.', + [ + 'apiName' => 'UpdateLiveRecordVodConfig', + 'description' => '更新直播录制转点播配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveRecordVodConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', + ], + [ + 'apiName' => 'ListMessageGroupUser', + 'description' => '查询消息组成员', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListMessageGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CF60DB6A-7FD6-426E-9288-122CC1A5****\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"TotalCount\\": 19,\\n \\"OnlineStreams\\": [\\n {\\n \\"Domain\\": \\"play.***.com\\",\\n \\"AppName\\": \\"apptest\\",\\n \\"StreamName\\": \\"teststream\\",\\n \\"OptimalMode\\": \\"on\\",\\n \\"UpstreamList\\": [\\n {\\n \\"UpstreamSequence\\": \\"***test_Alirewrite1\\",\\n \\"UpstreamIp\\": \\"1.1.1.1\\",\\n \\"UpstreamTime\\": \\"2024-11-13T09:20:47Z\\",\\n \\"MasterFlag\\": false\\n }\\n ],\\n \\"ChangeLogs\\": [\\n {\\n \\"ChangeTime\\": \\"2024-11-13T09:20:47Z\\",\\n \\"ChangeReason\\": \\"merge cut manually\\",\\n \\"MasterUpstream\\": \\"rtmp://118.178.168.35:1936/wwMultitest/pull.livetest2.aliyunlive.com_wwMultitest428_AliRewrite_2?vhost=pull.livetest2.aliyunlive.com&live_rtmp_test=on\\",\\n \\"UpstreamSequence\\": \\"***test_AliRewrite_2\\",\\n \\"UpstreamIp\\": \\"1.1.1.1\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', - 'title' => '查询双流灾备在线记录', - ], - 'DescribeLiveDomainStagingConfig' => [ - 'summary' => '调用DescribeLiveDomainStagingConfig查询灰度环境配置信息。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DescribeLiveDomainDetail', + 'description' => '获取指定直播域名配置的基本信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DeleteLiveAIProduceRules', + 'description' => '删除字幕规则', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAIProduceRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'DescribeLiveCenterTransfer', + 'description' => '获取直播中心转推', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:DescribeLiveCenterTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DescribeLiveDomainSnapshotData', + 'description' => '查询直播域名截图张数数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainSnapshotData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'developer.aliyundoc.com', + ], + [ + 'apiName' => 'DescribeRtcMPUEventSub', + 'description' => '查询混流转推事件订阅', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeRtcMPUEventSub', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'FunctionNames', - 'in' => 'query', - 'schema' => [ - 'description' => '功能列表名称,多个用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'aliauth', + ], + [ + 'apiName' => 'DescribeMixStreamList', + 'description' => '查询合流任务列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeMixStreamList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C80705BF-0F76-41FA-BAD1-5B59296A4E59', - ], - 'DomainConfigs' => [ - 'description' => '域名配置。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '配置状态,取值:'."\n" - .'- **success**:成功。'."\n" - .'- **testing**:配置校验中。'."\n" - .'- **failed**:失败。'."\n" - .'- **configuring**:配置中。', - 'type' => 'string', - 'example' => 'success', - ], - 'ConfigId' => [ - 'description' => '配置ID。', - 'type' => 'string', - 'example' => '6295', - ], - 'FunctionName' => [ - 'description' => '功能名称。', - 'type' => 'string', - 'example' => 'aliauth', - ], - 'FunctionArgs' => [ - 'description' => '功能配置。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ArgName' => [ - 'description' => '配置名称。', - 'type' => 'string', - 'example' => 'auth_type', - ], - 'ArgValue' => [ - 'description' => '配置的值。', - 'type' => 'string', - 'example' => 'req_auth', - ], - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'UpdateLiveAudioAuditNotifyConfig', + 'description' => '更新直播语音审核回调配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveAudioAuditNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', + [ + 'apiName' => 'DeleteLivePullStreamInfoConfig', + 'description' => '删除直播拉流配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLivePullStreamInfoConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C80705BF-0F76-41FA-BAD1-5B59296A4E59\\",\\n \\"DomainConfigs\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"ConfigId\\": \\"6295\\",\\n \\"FunctionName\\": \\"aliauth\\",\\n \\"FunctionArgs\\": [\\n {\\n \\"ArgName\\": \\"auth_type\\",\\n \\"ArgValue\\": \\"req_auth\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n\\nC80705BF-0F76-41FA-BAD1-5B59296A4E59\\n\\n success\\n aliauth\\n 6295\\n \\n req_auth\\n auth_type\\n \\n\\n","errorExample":""}]', - 'title' => '查询灰度环境配置信息', - 'description' => '## 使用说明'."\n" - .'先获取加速域名,再调用本接口查询灰度环境配置信息。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'PublishLiveStagingConfigToProduction' => [ - 'summary' => '调用PublishLiveStagingConfigToProduction将灰度配置转为生产配置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeLiveGrtnDuration', + 'description' => '查询连麦通话时长用量数据', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveGrtnDuration', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + [ + 'apiName' => 'DescribeLiveAIProduceRules', + 'description' => '查询字幕规则', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveAIProduceRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DeleteLiveStreamMonitor', + 'description' => '删除监播室', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamMonitor', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'developer.aliyundoc.com', + ], + [ + 'apiName' => 'DescribeLiveMessageGroupBand', + 'description' => '查询用户禁言状态信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveMessageGroupBand', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], - [ - 'name' => 'FunctionName', - 'in' => 'query', - 'schema' => [ - 'description' => '功能名称。获取功能名称,请参见[DescribeLiveDomainStagingConfig](~~297374~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'aliauth', + ], + [ + 'apiName' => 'AddLiveSnapshotDetectPornConfig', + 'description' => '按照域名和App级别配置直播流审核服务', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveSnapshotDetectPornConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - ], + [ + 'apiName' => 'ModifyLiveDomainSchdmByProperty', + 'description' => '修改直播域名加速区域', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveDomainSchdmByProperty', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'StagingConfig.Failed', - 'errorMessage' => 'The rules for the staging environment are being configured. Try again later.', + [ + 'apiName' => 'DeleteLiveDelayConfig', + 'description' => '删除直播延播配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - 404 => [ - [ - 'errorCode' => 'StagingConfig.NotFound', - 'errorMessage' => 'The staging configuration does not exist.', + ], + [ + 'apiName' => 'DisableLiveRealtimeLogDelivery', + 'description' => '暂停域名实时日志投递', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:DisableLiveRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n04F0F334-1335-436C-A1D7-6C044FE73368\\r\\n","errorExample":""}]', - 'title' => '将灰度配置转为生产配置', - 'description' => '## 使用说明'."\n" - .'先通过[DescribeLiveDomainStagingConfig接口](~~297374~~)获取功能名称,再调用本接口将灰度配置转为生产配置。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'RollbackLiveStagingConfig' => [ - 'summary' => '调用RollbackLiveStagingConfig将灰度环境配置回滚。', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'RealTimeRecordCommand', + 'description' => '实时录制指令', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:RealTimeRecordCommand', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ModifyCasterEpisode', + 'description' => '修改导播台节目配置,节目类型不允许修改', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyCasterEpisode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeLiveDomainLimit', + 'description' => '查询域名推流数量限制和转码数量限制', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainLimit', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ + [ + 'apiName' => 'SetLiveStreamPreloadTasks', + 'description' => '设置直播预热任务', 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:SetLiveStreamPreloadTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DescribeCasters', + 'description' => '查询导播台列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasters', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'developer.aliyundoc.com', + ], + [ + 'apiName' => 'AddPlaylistItems', + 'description' => '添加播放列表项', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddPlaylistItems', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - 'name' => 'FunctionName', - 'in' => 'query', - 'schema' => [ - 'description' => '功能名称。获取功能名称,请参见[DescribeLiveDomainStagingConfig](~~297374~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'aliauth', + ], + [ + 'apiName' => 'EditPlaylist', + 'description' => '编辑播放列表', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:EditPlaylist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - ], + [ + 'apiName' => 'DescribeLivePrivateLineAvailGA', + 'description' => '查询全球加速配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePrivateLineAvailGA', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'StagingConfig.NotFound', - 'errorMessage' => 'The staging configuration does not exist.', + [ + 'apiName' => 'DeleteLiveStreamsNotifyUrlConfig', + 'description' => '删除直播推流回调配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamsNotifyUrlConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n04F0F334-1335-436C-A1D7-6C044FE73368\\r\\n","errorExample":""}]', - 'title' => '将灰度环境配置回滚', - 'description' => '## 使用说明'."\n" - .'先通过[DescribeLiveDomainStagingConfig接口](~~297374~~)获取功能名称,再调用本接口将灰度环境配置回滚。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'SetLiveDomainStagingConfig' => [ - 'summary' => '调用SetLiveDomainStagingConfig设置或修改灰度环境下的域名配置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteLiveAudioAuditConfig', + 'description' => '删除直播语音审核配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAudioAuditConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'GetAllCustomTemplates', + 'description' => '获取全量自定义合流模板', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetAllCustomTemplates', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'write', - 'systemTags' => [ + [ + 'apiName' => 'SetLiveDomainStagingConfig', + 'description' => '设置或修改灰度环境下的域名配置', 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:SetLiveDomainStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'StartRtcCloudTranscode', + 'description' => '创建云端转码任务', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:StartRtcCloudTranscode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'developer.aliyundoc.com', + ], + [ + 'apiName' => 'DescribeCasterChannels', + 'description' => '查询导播台通道信息列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterChannels', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - 'name' => 'Functions', - 'in' => 'query', - 'schema' => [ - 'description' => '功能列表,仅在修改时需要指定ConfigId,详情请参见**Functions格式说明**。', - 'type' => 'string', - 'required' => true, - 'example' => '[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"xxx"}],"functionName":"edge_function"}]', + ], + [ + 'apiName' => 'DeleteCasterSceneConfig', + 'description' => '清除导播台的指定场景的配置信息', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterSceneConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - ], + [ + 'apiName' => 'DescribeLiveDetectPornData', + 'description' => '查询直播审核用量数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDetectPornData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidFunctionName.ValueNotSupported', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidArgName.ValueNotSupported', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidArgValue.Malformed', - 'errorMessage' => '%s', + [ + 'apiName' => 'DescribeRTSNativeSDKFirstFrameCost', + 'description' => '查询首帧延时组成', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeRTSNativeSDKFirstFrameCost', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], - [ - 'errorCode' => 'InvalidRule.Malformed', - 'errorMessage' => '%s', + ], + ], + [ + 'apiName' => 'ListPlaylist', + 'description' => '获取播放列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListPlaylist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], - [ - 'errorCode' => 'ConfigurationConflicts', - 'errorMessage' => 'The staging environment has a configuration in effect. You cannot modify the production environment configuration.', + ], + ], + [ + 'apiName' => 'DeleteRtcAsrTask', + 'description' => '删除实时语音转文字或翻译任务', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteRtcAsrTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], - [ - 'errorCode' => 'InvalidDomain.BelongToConfigGroup', - 'errorMessage' => 'The domain is bound to a configuration group. Modify the domain in the configuration group.', + ], + ], + [ + 'apiName' => 'AddLiveAISubtitle', + 'description' => '添加直播字幕模板', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveAISubtitle', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n04F0F334-1335-436C-A1D7-6C044FE73368\\r\\n","errorExample":""}]', - 'title' => '设置或修改灰度环境下的域名配置', - 'description' => '## 使用说明'."\n" - .'先获取加速域名,再调用本接口设置或修改灰度环境下的域名配置。详情请参见下文**Functions格式说明**。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", - 'requestParamsDescription' => '## Functions格式说明'."\n" - ."\n" - .'- 设置配置,示例如下所示:'."\n" - .'`[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"xxx"}],"functionName":"edge_function"}]`'."\n" - ."\n" - .'- 修改配置,可通过ConfigId(Long类型)指定要修改的配置项,示例如下所示:'."\n" - .'`[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"yyy"}],"ConfigId":123456,"functionName":"edge_function"}]`'."\n" - ."\n" - .'功能说明:所有参数值均按照字符串类型处理。'."\n" - .'|功能名称|必选参数|可选参数|'."\n" - .'|---|---|---|'."\n" - .'|edge_function:边缘函数。 |- **rule**:DSL规则。
- **pri**:优先级。
- **enable**:本条规则是否生效,取值:on或off。 |- **name**:规则名称。
- **pos**:规则执行位置。
- **brk**:命中本条规则后,当前执行位置剩余规则均跳过。
- **option**:option管控。
- **grammar**:grammar管控,取值:空、es2或js。
- **jsmode**:js域名白单管控,取值:redirect或bypass。 |', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteLiveSpecificStagingConfig' => [ - 'summary' => '调用 DeleteLiveSpecificStagingConfig 删除灰度环境下的域名配置。', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'DescribeRTSNativeSDKPlayTime', + 'description' => '查询播放时长', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeRTSNativeSDKPlayTime', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteCasterEpisode', + 'description' => '删除导播台节目', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterEpisode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ListRTCLiveRooms', + 'description' => '查询ARTC在线频道列表', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:ListRTCLiveRooms', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'StopRtcCloudRecording', + 'description' => '停止Rtc云端录制任务', 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:StopRtcCloudRecording', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'developer.aliyundoc.com', + [ + 'apiName' => 'CreateEventSub', + 'description' => '创建订阅房间消息回调', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:CreateEventSub', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], - [ - 'name' => 'ConfigId', - 'in' => 'query', - 'schema' => [ - 'description' => '配置ID,多个用英文逗号(,)分隔。获取配置ID,请参见[DescribeLiveDomainStagingConfig](~~2848231~~)。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '6295', + ], + [ + 'apiName' => 'ListRtcMPUTaskDetail', + 'description' => '查询混流转推任务参数明细', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListRtcMPUTaskDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - ], + [ + 'apiName' => 'StartPlaylist', + 'description' => '开始播放列表项', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StartPlaylist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', + [ + 'apiName' => 'DeletePlaylistItems', + 'description' => '删除播放列表项目', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeletePlaylistItems', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n04F0F334-1335-436C-A1D7-6C044FE73368\\r\\n","errorExample":""}]', - 'title' => '删除灰度环境下的域名配置', - 'description' => '## 使用说明'."\n" - .'先通过[DescribeLiveDomainStagingConfig接口](~~297374~~)获得配置ID,再调用本接口删除灰度环境下的域名配置。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为20次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveIpInfo' => [ - 'summary' => '调用DescribeLiveIpInfo验证指定IP是否为CDN节点的IP地址。', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'RestartCaster', + 'description' => '重启导播台', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:RestartCaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteLiveMessageGroupMessage', + 'description' => '删除(撤回)某条群组消息', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveMessageGroupMessage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'QuerySnapshotCallbackAuth', + 'description' => '查询截图回调鉴权配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:QuerySnapshotCallbackAuth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'DescribeStudioLayouts', + 'description' => '查询虚拟演播厅布局', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '107056', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:DescribeStudioLayouts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DeleteCaster', + 'description' => '删除导播台', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - 'name' => 'IP', - 'in' => 'query', - 'schema' => [ - 'description' => '指定IP地址,不支持批量验证。', - 'type' => 'string', - 'required' => true, - 'example' => '192.168.0.1', + ], + [ + 'apiName' => 'ListPlaylistItems', + 'description' => '列出播放列表项', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListPlaylistItems', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'IspEname' => [ - 'description' => '所属运营商英文名称。', - 'type' => 'string', - 'example' => 'telecom', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '1B1D0EE7-9559-489D-BC4E-279495EB8FB8', - ], - 'RegionEname' => [ - 'description' => '所属地域英文名称。', - 'type' => 'string', - 'example' => 'China-Guizhou-guiyang', - ], - 'ISP' => [ - 'description' => '所属运营商中文名称。', - 'type' => 'string', - 'example' => '电信', - ], - 'Region' => [ - 'description' => '所属地域中文名称。', - 'type' => 'string', - 'example' => '中国-贵州省-贵阳市', - ], - ], + [ + 'apiName' => 'DeleteEdgeTranscodeJob', + 'description' => '删除边缘转码任务', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'CdnIP.NotFound', - 'errorMessage' => 'Cannot find this ip in alicdn', + [ + 'apiName' => 'SetCasterConfig', + 'description' => '设置导播台配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetCasterConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"IspEname\\": \\"telecom\\",\\n \\"RequestId\\": \\"1B1D0EE7-9559-489D-BC4E-279495EB8FB8\\",\\n \\"RegionEname\\": \\"China-Guizhou-guiyang\\",\\n \\"ISP\\": \\"电信\\",\\n \\"Region\\": \\"中国-贵州省-贵阳市\\"\\n}","errorExample":""},{"type":"xml","example":"\\n China-Guizhou-guiyang\\n 中国-贵州省-贵阳市\\n telecom\\n 1B1D0EE7-9559-489D-BC4E-279495EB8FB8\\n 电信\\n","errorExample":""}]', - 'title' => '获取直播IP信息', - 'description' => '### QPS限制'."\n" - .'本接口的单用户QPS限制为30次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveStreamAuthChecking' => [ - 'summary' => '查询当前在线流的鉴权。', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'AddLiveRecordNotifyConfig', + 'description' => '添加域名级别录制回调配置', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveRecordNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'HotLiveRtcStream', + 'description' => '设置RTC流预热', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:HotLiveRtcStream', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ListLiveRealtimeLogDeliveryDomains', + 'description' => '查询实时日志投递服务下所有直播域名', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListLiveRealtimeLogDeliveryDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + [ + 'apiName' => 'DeleteCasterProgram', + 'description' => '删除导播台节目单', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterProgram', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DescribeLiveTagResources', + 'description' => '查询Live资源对应的标签', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播推流域名或播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', + ], + [ + 'apiName' => 'AddLiveCenterTransfer', + 'description' => '添加直播中心转推配置', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveCenterTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'Url', - 'in' => 'query', - 'schema' => [ - 'description' => '完整的推流地址或播放地址。您可用[地址生成器](~~197400~~)生成。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://example.com/live/test.flv?auth_key=1664248******', + ], + [ + 'apiName' => 'GetEdgeTranscodeJob', + 'description' => '查询边缘转码任务详情', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'description' => '鉴权不通过的错误信息。', - 'type' => 'string', - 'example' => 'INVALID AUTH_KEY', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16F08B4E-14FD-5D72-AB2F-BAFA4C4D57F1', - ], - 'Status' => [ - 'description' => '鉴权是否有效。'."\n" - .'- pass:有效。'."\n" - .'- false:无效。', - 'type' => 'string', - 'example' => 'pass', - ], - ], + [ + 'apiName' => 'AddCasterProgram', + 'description' => '添加导播台节目单', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterProgram', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', + [ + 'apiName' => 'DescribeLiveDomainRealTimeTrafficData', + 'description' => '获取加速域名的1分钟流量监控数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainRealTimeTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + [ + 'apiName' => 'DescribeLiveDomainBpsDataByLayer', + 'description' => '按协议分类查询域名带宽及流量数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainBpsDataByLayer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Description\\": \\"INVALID AUTH_KEY\\",\\n \\"RequestId\\": \\"16F08B4E-14FD-5D72-AB2F-BAFA4C4D57F1\\",\\n \\"Status\\": \\"pass\\"\\n}","errorExample":""},{"type":"xml","example":"\\n pass\\n \\n 16F08B4E-14FD-5D72-AB2F-BAFA4C4D57F1\\n","errorExample":""}]', - 'title' => '查询流鉴权', - 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'responseParamsDescription' => '### 鉴权不通过原因说明'."\n" - .'| 名称 | 描述 |'."\n" - .'|---------------|--------|'."\n" - .'| INVALID AUTH_KEY| 鉴权URL的参数auth_key无效。|'."\n" - .'| INVALID TIMESTAMP| 鉴权URL的时间无效。|'."\n" - .'|INVALID ALIAUTH| 配置的鉴权方式无效。|'."\n" - .'| INVALID MD5HASH| 通过MD5算法计算出的字符串无效。|'."\n", - ], - 'TagLiveResources' => [ - 'summary' => '调用TagLiveResources添加Live资源标签。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DeleteLiveMessageGroup', + 'description' => '删除直播互动群组', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '107259', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + [ + 'apiName' => 'AddShowIntoShowList', + 'description' => '添加一个节目到节目单', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddShowIntoShowList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DescribeLiveDomainRecordUsageData', + 'description' => '查询直播录制路数、转封装用量', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainRecordUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '资源ID。取值:直播域名。'."\n" - .'N的取值范围为**1~50**。', - 'type' => 'array', - 'items' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - 'required' => true, - 'example' => 'example.com', - 'maxItems' => 51, + ], + [ + 'apiName' => 'DescribeLiveDetectNotifyConfig', + 'description' => '查询审核回调URL', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDetectNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。N的取值范围为**1~20**。', - 'type' => 'string', - 'required' => true, - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。N的取值范围为**1~20**。', - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 21, + ], + [ + 'apiName' => 'CopyCasterSceneConfig', + 'description' => '复制导播台场景配置', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CopyCasterSceneConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => '资源类型。固定值:**DOMAIN**。', - 'type' => 'string', - 'required' => true, - 'example' => 'DOMAIN', - 'enum' => [ - 'DOMAIN', - 'domain', - ], + ], + [ + 'apiName' => 'DescribeLiveStreamDetailFrameRateAndBitRateData', + 'description' => '查询RTMP协议直播流的详细音视频帧率码率', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamDetailFrameRateAndBitRateData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', - ], - ], + [ + 'apiName' => 'GetEdgeTranscodeTemplate', + 'description' => '查询边缘转码模板详情', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetEdgeTranscodeTemplate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 401 => [ - [ - 'errorCode' => 'InvalidResourceType', - 'errorMessage' => 'The resourceType is invalid.', - ], - [ - 'errorCode' => 'QuotaExceed.TagsPerResource', - 'errorMessage' => 'The maximum number of tags for each resource is exceeded.', + [ + 'apiName' => 'AddLivePackageConfig', + 'description' => '添加直播封装配置', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLivePackageConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag key is invalid, %s.', + ], + ], + [ + 'apiName' => 'SetLiveDomainCertificate', + 'description' => '设置域名证书', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveDomainCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - 403 => [ - [ - 'errorCode' => 'Duplicate.TagKey', - 'errorMessage' => 'The tags should not contain duplicate keys.', + ], + [ + 'apiName' => 'SendLiveMessageUser', + 'description' => '发送消息给指定用户', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:SendLiveMessageUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], - [ - 'errorCode' => 'InvalidResourcesCount', - 'errorMessage' => 'The count of resources is invalid, %s.', + ], + ], + [ + 'apiName' => 'DeleteMessageApp', + 'description' => '删除互动消息应用(旧版)', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\r\\n","errorExample":""}]', - 'title' => '添加Live资源标签', - 'description' => ' 单用户调用频率为100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '### 特殊错误码'."\n" - .'|错误代码 |描述 |Http状态码 |语义 |'."\n" - .'|------------|--------|---------|------|'."\n" - .'|InvalidRegionId.Malformed |The specified RegionId is invalid. |400 |RegionId无效|'."\n" - .'|Resource.NotExist |Resources doesn\'t exist. |400 |Resource不存在|'."\n" - .'|TagKeyIsInvalid |The specified TagKey is invalid. |400 |TagKey格式错误|'."\n" - .'|TooManyTags |Too many tags. |400 |Tag超限|'."\n" - .'|TagValueIsInvalid |The specified TagValue is invalid. |400 |TagValue格式错误|'."\n" - .'|TagKeyRepeated |The specified TagKey is duplicated. |400 |TagKey存在重复值|'."\n" - .'|TagIsInvalid |The number of Tag exceeds 20. |400 |Tag不能超过20|'."\n" - .'|ResourceIdIsInvalid |The number of ResourceId exceeds 50. |400 |ResourceId不能超过50个|'."\n" - .'|SystemTagIsInvalid |The number of System Tag exceeds 50. |400 |系统标签累计不能超过50个|'."\n" - .'|CustomTagIsInvalid |The number of Custom Tag exceeds 20. |400 |用户标签累计不能超过20个|', - ], - 'UnTagLiveResources' => [ - 'summary' => '调用UnTagLiveResources删除Live资源标签。', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'UpdateLiveSnapshotDetectPornConfig', + 'description' => '更新直播审核配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveSnapshotDetectPornConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'UpdateLiveAppRecordConfig', + 'description' => '更新直播录制', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveAppRecordConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'AddLiveAppRecordConfig', + 'description' => '添加录制配置', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveAppRecordConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ + [ + 'apiName' => 'StopCasterScene', + 'description' => '停止导播台场景', 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '107264', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:StopCasterScene', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DeleteLiveStreamTranscode', + 'description' => '删除转码配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '资源ID。直播域名。'."\n" - .'N的取值范围为1~50。', - 'type' => 'array', - 'items' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - 'required' => true, - 'example' => 'example.com', - 'maxItems' => 51, + ], + [ + 'apiName' => 'UpdateLiveStreamWatermarkRule', + 'description' => '更新水印规则', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveStreamWatermarkRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'TagKey', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签键。N的取值范围为**1~20**。', - 'type' => 'array', - 'items' => [ - 'description' => '标签键。', - 'type' => 'string', - 'required' => false, - 'example' => 'testKey', - ], - 'required' => false, - 'example' => 'env', - 'maxItems' => 21, + ], + [ + 'apiName' => 'AddLiveAudioAuditConfig', + 'description' => '添加直播语音审核配置', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveAudioAuditConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => '资源类型。枚举类型。', - 'type' => 'string', - 'required' => true, - 'example' => 'DOMAIN', - 'enum' => [ - 'DOMAIN', - 'domain', - 'Domain', - ], + ], + [ + 'apiName' => 'SetSnapshotCallbackAuth', + 'description' => '设置截图回调鉴权配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetSnapshotCallbackAuth', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'All', - 'in' => 'query', - 'schema' => [ - 'description' => '删除所有标签。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'默认取值为**false**。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + ], + [ + 'apiName' => 'DescribeLiveRecordConfig', + 'description' => '查询域名下所有App录制配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRecordConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508', - ], - ], + [ + 'apiName' => 'DescribeRTSNativeSDKPlayFailStatus', + 'description' => '查询播放失败的原因', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeRTSNativeSDKPlayFailStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 401 => [ - [ - 'errorCode' => 'InvalidResourceType', - 'errorMessage' => 'The resourceType is invalid.', + [ + 'apiName' => 'DescribeRtcCloudTranscode', + 'description' => '查询云端转码任务', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeRtcCloudTranscode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'Duplicate.TagKey', - 'errorMessage' => 'The tags should not contain duplicate keys.', - ], - [ - 'errorCode' => 'InvalidResourcesCount', - 'errorMessage' => 'The count of resources is invalid, %s.', + ], + [ + 'apiName' => 'UpdateMessageGroup', + 'description' => '更新消息组(旧版)', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76508\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 97C68796-EB7F-4D41-9D5B-12B909D76508\\r\\n","errorExample":""}]', - 'title' => '删除Live资源标签', - 'description' => '单用户调用频率为100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => '### 特殊错误码'."\n" - .'|错误代码 |描述 |Http 状态码 |语义 |'."\n" - .'|------------|--------|---------|------|'."\n" - .'|TagIsInvalid |The number of Tag exceeds 20. |400 |Tag不能超过20|'."\n" - .'|ResourceIdIsInvalid |The number of ResourceId exceeds 50. |400 |ResourceId不能超过50个|', - ], - 'ListLiveTagResources' => [ - 'summary' => '查询符合条件的资源和标签。', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'DeleteCustomTemplate', + 'description' => '删除合流自定义模板', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCustomTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'UpdateCasterResourceGroup', + 'description' => '更新导播台所在资源组', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:UpdateCasterResourceGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ModifyLiveMessageGroup', + 'description' => '修改直播互动群组信息', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'DescribeLiveUserDomains', + 'description' => '查询用户名下所有的直播域名', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:DescribeLiveUserDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'BatchSetLiveDomainConfigs', + 'description' => '批量配置域名', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:BatchSetLiveDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '资源ID列表。', - 'type' => 'array', - 'items' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'my-resource-id', - ], - 'required' => false, - 'maxItems' => 51, + ], + [ + 'apiName' => 'StopPlaylist', + 'description' => '停止节目单', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopPlaylist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签信息。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '资源的标签键。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签键对应的标签值。', - 'type' => 'string', - 'required' => false, - 'example' => 'dev', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, + ], + [ + 'apiName' => 'MuteAllGroupUser', + 'description' => '禁言消息组全员(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:MuteAllGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'TagOwnerUid', - 'in' => 'query', - 'schema' => [ - 'description' => '标签所属阿里云账号ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'xxx1234xxx', + ], + [ + 'apiName' => 'PlayChoosenShow', + 'description' => '手动切换节目', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:PlayChoosenShow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - 'name' => 'TagOwnerBid', - 'in' => 'query', - 'schema' => [ - 'description' => '标签拥有者Bid。', - 'type' => 'string', - 'required' => false, - 'example' => '26842', + ], + [ + 'apiName' => 'StartLiveDomain', + 'description' => '启用直播域名', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StartLiveDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => '资源类型。', - 'type' => 'string', - 'required' => true, - 'example' => 'DOMAIN', - 'enum' => [ - 'DOMAIN', - ], + ], + [ + 'apiName' => 'ListLiveMessageApps', + 'description' => '查询直播互动应用列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListLiveMessageApps', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'description' => '下一个查询开始的Token。', - 'type' => 'string', - 'required' => false, - 'example' => 'q2j8bLtBdhONLRkgaPBa6A==', + ], + [ + 'apiName' => 'DescribeLiveAudioAuditNotifyConfig', + 'description' => '查询直播语音审核回调配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveAudioAuditNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'NextToken' => [ - 'description' => '下一个查询开始Token。', - 'type' => 'string', - 'example' => '6a5e8f4fae643e70d1a2ff1827cd91bd', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], - 'TagResources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'TagResource' => [ - 'description' => '标签资源列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签资源。', - 'type' => 'object', - 'properties' => [ - 'ResourceId' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'example' => 'my-resource-id', - ], - 'ResourceType' => [ - 'description' => '资源类型。', - 'type' => 'string', - 'example' => 'DOMAIN', - ], - 'TagKey' => [ - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'env', - ], - 'TagValue' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'dev', - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'SetLiveStreamDelayConfig', + 'description' => '配置直播延迟', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveStreamDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 401 => [ - [ - 'errorCode' => 'InvalidResourceType', - 'errorMessage' => 'The resourceType is invalid.', + [ + 'apiName' => 'DescribeLivePullToPushList', + 'description' => '模糊查询拉转推任务', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePullToPushList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The tag key is invalid, %s.', + ], + ], + [ + 'apiName' => 'CreateMixStream', + 'description' => '创建合流任务', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateMixStream', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - 403 => [ - [ - 'errorCode' => 'InvalidResourcesCount', - 'errorMessage' => 'The count of resources is invalid, %s.', + ], + [ + 'apiName' => 'AddCustomLiveStreamTranscode', + 'description' => '添加自定义转码配置信息', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCustomLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], - [ - 'errorCode' => 'Duplicate.TagKey', - 'errorMessage' => 'The tags should not contain duplicate keys.', + ], + ], + [ + 'apiName' => 'VerifyLiveDomainOwner', + 'description' => '验证直播域名拥有者', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:VerifyLiveDomainOwner', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"6a5e8f4fae643e70d1a2ff1827cd91bd\\",\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TagResources\\": {\\n \\"TagResource\\": [\\n {\\n \\"ResourceId\\": \\"my-resource-id\\",\\n \\"ResourceType\\": \\"DOMAIN\\",\\n \\"TagKey\\": \\"env\\",\\n \\"TagValue\\": \\"dev\\"\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '查询符合条件的资源和标签', - ], - 'DescribeLiveTagResources' => [ - 'summary' => '用于查询Live资源对应的标签。', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'ModifyCasterComponent', + 'description' => '修改导播台组件', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyCasterComponent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'GetMessageApp', + 'description' => '获取指定互动消息应用详情(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'UpdateCasterSceneAudio', + 'description' => '更新场景音频配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateCasterSceneAudio', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + [ + 'apiName' => 'StopRtcAsrTask', + 'description' => '停止实时语音转文字或翻译', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopRtcAsrTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'EffectCasterVideoResource', + 'description' => '更新导播台备播片', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:EffectCasterVideoResource', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '资源ID。直播域名。N的取值范围为**1~50**。', - 'type' => 'array', - 'items' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - 'required' => true, - 'example' => 'example.com', - 'maxItems' => 50, + ], + [ + 'apiName' => 'DescribeChannelUsers', + 'description' => '查询频道内在线用户列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:DescribeChannelUsers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签信息。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。N的取值范围为**1~20**。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。N的取值范围为**1~20**。', - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, + ], + [ + 'apiName' => 'ListLiveMessageGroupUsers', + 'description' => '查询群组用户列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListLiveMessageGroupUsers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => '资源类型。', - 'type' => 'string', - 'required' => true, - 'enumValueTitles' => [ - 'DOMAIN' => 'DOMAIN', - ], - 'example' => 'DOMAIN', + ], + [ + 'apiName' => 'StopLiveDomain', + 'description' => '停用直播域名', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopLiveDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '****41F1-04A5-496F-8C8D-634BDBE6****', - ], - 'TagResources' => [ - 'description' => '标签资源列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签资源。', - 'type' => 'object', - 'properties' => [ - 'ResourceId' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Tag' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签信息。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'product', - ], - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'DescribeLiveDelayConfig', + 'description' => '查询直播延播配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"****41F1-04A5-496F-8C8D-634BDBE6****\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"example.com\\",\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\n \\n example.com\\n \\n product\\n env\\n \\n \\n","errorExample":""}]', - 'title' => '查询Live资源对应的标签', - 'description' => '单用户调用频率:10次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddLiveCenterTransfer' => [ - 'summary' => '添加直播中心转推配置。', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'DeleteLiveRealtimeLogDelivery', + 'description' => '删除域名实时日志推送', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CancelMuteGroupUser', + 'description' => '批量取消消息组内禁言成员(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:CancelMuteGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeLiveStreamMonitorList', + 'description' => '查询监播室列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamMonitorList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ - 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + [ + 'apiName' => 'DescribeToutiaoLivePublish', + 'description' => '头条推流查询接口', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeToutiaoLivePublish', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DeleteLiveSpecificStagingConfig', + 'description' => '删除灰度环境下的域名配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveSpecificStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + ], + [ + 'apiName' => 'DeleteLiveAudioAuditNotifyConfig', + 'description' => '删除直播语音审核回调配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAudioAuditNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流应用名称。输入的AppName必须与需要转推的直播流AppName保持一致,方可生效。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'testapp', + ], + [ + 'apiName' => 'DescribeLiveStreamAuthChecking', + 'description' => '查询流鉴权', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamAuthChecking', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'teststream', + ], + [ + 'apiName' => 'DescribeLiveAIStudio', + 'description' => '查询虚拟演播模板', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveAIStudio', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DstUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '转推的第三方直播地址,最多支持添加1个地址。'."\n" - ."\n" - .'>目标地址协议必须和转推的直播流协议一致,目前仅支持RTMP和SRT协议的转推地址。', - 'type' => 'string', - 'required' => true, - 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2', + ], + [ + 'apiName' => 'UnTagLiveResources', + 'description' => '删除Live资源标签', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UnTagLiveResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'TransferArgs', - 'in' => 'query', - 'schema' => [ - 'description' => '转推有效时间。取值:'."\n" - ."\n" - .'- **always**:永久生效。'."\n" - ."\n" - .'- **time**:指定时间内有效。'."\n" - ."\n" - .'>取值为**time**时,**StartTime**和**EndTime**必填。', - 'type' => 'string', - 'required' => true, - 'example' => 'always', - 'enum' => [ - 'always', - 'time', - ], + ], + [ + 'apiName' => 'DeleteLiveCenterTransfer', + 'description' => '删除直播中心转推', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveCenterTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => "\n" - .'转推开始时间。'."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-21T10:00:00Z', + ], + [ + 'apiName' => 'DeleteLiveAISubtitle', + 'description' => '删除字幕模板', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAISubtitle', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '转推结束时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'>结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-22T08:00:00Z', + ], + [ + 'apiName' => 'AddLiveAudioAuditNotifyConfig', + 'description' => '添加音频审核回调信息', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveAudioAuditNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7908F2FF-44F8-120F-9FD6-85AE4B6C19EC', - ], - ], + [ + 'apiName' => 'DescribeLiveCertificateDetail', + 'description' => '查询证书信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveCertificateDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', + [ + 'apiName' => 'ModifyLiveRealtimeLogDelivery', + 'description' => '更改域名实时日志投递', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], - [ - 'errorCode' => 'CenterTransfersStreamOverLimit', - 'errorMessage' => 'CenterTransfers stream is over limit for this domainName.', + ], + ], + [ + 'apiName' => 'DescribeLiveRtcRecordUsageData', + 'description' => '查询实时音视频云端录制用量', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRtcRecordUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'ConfigAlreadyExists', - 'errorMessage' => 'Config has already exist.', + ], + ], + [ + 'apiName' => 'DescribeLiveDomainRealTimeBpsData', + 'description' => '获取域名1分钟粒度带宽数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainRealTimeBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'CodeIllegalDuration', - 'errorMessage' => 'param end_time is before start_time', + ], + ], + [ + 'apiName' => 'DescribeLiveStreamMerge', + 'description' => '查询主备合流配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamMerge', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + [ + 'apiName' => 'DeleteLiveMessageUserMessage', + 'description' => '删除(撤回)某条单聊消息', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveMessageUserMessage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', - 'title' => '添加直播中心转推配置', - 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'UpdateLiveCenterTransfer' => [ - 'summary' => '调用UpdateLiveCenterTransfer修改直播中心转推配置。', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'RemoveTerminals', + 'description' => '从频道中踢出指定终端用户', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:RemoveTerminals', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live:*:{#accountId}:rtc/{#AppId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DescribeUpBpsPeakData', + 'description' => '查询用户的每日上行带宽峰值', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeUpBpsPeakData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'MuteGroupUser', + 'description' => '批量禁言消息组内成员(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:MuteGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'write', - 'systemTags' => [ + [ + 'apiName' => 'UpdateLiveStreamWatermark', + 'description' => '更新水印模板', 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:UpdateLiveStreamWatermark', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DescribeLiveStreamsTotalCount', + 'description' => '获取天粒度累计直播流路数', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsTotalCount', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + ], + [ + 'apiName' => 'ListMessageGroup', + 'description' => '查询指定用户下消息组(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流应用名称。输入的AppName必须与需要转推的直播流AppName保持一致,方可生效。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'testapp', + ], + [ + 'apiName' => 'DescribeToutiaoLivePlay', + 'description' => '头条拉流查询接口', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeToutiaoLivePlay', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'teststream', + ], + [ + 'apiName' => 'DescribeLiveUserBillPrediction', + 'description' => '获取直播用户预期账单', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveUserBillPrediction', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DstUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '转推的第三方直播地址,最多支持添加1个地址。'."\n" - ."\n" - .'>目标地址协议必须和转推的直播流协议一致,目前仅支持RTMP和SRT协议的转推地址。', - 'type' => 'string', - 'required' => true, - 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2', + ], + [ + 'apiName' => 'SendLike', + 'description' => '设置点赞消息(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:SendLike', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'TransferArgs', - 'in' => 'query', - 'schema' => [ - 'description' => '转推有效时间。取值:'."\n" - ."\n" - .'- **always**:永久生效。'."\n" - ."\n" - .'- **time**:指定时间内有效。'."\n" - ."\n" - .'>取值为**time**时,**StartTime**和**EndTime**必填。', - 'type' => 'string', - 'required' => true, - 'example' => 'always', - 'enum' => [ - 'always', - 'time', - ], + ], + [ + 'apiName' => 'DescribeLiveDomainFrameRateAndBitRateData', + 'description' => '查询直播域名下流帧率和码率数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainFrameRateAndBitRateData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '转推开始时间。'."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-21T10:00:00Z', + ], + [ + 'apiName' => 'DescribeLiveCenterStreamRateData', + 'description' => '查询直播中心收录的流音视频帧率和码率', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveCenterStreamRateData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '转推结束时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'>结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-22T08:00:00Z', + ], + [ + 'apiName' => 'DescribeLiveUserStreamMetricData', + 'description' => '查询指定域名流粒度批量数据', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveUserStreamMetricData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7908F2FF-44F8-120F-9FD6-85AE4B6C19EC', - ], - ], + [ + 'apiName' => 'AddLiveDomainPlayMapping', + 'description' => '添加主播放和子播放域名映射', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveDomainPlayMapping', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', + [ + 'apiName' => 'AddLiveDetectNotifyConfig', + 'description' => '添加回调通知URL', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveDetectNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], - [ - 'errorCode' => 'CodeIllegalDuration', - 'errorMessage' => 'param end_time is before start_time', + ], + ], + [ + 'apiName' => 'SetLiveDomainMultiStreamMaster', + 'description' => '手动切换双流灾备主流', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveDomainMultiStreamMaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + [ + 'apiName' => 'DescribeLiveStreamSnapshotInfo', + 'description' => '查询一段时间内截图内容', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamSnapshotInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', - 'title' => '修改直播中心转推配置', - 'description' => '本接口仅支持修改**转推有效时间**(TransferArgs、StartTime、EndTime)相关配置'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。、', - ], - 'DescribeLiveCenterTransfer' => [ - 'summary' => '调用DescribeLiveCenterTransfer查询直播中心转推配置。', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'DescribeLivePushProxyUsageData', + 'description' => '查询直播中心转推用量数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePushProxyUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ResumeLiveStream', + 'description' => '开始或恢复某条直播流的推送', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ResumeLiveStream', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'SetCasterChannel', + 'description' => '设置导播台通道', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetCasterChannel', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'DescribeLiveStreamDelayConfig', + 'description' => '查询直播延迟时间', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'CreateEdgeTranscodeJob', + 'description' => '创建边缘转码任务', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + ], + [ + 'apiName' => 'DescribeCasterConfig', + 'description' => '查询导播台配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流应用名称。输入的AppName必须与需要转推的直播流AppName保持一致,方可生效。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => false, - 'example' => 'testapp', + ], + [ + 'apiName' => 'SetLiveEdgeTransfer', + 'description' => '设置直播转推配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveEdgeTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => false, - 'example' => 'teststream', + ], + [ + 'apiName' => 'StartLiveStreamMonitor', + 'description' => '开启监播', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StartLiveStreamMonitor', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DstUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '转推的第三方直播地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2', + ], + [ + 'apiName' => 'DescribeLiveDomainStagingConfig', + 'description' => '查询灰度环境配置信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'LiveCenterTransferInfoList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LiveCenterTransferInfo' => [ - 'description' => '直播转推服务列表。', - 'type' => 'array', - 'items' => [ - 'description' => '直播转推服务列表。', - 'type' => 'object', - 'properties' => [ - 'AppName' => [ - 'description' => '直播流应用名称。', - 'type' => 'string', - 'example' => 'teststream', - ], - 'DomainName' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DstUrl' => [ - 'description' => '转推的第三方直播地址。', - 'type' => 'string', - 'example' => 'rtmp://push.example2.aliyunlive.com/testapp1/teststream2', - ], - 'EndTime' => [ - 'description' => '转推结束时间。', - 'type' => 'string', - 'example' => '2022-04-29T15:16:00Z', - ], - 'StartTime' => [ - 'description' => '转推开始时间。', - 'type' => 'string', - 'example' => '2022-04-28T15:16:00Z', - ], - 'StreamName' => [ - 'description' => '直播流名称。', - 'type' => 'string', - 'example' => 'teststream', - ], - 'TransferArgs' => [ - 'description' => '转推有效时间。取值:'."\n" - ."\n" - .'- **always**:永久生效。'."\n" - ."\n" - .'- **time**:指定时间内有效。', - 'type' => 'string', - 'example' => 'time', - ], - ], - ], - ], - ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C4865B85-664B-19D3-BB16-C62FB83C8226', - ], - ], + [ + 'apiName' => 'DescribeLiveShiftConfigs', + 'description' => '查询域名时移配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveShiftConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', + [ + 'apiName' => 'CreateLiveStreamRecordIndexFiles', + 'description' => '创建录制索引文件', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveStreamRecordIndexFiles', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + [ + 'apiName' => 'DescribeMeterLiveBypassDuration', + 'description' => '查询混流转码用量数据', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeMeterLiveBypassDuration', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"LiveCenterTransferInfoList\\": {\\n \\"LiveCenterTransferInfo\\": [\\n {\\n \\"AppName\\": \\"teststream\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DstUrl\\": \\"rtmp://push.example2.aliyunlive.com/testapp1/teststream2\\",\\n \\"EndTime\\": \\"2022-04-29T15:16:00Z\\",\\n \\"StartTime\\": \\"2022-04-28T15:16:00Z\\",\\n \\"StreamName\\": \\"teststream\\",\\n \\"TransferArgs\\": \\"time\\"\\n }\\n ]\\n },\\n \\"RequestId\\": \\"C4865B85-664B-19D3-BB16-C62FB83C8226\\"\\n}","errorExample":""},{"type":"xml","example":"\\n C4865B85-664B-19D3-BB16-C62FB83C8226\\n \\n 2022-04-29T15:16:00Z\\n teststream\\n 2022-04-28T15:16:00Z\\n time\\n teststream\\n rtmp://push.example2.aliyunlive.com/testapp1/teststream2\\n example.com\\n \\n","errorExample":""}]', - 'title' => '获取直播中心转推', - 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DeleteLiveCenterTransfer' => [ - 'summary' => '调用DeleteLiveCenterTransfer删除直播中心转推配置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeLiveStreamRecordContent', + 'description' => '查询直播流录制内容', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamRecordContent', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ + [ + 'apiName' => 'DeleteLiveRealTimeLogLogstore', + 'description' => '删除实时日志推送的logstore', 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:DeleteLiveRealTimeLogLogstore', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'UpdateRtcMPUEventSub', + 'description' => '更新混流转推事件订阅', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateRtcMPUEventSub', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + ], + [ + 'apiName' => 'StartLiveMPUTask', + 'description' => '创建混流转推任务(新)', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:StartLiveMPUTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流应用名称。输入的AppName必须与需要转推的直播流AppName保持一致,方可生效。您可在[流管理](~~197397~~)页面查看AppName。', - 'type' => 'string', - 'required' => true, - 'example' => 'testapp', + ], + [ + 'apiName' => 'DescribeLiveStreamCount', + 'description' => '查询在线直播流数量', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamCount', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流名称。您可在[流管理](~~197397~~)页面查看StreamName。', - 'type' => 'string', - 'required' => true, - 'example' => 'teststream', + ], + [ + 'apiName' => 'DescribeLiveStreamsPublishList', + 'description' => '查询域名历史流列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsPublishList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DstUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '转推的第三方直播地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'rtmp://push.example2.aliyundoc.com/testapp1/teststream2', + ], + [ + 'apiName' => 'ModifyCasterVideoResource', + 'description' => '修改导播台视频源', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyCasterVideoResource', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7908F2FF-44F8-120F-9FD6-85A******', - ], - ], + [ + 'apiName' => 'InitializeAutoShowListTask', + 'description' => '创建一个定时任务', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:InitializeAutoShowListTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', + [ + 'apiName' => 'DescribeCasterScenes', + 'description' => '查询场景信息列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterScenes', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + [ + 'apiName' => 'DescribeUpBpsPeakOfLine', + 'description' => '查询用户的每日某种专线上行带宽峰值', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeUpBpsPeakOfLine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"7908F2FF-44F8-120F-9FD6-85A******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 7908F2FF-44F8-120F-9FD6-85AE4B6C19EC\\n","errorExample":""}]', - 'title' => '删除直播中心转推', - 'description' => '本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - ], - 'DescribeLiveEdgeTransfer' => [ - 'summary' => '调用DescribeLiveEdgeTransfer查询直播转推配置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateLiveDelayConfig', + 'description' => '设置直播延播配置', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'DescribeLiveCertificateList', + 'description' => '获取证书列表信息', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:DescribeLiveCertificateList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DynamicUpdateWaterMarkStreamRule', + 'description' => '动态更新水印', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:DynamicUpdateWaterMarkStreamRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '推流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', + ], + [ + 'apiName' => 'DescribeLiveRealtimeDeliveryAcc', + 'description' => '查询实时日志投递次数', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRealtimeDeliveryAcc', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'HttpDns' => [ - 'description' => '获取转推目标地址的HTTPDNS接口。', - 'type' => 'string', - 'example' => 'http://developer.aliyundoc.com/****', - ], - 'AppName' => [ - 'description' => '直播流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '53FCB985-C67C-467B-B2B3-398430A21E14', - ], - 'TransferArgs' => [ - 'description' => '推流参数是否透传。取值:'."\n" - .'- **yes**:推流参数透传。'."\n" - .'- **no**:推流参数不透传。', - 'type' => 'string', - 'example' => 'yes', - ], - 'StreamName' => [ - 'description' => '推流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'TargetDomainList' => [ - 'description' => '转推域名列表,多个用英文逗号(,)分隔。', - 'type' => 'string', - 'example' => 'learn.aliyundoc.com,guide.aliyundoc.com', - ], - 'DomainName' => [ - 'description' => '推流域名。', - 'type' => 'string', - 'example' => 'demo.aliyundoc.com', - ], - ], + [ + 'apiName' => 'DescribeLiveDomainByCertificate', + 'description' => '查询证书匹配的域名列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainByCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', + [ + 'apiName' => 'SetShowListBackground', + 'description' => '播单背景设置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetShowListBackground', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + [ + 'apiName' => 'DeleteLiveDomainMapping', + 'description' => '删除直播域名的映射关系', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveDomainMapping', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"HttpDns\\": \\"http://developer.aliyundoc.com/****\\",\\n \\"AppName\\": \\"liveApp****\\",\\n \\"RequestId\\": \\"53FCB985-C67C-467B-B2B3-398430A21E14\\",\\n \\"TransferArgs\\": \\"yes\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"TargetDomainList\\": \\"learn.aliyundoc.com,guide.aliyundoc.com\\",\\n \\"DomainName\\": \\"demo.aliyundoc.com\\"\\n}","errorExample":""},{"type":"xml","example":"\\n http://developer.aliyundoc.com/****\\n liveApp****\\n 53FCB985-C67C-467B-B2B3-398430A21E14\\n yes\\n liveStream****\\n learn.aliyundoc.com,guide.aliyundoc.com\\n demo.aliyundoc.com\\n","errorExample":""}]', - 'title' => '查询直播转推配置', - 'description' => '先获取推流域名,再调用本接口查询直播边缘转推配置。'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteLiveEdgeTransfer' => [ - 'summary' => '删除直播转推配置。', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'DescribeLiveDomainMapping', + 'description' => '查询直播域名映射', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainMapping', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DescribeLivePrivateLineAreas', + 'description' => '查询可选的全球加速链路起点', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePrivateLineAreas', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeCasterLayouts', + 'description' => '查询导播台布局列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterLayouts', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], - 'operationType' => 'readAndWrite', - 'systemTags' => [ + [ + 'apiName' => 'DeleteLiveDomain', + 'description' => '删除已添加的直播域名', 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:DeleteLiveDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'ListLiveDelayConfig', + 'description' => '查询延播配置列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListLiveDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '推流域名。一个域名只有一个直播转推配置。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', + ], + [ + 'apiName' => 'AddCasterComponent', + 'description' => '添加导播台组件', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterComponent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - ], + [ + 'apiName' => 'DescribeLiveProducerUsageData', + 'description' => '查询导播台用量数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveProducerUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', + [ + 'apiName' => 'ListLiveRealtimeLogDeliveryInfos', + 'description' => '查询所有实时日志投递服务信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListLiveRealtimeLogDeliveryInfos', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + [ + 'apiName' => 'UpdateLiveCenterTransfer', + 'description' => '修改直播中心转推配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveCenterTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\n","errorExample":""}]', - 'title' => '删除直播转推配置', - 'description' => '调用DeleteLiveEdgeTransfer只会删除针对某一域名的直播边缘转推配置,对已经按照该配置进行的直播转推没有影响。以下为典型场景示例:'."\n" - ."\n" - .'| 场景 | 分析 | 结果 |'."\n" - .'| -------------- | -------------- | ------ |'."\n" - .'| 1. 调用SetLiveEdgeTransfer配置直播边缘转推后进行推流,过程中调用DeleteLiveEdgeTransfer删除配置。 | 推流时直播边缘转推配置存在。 | 推流不受影响,直播转推不会中断。 |'."\n" - .'| 2. 推流过程中调用DeleteLiveEdgeTransfer删除直播边缘转推配置,中断推流再重新推流。 | 重新推流时直播边缘转推配置已不存在。 | 不会启动直播边缘转推。 |'."\n" - .'| 3. 调用DeleteLiveEdgeTransfer后才开始直播推流。 | 此时直播边缘转推配置不存在。 | 不会启动直播边缘转推。 |'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'SetLiveEdgeTransfer' => [ - 'summary' => '调用SetLiveEdgeTransfer设置直播转推配置。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ListMessageGroupUserById', + 'description' => '通过用户ID查询用户信息(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListMessageGroupUserById', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateLiveRealTimeLogDelivery', + 'description' => '创建域名实时日志投递', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveRealTimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'write', - 'systemTags' => [ + [ + 'apiName' => 'UpdateLiveAudioAuditConfig', + 'description' => '更新直播语音审核配置', 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:UpdateLiveAudioAuditConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DeleteCasterComponent', + 'description' => '删除导播台组件', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterComponent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '推流域名。直播转推流以推流的DomainName为粒度设置。一个域名只能有一个直播转推配置。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo.aliyundoc.com', + ], + [ + 'apiName' => 'DeleteLiveStreamRecordIndexFiles', + 'description' => '删除直播录制文件', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamRecordIndexFiles', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'AppName', - 'in' => 'query', - 'schema' => [ - 'description' => '直播流所属应用名称。支持正则表达式配置但有例外。详细信息,请参见下文中的**AppName与StreamName参数设置说明**。例如:liveApp****[1,2,3],表示允许liveApp****1,liveApp****2,liveApp****3三个App转推。'."\n" - ."\n" - .'> - 此参数只对请求参数中的TargetDomainList生效。'."\n" - .'> - 使用正则表达式配置`AppName`参数值时不能使用^或$字符,否则会导致转推失败。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveApp****', + ], + [ + 'apiName' => 'OpenLiveShift', + 'description' => '开启时移服务', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:OpenLiveShift', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'StreamName', - 'in' => 'query', - 'schema' => [ - 'description' => '推流名称。支持正则表达式配置但有例外。详细信息,请参见下文中的**AppName与StreamName参数设置说明**。例如:liveStream****[1,2,3],表示允许liveStream****1,liveStream****2,liveStream****3三个流转推。'."\n" - ."\n" - .'>- 此参数只对请求参数中的TargetDomainList生效。'."\n" - .'> - 使用正则表达式配置`StreamName`参数值时不能使用^或$字符,否则会导致转推失败。', - 'type' => 'string', - 'required' => false, - 'example' => 'liveStream****', + ], + [ + 'apiName' => 'AddLivePullStreamInfoConfig', + 'description' => '添加直播拉流配置信息', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLivePullStreamInfoConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'TargetDomainList', - 'in' => 'query', - 'schema' => [ - 'description' => '用户指定的转推目标域名列表。多个域名用英文逗号(,)分隔。请求中必须带有`TargetDomainList`和`HttpsDns`两个参数中的一个,且二者互斥。'."\n" - ."\n\n" - .'> - 当请求参数中设置了`TargetDomainList`,`AppName`和`StreamName`参数才生效。'."\n" - .'> - 当请求参数中设置了`TargetDomainList`,则不能再设置`HttpsDns`参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'learn.aliyundoc.com,guide.aliyundoc.com', + ], + [ + 'apiName' => 'DeleteChannel', + 'description' => '关闭频道', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DeleteChannel', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live:*:{#accountId}:rtc/{#AppId}'], ], ], - [ - 'name' => 'HttpDns', - 'in' => 'query', - 'schema' => [ - 'description' => '获取转推目标地址的HTTPDNS接口。请求中必须带有`TargetDomainList`和`HttpsDns`两个参数中的一个,且二者互斥。'."\n" - ."\n" - .'> 若请求参数中设置了`HttpsDns`,则不能再设置`TargetDomainList`参数,且`AppName`和`StreamName`限制不生效。'."\n" - ."\n" - .'直播转推对HTTPDNS接口返回的消息结构有要求,详细信息,请参见下文中的**HTTPDNS说明**。', - 'type' => 'string', - 'required' => false, - 'example' => 'http://developer.aliyundoc.com', + ], + [ + 'apiName' => 'StopEdgeTranscodeJob', + 'description' => '停止边缘转码任务', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'TransferArgs', - 'in' => 'query', - 'schema' => [ - 'description' => '推流参数是否透传。取值:'."\n" - .'- **yes**:推流参数透传。'."\n" - .'- **no**(默认值):推流参数不透传。', - 'type' => 'string', - 'required' => false, - 'example' => 'yes', - 'default' => 'no', - 'enum' => [ - 'yes', - 'no', - ], + ], + [ + 'apiName' => 'DeleteLivePackageConfig', + 'description' => '删除直播封装配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLivePackageConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CF8', - ], - ], + [ + 'apiName' => 'SetLiveMpuTaskSei', + 'description' => '设置自定义SEI', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveMpuTaskSei', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParam', - 'errorMessage' => 'Parameter invalid.', + [ + 'apiName' => 'DescribeLiveDomainConfigs', + 'description' => '查询直播域名配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + [ + 'apiName' => 'ModifyCasterLayout', + 'description' => '修改导播台布局', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyCasterLayout', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 16A96B9A-F203-4EC5-8E43-CB92E68F4CF8\\n","errorExample":""}]', - 'title' => '设置直播转推配置', - 'description' => '调用SetLiveEdgeTransfer进行的直播边缘转推配置仅对配置完成后开始的推流生效。以下为部分典型场景示例:'."\n" - ."\n" - .'| 场景 | 分析 | 结果 |'."\n" - .'| -------------- | -------------- | ------ |'."\n" - .'| 1. 用户在调用SetLiveEdgeTransfer之前已经开始推流。 | 此时直播边缘转推流配置不存在。 | 该推流不受SetLiveEdgeTransfer配置的影响,即直播边缘转推流不会启动。 |'."\n" - .'| 2. 用户中断调用SetLiveEdgeTransfer之前已经开始的推流,再重新推流。 | 此时直播边缘转推流配置已经存在。 | 重新开始的推流会按SetLiveEdgeTransfer的配置启动直播转推流。 |'."\n" - .'| 3. 用户在调用SetLiveEdgeTransfer之后开始推流。 | 此时直播边缘转推流配置已经存在。 | 此次推流会按SetLiveEdgeTransfer的配置启动直播转推流。 |'."\n" - ."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。', - 'requestParamsDescription' => '### AppName与StreamName参数设置说明'."\n" - .'AppName与StreamName均不支持`^`、`$`匹配。二者之中任一取值出现`^`或`$`均会导致转推失败。'."\n" - .'### HTTPDNS说明'."\n" - .'如果SetLiveEdgeTransfer的请求参数中设置了`HttpDns`,直播转推时将访问通过`HttpDns`设置的HTTPDNS接口来获取转推目标地址。'."\n" - ."\n" - .'请求示例如下:'."\n" - .'http://developer.aliyundoc.com/?host={}&app={}&name={}{<_ali_user_args>} '."\n" - .'说明:在实际请求HTTPDNS接口时会把以下参数按推流URL中的信息进行替换:'."\n" - ."\n" - .'- {}:推流域名。'."\n" - .'- {}:直播流所属应用名称。'."\n" - .'- {}:流名。'."\n" - .'- {<_ali_user_args>}:用户推流带的参数。'."\n" - ."\n" - .'直播转推对接口返回码和返回数据的要求如下:'."\n" - .'- 返回码为403表示访问失败,不需要转推。'."\n" - .'- 返回码为200表示访问成功,返回结果为JSON格式。结构和参数示例如下:'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "cdn_types": ['."\n" - .' {'."\n" - .' "name": "cdnA****",'."\n" - .' "upstream_url": "rtmp://developer.aliyundoc.com/live/testedge****"'."\n" - .' },'."\n" - .' {'."\n" - .' "name": "cdnB****",'."\n" - .' "upstream_url": "rtmp://developer.aliyundoc.com/live/testedge****"'."\n" - .' }'."\n" - .' ]'."\n" - .'}'."\n" - .'```'."\n" - .'| 参数 | 描述 | 示例 |'."\n" - .'| -------------- | -------------- | ------ |'."\n" - .'| name | CDN名称,可自定义但不能重复。 | cdnA**** |'."\n" - .'| upstream_url |要转推的推流地址。 | rtmp://developer.aliyundoc.com/live/testedge**** |'."\n" - ."\n" - .'> 转推域名从返回的JSON结果里面获取。如果返回多个转推域名,表示需要将原始流推到多路。'."\n" - .'- 返回数据结构不符合要求将导致转推失败。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeLiveUserBillPrediction' => [ - 'summary' => '获取直播用户预期账单', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteEventSub', + 'description' => '删除订阅房间消息回调', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DeleteEventSub', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live:*:{#accountId}:rtc/{#AppId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'UpdateLiveDetectNotifyConfig', + 'description' => '更新直播审核回调配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveDetectNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'DescribeLiveUpVideoAudioInfo', + 'description' => '获取直播视频音频信息', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive9P39J9', + 'ramAction' => [ + 'action' => 'live:DescribeLiveUpVideoAudioInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DescribeLivePullStreamConfig', + 'description' => '查询域名下拉流配置信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePullStreamConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '开始时间。格式为:yyyy-mm-ddthh:mm:ssz(utc时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-01T05:40:00Z', + ], + [ + 'apiName' => 'DescribeLiveRealtimeLogAuthorized', + 'description' => '查询用户实时日志投递授权状态', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRealtimeLogAuthorized', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。格式为:yyyy-MM-ddTHH:mm:ssZ(UTC时间)。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-01T05:45:00Z', + ], + [ + 'apiName' => 'DescribeLiveSnapshotNotifyConfig', + 'description' => '获取截图回调配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveSnapshotNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => '默认为当前时间, 日期格式按照ISO8601表示法,并使用UTC时间。'."\n" - .'格式为:YYYY-MM-DDThh:mm:ssZ', - 'type' => 'string', - 'example' => '2018-10-25T10:00:00Z', - ], - 'StartTime' => [ - 'description' => '默认为月初第一天的 0 点整, 日期格式按照ISO8601表示法,并使用UTC时间。'."\n" - .'格式为:YYYY-MM-DDThh:mm:ssZ', - 'type' => 'string', - 'example' => '2018-09-30T16:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B95BE680-5A6A-1CAD-8AB1-09DFF5D6****', - ], - 'BillType' => [ - 'description' => '用户计费类型。计费模式取值如下所示:'."\n" - ."\n" - .'- hour_flow:按小时流量计费。'."\n" - .'- day_bandwidth:按日带宽计费。'."\n" - .'- month_95:按月95峰值带宽计费。'."\n" - .'- month_avg_day_bandwidth:按月均日峰值带宽计费。'."\n" - .'- month_4th_day_bandwidth:按月第四日峰值带宽计费。'."\n" - .'- month_avg_day_95:按月均日95峰值带宽计费。'."\n" - .'- month_95_night_half: 按夜间半价95峰值带宽计费。'."\n" - .'- hour_vas:按小时增值服务计费。'."\n" - .'- day_count:按日请求次数计费。', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'day_bandwidth', - ], - 'BillPredictionData' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'BillPredictionDataItem' => [ - 'description' => '账单预测数据。', - 'type' => 'array', - 'items' => [ - 'description' => '账单预测数据。', - 'type' => 'object', - 'properties' => [ - 'Value' => [ - 'description' => '预测值。', - 'type' => 'number', - 'format' => 'float', - 'example' => '10000', - ], - 'TimeStp' => [ - 'description' => '预测值对应的时刻,仅95、夜间半价95和月第四日峰值有这个字段。', - 'type' => 'string', - 'example' => '2018-10-15T16:00:00Z', - ], - 'Area' => [ - 'description' => '区域代号。支持:'."\n" - .'- CN:中国内地。'."\n" - .'- OverSeas:海外大区。'."\n" - .'- AP1:亚太1区,包含中国香港地区、中国澳门地区、中国台湾地区、日本以及东南亚除越南和印尼之外的国家。'."\n" - .'- AP2:亚太2区,包含印尼、韩国、越南。'."\n" - .'- AP3:亚太3区,包含澳大利亚、新西兰。'."\n" - .'- NA:北美,包含美国、加拿大。'."\n" - .'- SA:南美,特指巴西。'."\n" - .'- EU:欧洲,包含乌克兰、英国、法国、荷兰、西班牙、意大利、瑞典、德国。'."\n" - .'- MEAA:中东非洲,包含南非、阿曼、阿联酋、科威特。'."\n" - ."\n" - .'不传值时默认为所有区域数据聚合输出。', - 'type' => 'string', - 'example' => 'CN', - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'ListEdgeTranscodeTemplate', + 'description' => '查询边缘转码模板列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListEdgeTranscodeTemplate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'InvalidParameter.', + [ + 'apiName' => 'AddLiveStreamWatermarkRule', + 'description' => '添加水印规则', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveStreamWatermarkRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', + ], + ], + [ + 'apiName' => 'ListLiveMessageGroups', + 'description' => '查询直播互动群组列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListLiveMessageGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', + ], + ], + [ + 'apiName' => 'DescribeLiveMessageApp', + 'description' => '查询直播互动应用信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.', + ], + ], + [ + 'apiName' => 'ListLiveMessageGroupMessages', + 'description' => '查询群组消息列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListLiveMessageGroupMessages', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified Time is malformed.', + ], + ], + [ + 'apiName' => 'DescribeShowList', + 'description' => '节目单查询', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeShowList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'Specified end time does not math the specified start time.', + ], + ], + [ + 'apiName' => 'SetLiveDomainMultiStreamOptimalMode', + 'description' => '设置双流灾备自动模式开关', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveDomainMultiStreamOptimalMode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', + ], + ], + [ + 'apiName' => 'DescribeLiveHttpsDomainList', + 'description' => '查询证书服务列表接口', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveHttpsDomainList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], - [ - 'errorCode' => 'BillTypeNotFound', - 'errorMessage' => 'User bill type not found or is not monthly bill type.', + ], + ], + [ + 'apiName' => 'DeleteLiveDetectNotifyConfig', + 'description' => '删除回调通知URL', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveDetectNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2018-10-25T10:00:00Z\\",\\n \\"StartTime\\": \\"2018-09-30T16:00:00Z\\",\\n \\"RequestId\\": \\"B95BE680-5A6A-1CAD-8AB1-09DFF5D6****\\",\\n \\"BillType\\": \\"day_bandwidth\\",\\n \\"BillPredictionData\\": {\\n \\"BillPredictionDataItem\\": [\\n {\\n \\"Value\\": 10000,\\n \\"TimeStp\\": \\"2018-10-15T16:00:00Z\\",\\n \\"Area\\": \\"CN\\"\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '获取直播用户预期账单', - 'description' => '用于预测用户当月的用量数据,按用户月初第一天的计费模式计算,只支持月度计费模式的预测,只支持用户粒度。 起始时间为月初1号0点,结束时间为当前时间前两个小时。'."\n" - ."\n" - .'- 月95:开始时间至结束时间内,去掉最高5%点后的最高点,为预测值。'."\n" - .' '."\n" - .'- 月均日峰值:每日峰值带宽求和/时间天数,不计算当天的数据。'."\n" - ."\n" - .' - 月第四峰:请求时间内,第四高的峰值为预测值,如果请求时间小于4天,返回预测值为0。'."\n" - ."\n" - .' - 日95月平均:每日日95峰值求和/时间天数,不计算当天的数据。'."\n" - ."\n" - .' - 夜间95:开始时间至结束时间内,去掉最高5%点后的最高点,为预测值。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为1次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DescribeRTSNativeSDKFirstFrameCost' => [ - 'summary' => '获取某一段时间内,首帧延时组成。', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'DescribeLiveStreamTranscodeInfo', + 'description' => '查询转码配置信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamTranscodeInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'UpdateLiveMPUTask', + 'description' => '更新混流转推任务(新)', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveMPUTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeLiveStreamTranscodeMetricData', + 'description' => '按流粒度查询视频流的转码用量', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamTranscodeMetricData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'DescribeLiveStreamPushMetricDetailData', + 'description' => '查询指定域名推流流粒度批量数据', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamPushMetricDetailData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '开始时间'."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-12-10T20:00:00Z', + [ + 'apiName' => 'DescribeLiveStreamsNotifyRecords', + 'description' => '查询流回调记录', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsNotifyRecords', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间'."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-12-10T21:00:00Z', + ], + [ + 'apiName' => 'UpdateLiveStreamTranscode', + 'description' => '更新通用转码配置', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:UpdateLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DataInterval', - 'in' => 'query', - 'schema' => [ - 'description' => '时间粒度,支持300, 3600, 14400, 28800和86400秒。不传和传的值不支持时,使用默认值300秒。', - 'type' => 'string', - 'required' => false, - 'example' => '300', + ], + [ + 'apiName' => 'DescribeLiveInteractionMetricData', + 'description' => '查询实时音视频指标数据', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveInteractionMetricData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DomainNameList', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '默认查询全部(2.1.0版本以上),也可指定具体的域名,多个域名用半角逗号(,)分隔,一次最多支持500个域名查询。', - 'type' => 'array', - 'items' => [ - 'description' => '域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'a.example.com', - ], - 'required' => false, + ], + [ + 'apiName' => 'DescribeLiveStreamTranscodeStreamNum', + 'description' => '获取直播流转码流数量', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamTranscodeStreamNum', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'DataInterval' => [ - 'description' => '时间粒度', - 'type' => 'string', - 'example' => '300', - ], - 'EndTime' => [ - 'description' => '结束时间', - 'type' => 'string', - 'example' => '2021-12-10T21:00:00Z', - ], - 'FirstFrameCostData' => [ - 'description' => '每个时间间隔的首帧组成平均延时,单位:毫秒', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Connected' => [ - 'description' => '初始化成功至建联成功耗时', - 'type' => 'string', - 'example' => '100', - ], - 'FinishGetStreamInfo' => [ - 'description' => '建联成功至订阅成功耗时', - 'type' => 'string', - 'example' => '89', - ], - 'FirstFrameComplete' => [ - 'description' => '首包成功至首帧成功耗时', - 'type' => 'string', - 'example' => '32', - ], - 'FirstPacket' => [ - 'description' => '订阅成功至首包成功耗时', - 'type' => 'string', - 'example' => '132', - ], - 'Initialized' => [ - 'description' => '初始化耗时', - 'type' => 'string', - 'example' => '1100', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻', - 'type' => 'string', - 'example' => '2021-12-10T20:00:00Z', - ], - ], - ], - ], - 'RequestId' => [ - 'title' => 'Id', - 'description' => 'Id', - 'type' => 'string', - 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', - ], - 'StartTime' => [ - 'description' => '起始时间', - 'type' => 'string', - 'example' => '2021-12-10T20:00:00Z', - ], - ], + [ + 'apiName' => 'AddCasterEpisode', + 'description' => '添加导播台节目', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterEpisode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Meter.ParamError', - 'errorMessage' => 'Param Error:%s,Please Check Again.', + [ + 'apiName' => 'ListLiveTagResources', + 'description' => '查询符合条件的资源和标签', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListLiveTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - 403 => [ - [ - 'errorCode' => 'Meter.AuthError', - 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + [ + 'apiName' => 'DescribeLiveDomainBpsData', + 'description' => '查询域名网络带宽监控数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'Meter.ServerInternalError', - 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', + ], + [ + 'apiName' => 'DescribeLivePullToPush', + 'description' => '查询拉流转推任务', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePullToPush', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Meter.DataSourceQueryError', - 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + ], + [ + 'apiName' => 'DescribeLiveStreamRecordIndexFiles', + 'description' => '查询某个时间段内的所有录制索引文件', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamRecordIndexFiles', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 502 => [ - [ - 'errorCode' => 'Meter.ReadyTsError', - 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + [ + 'apiName' => 'DescribeLiveIpInfo', + 'description' => '获取直播IP信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveIpInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"EndTime\\": \\"2021-12-10T21:00:00Z\\",\\n \\"FirstFrameCostData\\": [\\n {\\n \\"Connected\\": \\"100\\",\\n \\"FinishGetStreamInfo\\": \\"89\\",\\n \\"FirstFrameComplete\\": \\"32\\",\\n \\"FirstPacket\\": \\"132\\",\\n \\"Initialized\\": \\"1100\\",\\n \\"TimeStamp\\": \\"2021-12-10T20:00:00Z\\"\\n }\\n ],\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"StartTime\\": \\"2021-12-10T20:00:00Z\\"\\n}","type":"json"}]', - 'title' => '查询首帧延时组成', - 'description' => '本接口用于查询时间范围内首帧延时组成. QPS限制 本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制。', - ], - 'DescribeRTSNativeSDKPlayTime' => [ - 'summary' => '获取某一段时间内,播放时长。', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'DeleteCasterLayout', + 'description' => '删除导播台布局数据', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterLayout', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DescribeAutoShowListTasks', + 'description' => '查询自动启停的定时任务', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeAutoShowListTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'TagLiveResources', + 'description' => '添加Live资源标签', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:TagLiveResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', + [ + 'apiName' => 'CopyCaster', + 'description' => '复制导播台', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CopyCaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '开始时间'."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-12-10T20:00:00Z', + [ + 'apiName' => 'QueryRtcAsrTasks', + 'description' => '查询实时语音转文字或翻译', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:QueryRtcAsrTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间'."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-12-10T21:00:00Z', + ], + [ + 'apiName' => 'DeleteLiveRecordNotifyConfig', + 'description' => '删除直播录制回调配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveRecordNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DataInterval', - 'in' => 'query', - 'schema' => [ - 'description' => '时间粒度,支持300, 3600, 14400, 28800和86400秒。不传和传的值不支持时,使用默认值300秒。', - 'type' => 'string', - 'required' => false, - 'example' => '300', + ], + [ + 'apiName' => 'DescribeLiveDomainPvUvData', + 'description' => '查询直播域名PV/UV数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainPvUvData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DomainNameList', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '默认查询全部(2.1.0及版本以上),也可指定具体的域名,多个域名用半角逗号(,)分隔,一次最多支持500个域名查询。', - 'type' => 'array', - 'items' => [ - 'description' => '域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'a.example.com', - ], - 'required' => false, + ], + [ + 'apiName' => 'AddLiveStreamMerge', + 'description' => '添加主备合流', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveStreamMerge', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'DataInterval' => [ - 'description' => '时间粒度', - 'type' => 'string', - 'example' => '300', - ], - 'EndTime' => [ - 'description' => '结束时间', - 'type' => 'string', - 'example' => '2021-12-10T21:00:00Z', - ], - 'PlayTimeData' => [ - 'description' => '每个时间间隔的的平均播放时长、平均卡顿时长,单位:毫秒', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'PlayTime' => [ - 'description' => '该时间段的平均播放时长', - 'type' => 'string', - 'example' => '1000', - ], - 'StallTime' => [ - 'description' => '该时间段的平均卡顿时长', - 'type' => 'string', - 'example' => '100', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻', - 'type' => 'string', - 'example' => '2021-12-10T20:00:00Z', - ], - ], - ], - ], - 'RequestId' => [ - 'title' => 'Id', - 'description' => 'Id', - 'type' => 'string', - 'example' => '7BF95F2A-3B24-4CDE-9346-7F6FA86697A1', - ], - 'StartTime' => [ - 'description' => '起始时间', - 'type' => 'string', - 'example' => '2021-12-10T20:00:00Z', - ], - ], + [ + 'apiName' => 'UpdateLivePullStreamInfoConfig', + 'description' => '更新直播拉流配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLivePullStreamInfoConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Meter.ParamError', - 'errorMessage' => 'Param Error:%s,Please Check Again.', + [ + 'apiName' => 'DescribeLiveTopDomainsByFlow', + 'description' => '获取流最多域名', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveTopDomainsByFlow', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'Meter.AuthError', - 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + [ + 'apiName' => 'DescribeLiveDomainTrafficData', + 'description' => '查询直播域名流量数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'Meter.ServerInternalError', - 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', - ], - [ - 'errorCode' => 'Meter.DataSourceQueryError', - 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + [ + 'apiName' => 'UpdateEdgeTranscodeJob', + 'description' => '更新边缘转码任务', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - 502 => [ - [ - 'errorCode' => 'Meter.ReadyTsError', - 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + [ + 'apiName' => 'DescribeLiveDomainPublishErrorCode', + 'description' => '查询域名推流状态码', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainPublishErrorCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"EndTime\\": \\"2021-12-10T21:00:00Z\\",\\n \\"PlayTimeData\\": [\\n {\\n \\"PlayTime\\": \\"1000\\",\\n \\"StallTime\\": \\"100\\",\\n \\"TimeStamp\\": \\"2021-12-10T20:00:00Z\\"\\n }\\n ],\\n \\"RequestId\\": \\"7BF95F2A-3B24-4CDE-9346-7F6FA86697A1\\",\\n \\"StartTime\\": \\"2021-12-10T20:00:00Z\\"\\n}","type":"json"}]', - 'title' => '查询播放时长', - 'description' => '本接口用于查询时间范围内播放时长. QPS限制 本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制。', - ], - 'DescribeRTSNativeSDKPlayFailStatus' => [ - 'summary' => '获取某一段时间内,查询播放失败的原因(状态码形式)。', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'UpdateLiveAIProduceRules', + 'description' => '更新实时字幕规则', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveAIProduceRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteLivePrivateLine', + 'description' => '删除全球加速实例和直播链路的绑定关系', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLivePrivateLine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeLiveStreamsControlHistory', + 'description' => '查询直播流操作历史', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsControlHistory', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'DescribeLiveStreamState', + 'description' => '查询单路流状态', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamState', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '开始时间'."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-12-10T20:00:00Z', + [ + 'apiName' => 'DescribeLiveDomainRealtimeLogDelivery', + 'description' => '查询域名实时日志投递信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间'."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-12-10T21:00:00Z', + ], + [ + 'apiName' => 'SetLiveDomainMultiStreamConfig', + 'description' => '设置双流灾备开关', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveDomainMultiStreamConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DataInterval', - 'in' => 'query', - 'schema' => [ - 'description' => '时间粒度,支持300, 3600, 14400, 28800和86400秒。不传和传的值不支持时,使用默认值300秒。', - 'type' => 'string', - 'required' => false, - 'example' => '300', + ], + [ + 'apiName' => 'JoinMessageGroup', + 'description' => '加入消息组(旧版)', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:JoinMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DomainNameList', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '默认查询全部(2.1.0版本以上),也可指定具体的域名,多个域名用半角逗号(,)分隔,一次最多支持500个域名查询。', - 'type' => 'array', - 'items' => [ - 'description' => '域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'a.example.com', - ], - 'required' => false, + ], + [ + 'apiName' => 'DescribeDomainUsageData', + 'description' => '查询域名在特定计费区域的用量数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeDomainUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'DataInterval' => [ - 'description' => '时间粒度', - 'type' => 'string', - 'example' => '300', - ], - 'EndTime' => [ - 'description' => '结束时间', - 'type' => 'string', - 'example' => '2021-12-10T21:00:00Z', - ], - 'PlayFailStatus' => [ - 'description' => '每个时间间隔的错误状态码总数,单位:次数', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻', - 'type' => 'string', - 'example' => '2021-12-10T20:00:00Z', - ], - 'V20001' => [ - 'description' => 'DNS解析失败', - 'type' => 'string', - 'example' => '1', - ], - 'V20002' => [ - 'description' => '鉴权失败', - 'type' => 'string', - 'example' => '2', - ], - 'V20011' => [ - 'description' => '建联信令超时', - 'type' => 'string', - 'example' => '3', - ], - 'V20012' => [ - 'description' => '订阅信令返回错误', - 'type' => 'string', - 'example' => '4', - ], - 'V20013' => [ - 'description' => '订阅流不存在', - 'type' => 'string', - 'example' => '5', - ], - 'V20052' => [ - 'description' => '媒体收包超时', - 'type' => 'string', - 'example' => '6', - ], - ], - ], - ], - 'RequestId' => [ - 'title' => 'Id', - 'description' => 'Id', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'StartTime' => [ - 'description' => '起始时间', - 'type' => 'string', - 'example' => '2021-12-10T20:00:00Z'."\n", - ], - ], + [ + 'apiName' => 'DeleteStudioLayout', + 'description' => '删除虚拟演播厅布局', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteStudioLayout', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Meter.ParamError', - 'errorMessage' => 'Param Error:%s,Please Check Again.', + [ + 'apiName' => 'CreateMessageApp', + 'description' => '创建互动消息应用', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - 403 => [ - [ - 'errorCode' => 'Meter.AuthError', - 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + [ + 'apiName' => 'DescribeLiveStreamWatermarkRules', + 'description' => '查询水印规则列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamWatermarkRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'Meter.ServerInternalError', - 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', + ], + [ + 'apiName' => 'LeaveMessageGroup', + 'description' => '退出消息组(旧版)', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:LeaveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], - [ - 'errorCode' => 'Meter.DataSourceQueryError', - 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + ], + [ + 'apiName' => 'DescribeLiveSnapshotConfig', + 'description' => '查询域名下的截图配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveSnapshotConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 502 => [ - [ - 'errorCode' => 'Meter.ReadyTsError', - 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + [ + 'apiName' => 'AddCasterLayout', + 'description' => '添加导播台布局', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterLayout', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"EndTime\\": \\"2021-12-10T21:00:00Z\\",\\n \\"PlayFailStatus\\": [\\n {\\n \\"TimeStamp\\": \\"2021-12-10T20:00:00Z\\",\\n \\"V20001\\": \\"1\\",\\n \\"V20002\\": \\"2\\",\\n \\"V20011\\": \\"3\\",\\n \\"V20012\\": \\"4\\",\\n \\"V20013\\": \\"5\\",\\n \\"V20052\\": \\"6\\"\\n }\\n ],\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"StartTime\\": \\"2021-12-10T20:00:00Z\\\\n\\"\\n}","type":"json"}]', - 'title' => '查询播放失败的原因', - 'description' => '本接口用于查询时间范围内播放失败的原因(状态码形式). QPS限制 本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制。', - ], - 'DescribeRTSNativeSDKFirstFrameDelay' => [ - 'summary' => '获取某一段时间内,首帧延时(平均值)', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'UpdateLiveRecordNotifyConfig', + 'description' => '更新域名级别录制回调配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveRecordNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ForbidLiveStream', + 'description' => '禁止直播流', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ForbidLiveStream', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CancelMuteAllGroupUser', + 'description' => '取消消息组用户的静音(旧版)', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:CancelMuteAllGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'DescribeLiveMessageGroup', + 'description' => '查询直播互动群组详细信息', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', + 'ramAction' => [ + 'action' => 'live:DescribeLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '开始时间'."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-12-10T20:00:00Z', + [ + 'apiName' => 'DescribeLiveDomainRealTimeHttpCodeData', + 'description' => '查询直播域名实时HTTP返回码占比', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainRealTimeHttpCodeData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间'."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-12-10T21:00:00Z', + ], + [ + 'apiName' => 'DeleteLivePullToPush', + 'description' => '删除拉流转推任务', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLivePullToPush', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DataInterval', - 'in' => 'query', - 'schema' => [ - 'description' => '时间粒度,支持300, 3600, 14400, 28800和86400秒。不传和传的值不支持时,使用默认值300秒。', - 'type' => 'string', - 'required' => false, - 'example' => '300', + ], + [ + 'apiName' => 'CreateRoomRealTimeStreamAddress', + 'description' => '创建RTMP流在房间中的推流地址', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:CreateRoomRealTimeStreamAddress', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], - [ - 'name' => 'DomainNameList', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '默认查询全部(2.1.0版本以上),也可指定具体的域名,多个域名用半角逗号(,)分隔,一次最多支持500个域名查询。', - 'type' => 'array', - 'items' => [ - 'description' => '域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'a.example.com', - ], - 'required' => false, + ], + [ + 'apiName' => 'QueryMessageApp', + 'description' => '按指定条件查询互动消息应用(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:QueryMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'DataInterval' => [ - 'description' => '时间粒度', - 'type' => 'string', - 'example' => '300', - ], - 'EndTime' => [ - 'description' => '结束时间', - 'type' => 'string', - 'example' => '2021-12-10T21:00:00Z', - ], - 'FrameDelayData' => [ - 'description' => '每个时间间隔的首帧平均延时,单位:毫秒', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'FrameDelay' => [ - 'description' => '该时间段的平均首帧延时', - 'type' => 'string', - 'example' => '400', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻', - 'type' => 'string', - 'example' => '2021-12-10T20:00:00Z', - ], - ], - ], - ], - 'RequestId' => [ - 'title' => 'Id', - 'description' => 'Id', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'StartTime' => [ - 'description' => '起始时间', - 'type' => 'string', - 'example' => '2021-12-10T20:00:00Z', - ], - ], + [ + 'apiName' => 'UpdateCustomLiveStreamTranscode', + 'description' => '更新自定义转码配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateCustomLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Meter.ParamError', - 'errorMessage' => 'Param Error:%s,Please Check Again.', + [ + 'apiName' => 'UpdateCasterSceneConfig', + 'description' => '更新导播场景配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateCasterSceneConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - 403 => [ - [ - 'errorCode' => 'Meter.AuthError', - 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + [ + 'apiName' => 'DeleteLiveLazyPullStreamInfoConfig', + 'description' => '删除触发拉流配置信息', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveLazyPullStreamInfoConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - 500 => [ - [ - 'errorCode' => 'Meter.ServerInternalError', - 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', - ], - [ - 'errorCode' => 'Meter.DataSourceQueryError', - 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + [ + 'apiName' => 'DescribeCasterVideoResources', + 'description' => '查询导播台视频源', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterVideoResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - 502 => [ - [ - 'errorCode' => 'Meter.ReadyTsError', - 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + [ + 'apiName' => 'CheckLiveMessageUsersOnline', + 'description' => '查询指定的用户是否在线', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:CheckLiveMessageUsersOnline', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"EndTime\\": \\"2021-12-10T21:00:00Z\\",\\n \\"FrameDelayData\\": [\\n {\\n \\"FrameDelay\\": \\"400\\",\\n \\"TimeStamp\\": \\"2021-12-10T20:00:00Z\\"\\n }\\n ],\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"StartTime\\": \\"2021-12-10T20:00:00Z\\"\\n}","type":"json"}]', - 'title' => '查询首帧延时', - 'description' => '本接口用于查询时间范围内获首帧延时.'."\n" - .'QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制。', - ], - 'DescribeRTSNativeSDKVvData' => [ - 'summary' => '获取某一段时间内播放次数,含总次数和成功次数', - 'methods' => [ - 'get', - 'post', + [ + 'apiName' => 'ModifyLiveAIStudio', + 'description' => '修改虚拟演播模板', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveAIStudio', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'RemoveShowFromShowList', + 'description' => '删除节目单中的节目', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:RemoveShowFromShowList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeChannelParticipants', + 'description' => '查询频道内在线用户列表', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeChannelParticipants', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'DescribeLivePushProxyLog', + 'description' => '查询转推离线日志下载地址', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', + 'ramAction' => [ + 'action' => 'live:DescribeLivePushProxyLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '开始时间'."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-12-10T20:00:00Z', + [ + 'apiName' => 'DeleteLiveAIStudio', + 'description' => '删除虚拟演播模板', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAIStudio', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间'."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-12-10T21:00:00Z', + ], + [ + 'apiName' => 'CreateLivePrivateLine', + 'description' => '创建全球加速实例并绑定到直播链路', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLivePrivateLine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DataInterval', - 'in' => 'query', - 'schema' => [ - 'description' => '时间粒度,支持300, 3600, 14400, 28800和86400秒。不传和传的值不支持时,使用默认值300秒。', - 'type' => 'string', - 'required' => false, - 'example' => '300', + ], + [ + 'apiName' => 'EnableLiveRealtimeLogDelivery', + 'description' => '开启域名实时日志投递', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:EnableLiveRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DomainNameList', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '数组。', - 'type' => 'array', - 'items' => [ - 'description' => '默认查询全部(2.1.0及版本以上),也可指定具体的域名,多个域名用半角逗号(,)分隔,一次最多支持500个域名查询。', - 'type' => 'string', - 'required' => false, - 'example' => 'a.example.com', - ], - 'required' => false, + ], + [ + 'apiName' => 'DescribeRTSNativeSDKVvData', + 'description' => '查询播放次数', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeRTSNativeSDKVvData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'DataInterval' => [ - 'description' => '时间粒度', - 'type' => 'string', - 'example' => '300', - ], - 'EndTime' => [ - 'description' => '结束时间', - 'type' => 'string', - 'example' => '2021-12-10T21:00:00Z', - ], - 'RequestId' => [ - 'title' => 'Id', - 'description' => 'Id', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F4CD8', - ], - 'StartTime' => [ - 'description' => '起始时间', - 'type' => 'string', - 'example' => '2021-12-10T20:00:00Z', - ], - 'VvData' => [ - 'description' => '每个时间间隔的总播放次数和总成功播放次数,单位:次数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻', - 'type' => 'string', - 'example' => '2021-12-10T20:00:00Z', - ], - 'VvSuccess' => [ - 'description' => '指定时间内的成功播放的总次数', - 'type' => 'string', - 'example' => '99', - ], - 'VvTotal' => [ - 'description' => '指定时间内的总播放次数', - 'type' => 'string', - 'example' => '100', - ], - ], - ], - ], - ], + [ + 'apiName' => 'DescribeLiveStreamsOnlineList', + 'description' => '查询域名在线流列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsOnlineList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Meter.ParamError', - 'errorMessage' => 'Param Error:%s,Please Check Again.', + [ + 'apiName' => 'RecoverLiveMessageDeletedGroup', + 'description' => '恢复已删除的互动消息群组', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:RecoverLiveMessageDeletedGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], - 403 => [ - [ - 'errorCode' => 'Meter.AuthError', - 'errorMessage' => 'Authentication Failed,Please Try Again.', + ], + [ + 'apiName' => 'DescribeLiveStreamPreloadTasks', + 'description' => '查询直播预热任务', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamPreloadTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - 500 => [ - [ - 'errorCode' => 'Meter.ServerInternalError', - 'errorMessage' => 'The Request Processing Has Failed Due To Some Unknown Error.', - ], - [ - 'errorCode' => 'Meter.DataSourceQueryError', - 'errorMessage' => 'Data Source Error:%s,Please Try Again.', + ], + [ + 'apiName' => 'UpdateLiveStreamMonitor', + 'description' => '更新监播室', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveStreamMonitor', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 502 => [ - [ - 'errorCode' => 'Meter.ReadyTsError', - 'errorMessage' => 'Get ReadyTs Failed,Please Try Again.', + ], + [ + 'apiName' => 'ModifyLiveMessageAppCallback', + 'description' => '修改直播互动应用回调信息', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveMessageAppCallback', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"EndTime\\": \\"2021-12-10T21:00:00Z\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F4CD8\\",\\n \\"StartTime\\": \\"2021-12-10T20:00:00Z\\",\\n \\"VvData\\": [\\n {\\n \\"TimeStamp\\": \\"2021-12-10T20:00:00Z\\",\\n \\"VvSuccess\\": \\"99\\",\\n \\"VvTotal\\": \\"100\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => '查询播放次数', - 'description' => 'QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制。', - ], - 'DescribeLiveRealtimeLogAuthorized' => [ - 'summary' => '查询用户实时日志投递授权状态。', - 'methods' => [ - 'get', + [ + 'apiName' => 'DescribeLiveDomainTimeShiftData', + 'description' => '查询直播时移用量数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainTimeShiftData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ModifyLiveMessageGroupBand', + 'description' => '修改用户禁言状态', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveMessageGroupBand', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DeleteLiveDomainPlayMapping', + 'description' => '删除播流域名的映射关系', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveDomainPlayMapping', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElive066BXV', + [ + 'apiName' => 'CheckLiveMessageUsersInGroup', + 'description' => '查询指定用户是否在群组中', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:CheckLiveMessageUsersInGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'UpdateEventSub', + 'description' => '更新订阅房间消息回调', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:UpdateEventSub', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], - [ - 'name' => 'LiveOpenapiReserve', - 'in' => 'query', - 'schema' => [ - 'description' => '该参数暂无实际意义。', - 'type' => 'string', - 'required' => false, - 'example' => '无', + ], + [ + 'apiName' => 'AddCasterEpisodeGroup', + 'description' => '添加导播台节目列表', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterEpisodeGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'AuthorizedStatus' => [ - 'description' => '授权状态。-**true**:已授权。-**false**:未授权。', - 'type' => 'string', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5c6a2a0df228-4a64- af62-20e91b******'."\n", - ], - ], + [ + 'apiName' => 'UnbanLiveMessageGroup', + 'description' => '解除群组全员禁言', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UnbanLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AuthorizedStatus\\": \\"true\\",\\n \\"RequestId\\": \\"5c6a2a0df228-4a64- af62-20e91b******\\\\n\\"\\n}","type":"json"}]', - 'title' => '查询用户实时日志投递授权状态', - 'description' => '调用本接口查询用户实时日志投递授权状态'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DescribeUpBpsPeakData' => [ - 'summary' => '查询用户的每日上行带宽峰值。', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'DeleteLiveStreamWatermarkRule', + 'description' => '删除水印规则', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamWatermarkRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DescribeLiveStreamWatermarks', + 'description' => '查询水印模板列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamWatermarks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'SendMessageToGroupUsers', + 'description' => '向消息组内指定用户发送消息(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:SendMessageToGroupUsers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'DescribeDomainWithIntegrity', + 'description' => '获取域名完整性', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', + 'ramAction' => [ + 'action' => 'live:DescribeDomainWithIntegrity', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DescribeLiveEdgeTransfer', + 'description' => '查询直播转推配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveEdgeTransfer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '拉流开始时间,UTC格式,StartTime和EndTime时间间隔在30天内。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-10-10T20:00:00Z', + ], + [ + 'apiName' => 'CreateMessageGroup', + 'description' => '创建消息组(旧版)', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '拉流结束时间,UTC格式, StartTime和EndTime时间间隔在30天内,且EndTime超过当前时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-10-10T21:00:00Z', + ], + [ + 'apiName' => 'CreateCustomTemplate', + 'description' => '创建合流自定义模板', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateCustomTemplate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DomainSwitch', - 'in' => 'query', - 'schema' => [ - 'description' => '域名统计开关,取值:'."\n" - ."\n" - .'- on:开启域名统计级别。'."\n" - .'- off:用户级别数据。默认统计用户级别数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'on', - 'enum' => [ - 'on', - 'off', - ], + ], + [ + 'apiName' => 'AddLiveMessageGroupBand', + 'description' => '新增禁言用户', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:AddLiveMessageGroupBand', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', + ], + [ + 'apiName' => 'RemoveLiveMessageGroupBand', + 'description' => '解除禁言用户', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:RemoveLiveMessageGroupBand', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '带宽信息。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], - 'DescribeUpPeakTraffics' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DescribeUpPeakTraffic' => [ - 'description' => '每日上行峰值带宽信息', - 'type' => 'array', - 'items' => [ - 'description' => '每日上行峰值带宽信息', - 'type' => 'object', - 'properties' => [ - 'QueryTime' => [ - 'description' => '查询的每日时间。', - 'type' => 'string', - 'example' => '1522080000000', - ], - 'BandWidth' => [ - 'description' => '每日峰值上行峰值带宽。', - 'type' => 'string', - 'example' => '777.2727083333333', - ], - 'StatName' => [ - 'description' => '计数据属性名称。当DomainSwitch取值为on时,显示用户直播域名;为off或者不传值是显示用户Id。', - 'type' => 'string', - 'example' => 'push-live.aliyuncs.com', - ], - 'PeakTime' => [ - 'description' => '每日峰值上行带宽的峰值时刻。', - 'type' => 'string', - 'example' => '1522180000000', - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'UpdateMessageApp', + 'description' => '更新互动消息应用信息(旧版)', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime is invalid.', + [ + 'apiName' => 'DescribeLiveStreamHistoryUserNum', + 'description' => '查询直播流历史在线人数', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamHistoryUserNum', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', + ], + ], + [ + 'apiName' => 'BanLiveMessageGroup', + 'description' => '群组全员禁言', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:BanLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'apiName' => 'ListRtcMPUEventSubRecord', + 'description' => '查询混流转推事件订阅记录', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListRtcMPUEventSubRecord', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'apiName' => 'DescribeCasterSceneAudio', + 'description' => '查询场景音频配置信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterSceneAudio', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ], + [ + 'apiName' => 'DescribeLivePackageConfig', + 'description' => '查询直播封装配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLivePackageConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"DescribeUpPeakTraffics\\": {\\n \\"DescribeUpPeakTraffic\\": [\\n {\\n \\"QueryTime\\": \\"1522080000000\\",\\n \\"BandWidth\\": \\"777.2727083333333\\",\\n \\"StatName\\": \\"push-live.aliyuncs.com\\",\\n \\"PeakTime\\": \\"1522180000000\\"\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '查询用户的每日上行带宽峰值', - 'description' => '调用接口查询用户的每日上行带宽峰值。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DescribeUpBpsPeakOfLine' => [ - 'summary' => '查询用户的每日某种专线上行带宽峰值', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'SetLiveStreamsNotifyUrlConfig', + 'description' => '设置推流回调通知地址配置', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:SetLiveStreamsNotifyUrlConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CreateLiveMessageGroup', + 'description' => '创建直播互动群组', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'AddTrancodeSEI', + 'description' => '添加转码 SEI 信息', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddTrancodeSEI', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'DescribeRtcCloudRecordingFiles', + 'description' => '查询Rtc云端录制文件及任务状态', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', + 'ramAction' => [ + 'action' => 'live:DescribeRtcCloudRecordingFiles', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'SetLiveLazyPullStreamInfoConfig', + 'description' => '配置触发拉流', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveLazyPullStreamInfoConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '拉流开始时间,UTC格式, StartTime和EndTime时间间隔在30天内。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-10-10T20:00:00Z'."\n", + ], + [ + 'apiName' => 'DescribeLiveStreamMetricDetailData', + 'description' => '查询指定域名流粒度批量数据', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamMetricDetailData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '拉流结束时间,UTC格式, StartTime和EndTime时间间隔在30天内,且EndTime超过当前时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-10-10T21:00:00Z'."\n", + ], + [ + 'apiName' => 'GetMessageToken', + 'description' => '获取长连接建连Token(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetMessageToken', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Line', - 'in' => 'query', - 'schema' => [ - 'description' => '专线。取值范围支持【0,9】内的整数。', - 'type' => 'string', - 'required' => true, - 'example' => '3', - 'enum' => [ - '0', - '1', - '2', - '3', - '4', - '5', - '6', - '7', - '8', - '9', - ], + ], + [ + 'apiName' => 'DeleteLiveSnapshotDetectPornConfig', + 'description' => '删除直播审核配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveSnapshotDetectPornConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DomainSwitch', - 'in' => 'query', - 'schema' => [ - 'description' => '域名统计开关,取值:'."\n" - ."\n" - .'- on:开启域名统计级别。'."\n" - .'- off:用户级别数据,默认统计用户级别数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'on', - 'enum' => [ - 'on', - 'off', - ], + ], + [ + 'apiName' => 'AddRtsLiveStreamTranscode', + 'description' => '添加RTS自定义转码配置信息', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddRtsLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', + ], + [ + 'apiName' => 'DeleteMixStream', + 'description' => '删除合流任务', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteMixStream', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '带宽信息。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****', - ], - 'DescribeUpBpsPeakOfLines' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DescribeUpBpsPeakOfLine' => [ - 'description' => '每日上行专线峰值带宽信息。', - 'type' => 'array', - 'items' => [ - 'description' => '每日上行专线峰值带宽信息。', - 'type' => 'object', - 'properties' => [ - 'QueryTime' => [ - 'description' => '查询的每日时间。', - 'type' => 'string', - 'example' => '1522080000000'."\n", - ], - 'StatName' => [ - 'description' => '统计数据属性名称。当DomainSwitch取值为on时,显示用户直播域名;为off或者不传值是显示用户Id。', - 'type' => 'string', - 'example' => 'push-live.aliyuncs.com', - ], - 'BandWidth' => [ - 'description' => '每日峰值上行专线峰值带宽。', - 'type' => 'number', - 'format' => 'float', - 'example' => '777.2727083333333'."\n", - ], - 'PeakTime' => [ - 'description' => '每日峰值上行专线带宽的峰值时刻。', - 'type' => 'string', - 'example' => '1522180000000', - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'SendLiveMessageGroup', + 'description' => '发送消息到群组', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:SendLiveMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], ], - 'errorCodes' => [ - 401 => [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', + [ + 'apiName' => 'ListLiveMessageGroupByPage', + 'description' => '查询互动消息群组列表(支持翻页)', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListLiveMessageGroupByPage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ], + [ + 'apiName' => 'DescribeStreamLocationBlock', + 'description' => '查询直播流粒度封禁', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeStreamLocationBlock', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6CFDE7AB-571A-14EA-B072-989FF753****\\",\\n \\"DescribeUpBpsPeakOfLines\\": {\\n \\"DescribeUpBpsPeakOfLine\\": [\\n {\\n \\"QueryTime\\": \\"1522080000000\\\\n\\",\\n \\"StatName\\": \\"push-live.aliyuncs.com\\",\\n \\"BandWidth\\": 777.2727083333333,\\n \\"PeakTime\\": \\"1522180000000\\"\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '查询用户的每日某种专线上行带宽峰值', - 'description' => '调用接口查询用户的每日某种专线上行带宽峰值。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为5次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DescribeUpPeakPublishStreamData' => [ - 'summary' => '查询用户的每日上行并发推流数峰值。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ModifyShowList', + 'description' => '修改播单属性', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyShowList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'UpdateRtcCloudRecording', + 'description' => '更新Rtc云端录制任务', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateRtcCloudRecording', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveYUZBM3', + [ + 'apiName' => 'DeleteLiveRecordVodConfig', + 'description' => '删除直播录制转点播配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveRecordVodConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'ListEventSub', + 'description' => '查询订阅房间消息列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListEventSub', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '拉流开始时间,UTC格式, StartTime和EndTime时间间隔在30天内。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-10-10T20:00:00Z'."\n", + ], + [ + 'apiName' => 'DescribeLiveDomainLog', + 'description' => '查询日志下载地址', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '拉流结束时间,UTC格式, StartTime和EndTime时间间隔在30天内,且EndTime超过当前时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-10-10T22:00:00Z'."\n", + ], + [ + 'apiName' => 'ModifyStudioLayout', + 'description' => '修改虚拟演播厅布局', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyStudioLayout', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - 'name' => 'DomainSwitch', - 'in' => 'query', - 'schema' => [ - 'description' => '域名统计开关,取值:'."\n" - ."\n" - .'- on:开启域名统计级别。'."\n" - .'- off:用户级别数据,默认统计用户级别数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'on', - 'enum' => [ - 'on', - 'off', - ], + ], + [ + 'apiName' => 'DescribeLiveRecordVodConfigs', + 'description' => '查询直播录制转点播配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRecordVodConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', + ], + [ + 'apiName' => 'ListEventSubEvent', + 'description' => '查询回调记录', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListEventSubEvent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '推流数据。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '6CFDE7AB-571A-14EA-B072-989FF753****'."\n", - ], - 'DescribeUpPeakPublishStreamDatas' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DescribeUpPeakPublishStreamData' => [ - 'description' => '每日峰值并发推流数据。', - 'type' => 'array', - 'items' => [ - 'description' => '每日峰值并发推流数据。', - 'type' => 'object', - 'properties' => [ - 'QueryTime' => [ - 'description' => '查询的每日时间。', - 'type' => 'string', - 'example' => '1522080000000'."\n", - ], - 'BandWidth' => [ - 'description' => '每日上行峰值带宽。', - 'type' => 'string', - 'example' => '777.2727083333333', - ], - 'StatName' => [ - 'description' => '统计数据属性名称。当DomainSwitch取值为on时,显示用户直播域名;为off或者不传值是显示用户Id。', - 'type' => 'string', - 'example' => 'push-live.aliyuncs.com', - ], - 'PeakTime' => [ - 'description' => '每日峰值并发推流数的峰值时刻。', - 'type' => 'string', - 'example' => '1522180000000'."\n", - ], - 'PublishStreamNum' => [ - 'description' => '每日峰值并发推流数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '36', - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'DeleteCasterVideoResource', + 'description' => '删除导播台视频资源', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterVideoResource', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime is invalid.', + [ + 'apiName' => 'DescribeLiveUserTags', + 'description' => '获取直播用户标签', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveUserTags', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'Specified EndTime is malformed.', + ], + ], + [ + 'apiName' => 'AddLiveAIProduceRules', + 'description' => '添加实时字幕规则', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveAIProduceRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'apiName' => 'DescribeLiveStreamsBlockList', + 'description' => '获取域名下直播流播放的黑名单', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsBlockList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidCaster.NotFound', - 'errorMessage' => '%s, please check and try again later.', + ], + [ + 'apiName' => 'CreateRtcAsrTask', + 'description' => '创建实时语音转文字或翻译', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateRtcAsrTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s, please try again later.', + ], + [ + 'apiName' => 'SetLiveStreamBlock', + 'description' => '设置直播流粒度封禁', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetLiveStreamBlock', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6CFDE7AB-571A-14EA-B072-989FF753****\\\\n\\",\\n \\"DescribeUpPeakPublishStreamDatas\\": {\\n \\"DescribeUpPeakPublishStreamData\\": [\\n {\\n \\"QueryTime\\": \\"1522080000000\\\\n\\",\\n \\"BandWidth\\": \\"777.2727083333333\\",\\n \\"StatName\\": \\"push-live.aliyuncs.com\\",\\n \\"PeakTime\\": \\"1522180000000\\\\n\\",\\n \\"PublishStreamNum\\": 36\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '查询用户的每日上行并发推流数峰值', - 'description' => '调用接口查询用户的每日上行并发推流数峰值。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DescribeDomainWithIntegrity' => [ - 'summary' => '调用接口获取域名完整性', - 'methods' => [ - 'get', + [ + 'apiName' => 'SendMessageToGroup', + 'description' => '向消息组全员发送消息(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:SendMessageToGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'AddCasterVideoResource', + 'description' => '添加导播台视频资源', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterVideoResource', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'StopRtcCloudTranscode', + 'description' => '停止云端转码任务', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:StopRtcCloudTranscode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'UpdateLiveDelayConfig', + 'description' => '更新直播延播配置', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '112159', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:UpdateLiveDelayConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'DescribeLiveStreamsNotifyUrlConfig', + 'description' => '查询直播推流回调配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamsNotifyUrlConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-10-10T20:00:00Z', + ], + [ + 'apiName' => 'AddLiveDomain', + 'description' => '添加直播域名', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间需大于起始时间;获日期格式按照ISO8601表示法,并使用UTC时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-10-10T20:00:00Z', + ], + [ + 'apiName' => 'StartCaster', + 'description' => '启动导播台', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StartCaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - 'name' => 'Integrity', - 'in' => 'query', - 'schema' => [ - 'description' => '校验完整度。', - 'type' => 'number', - 'format' => 'float', - 'required' => true, - 'example' => '0.95', + ], + [ + 'apiName' => 'UpdateLiveSnapshotNotifyConfig', + 'description' => '修改截图回调配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveSnapshotNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], - 'Content' => [ - 'description' => '校验内容。', - 'type' => 'array', - 'items' => [ - 'description' => '校验内容。', - 'type' => 'object', - 'properties' => [ - 'Name' => [ - 'description' => '表名。', - 'type' => 'string', - 'example' => '1637825700000', - ], - 'Points' => [ - 'description' => '子Points。', - 'type' => 'array', - 'items' => [ - 'description' => '对应列的数值', - 'type' => 'string', - 'example' => '1637825700000', - ], - ], - 'Columns' => [ - 'description' => '列名', - 'type' => 'array', - 'items' => [ - 'description' => '列名', - 'type' => 'string', - 'example' => 'time', - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'BatchGetOnlineUsers', + 'description' => '查询用户是否在线(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:BatchGetOnlineUsers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"Content\\": [\\n {\\n \\"Name\\": \\"1637825700000\\",\\n \\"Points\\": [\\n \\"1637825700000\\"\\n ],\\n \\"Columns\\": [\\n \\"time\\"\\n ]\\n }\\n ]\\n}","type":"json"}]', - 'title' => '获取域名完整性', - 'description' => '调用接口获取域名完整性'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DescribeToutiaoLivePlay' => [ - 'summary' => '获取头条指定直播流的拉流信息', - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'StartCasterScene', + 'description' => '启动导播台场景', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StartCasterScene', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CreateLiveAIStudio', + 'description' => '创建虚拟演播模版', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveAIStudio', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DeleteSnapshotFiles', + 'description' => '删除直播截图文件', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteSnapshotFiles', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'DescribeLiveRecordNotifyConfig', + 'description' => '查询域名级别录制回调配置', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRecordNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'UpdateLiveAppSnapshotConfig', + 'description' => '更新直播截图配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLiveAppSnapshotConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-10-10T20:00:00Z', + ], + [ + 'apiName' => 'CloseLiveShift', + 'description' => '关闭时移服务', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'live:CloseLiveShift', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间需大于起始时间,时间跨度不得大于10小时,StartTime和EndTime都不填则默认查询当前一小时的数据;获日期格式按照ISO8601表示法,并使用UTC时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-10-10T21:00:00Z', + ], + [ + 'apiName' => 'GetMessageGroup', + 'description' => '获取消息组详情(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetMessageGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + ], + [ + 'apiName' => 'AddLiveRecordVodConfig', + 'description' => '添加直播录制转点播配置', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveRecordVodConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'Stream', - 'in' => 'query', - 'schema' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', + ], + [ + 'apiName' => 'DescribeLiveDomainOnlineUserNum', + 'description' => '查询域名下所有流某分钟的在线人数信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainOnlineUserNum', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'App', - 'in' => 'query', - 'schema' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', + ], + [ + 'apiName' => 'CreateRtcMPUEventSub', + 'description' => '创建混流转推事件订阅', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateRtcMPUEventSub', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'description' => '响应状态描述。', - 'type' => 'string', - 'example' => 'OK', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], - 'Content' => [ - 'description' => '播流信息详情。', - 'type' => 'array', - 'items' => [ - 'description' => '播流信息详情。', - 'type' => 'object', - 'properties' => [ - 'Domain' => [ - 'description' => '播流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Bandwidth' => [ - 'description' => '带宽。单位:Mbps', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.0801239013671875', - ], - 'StreamName' => [ - 'description' => '播流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'App' => [ - 'description' => '播流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****'."\n", - ], - 'PlayNum' => [ - 'description' => '观看人数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '452', - ], - 'Timestamp' => [ - 'description' => '时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1625484600', - ], - 'CdnName' => [ - 'description' => 'Cdn名称。', - 'type' => 'string', - 'example' => 'ali', - ], - ], - ], - ], - ], + [ + 'apiName' => 'DeletePlaylist', + 'description' => '删除播放列表', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeletePlaylist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"OK\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"Content\\": [\\n {\\n \\"Domain\\": \\"example.com\\",\\n \\"Bandwidth\\": 0.0801239013671875,\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"App\\": \\"liveApp****\\\\n\\",\\n \\"PlayNum\\": 452,\\n \\"Timestamp\\": 1625484600,\\n \\"CdnName\\": \\"ali\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => '头条拉流查询接口', - 'description' => '调用接口查询头条指定直播流的拉流信息。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DescribeToutiaoLivePublish' => [ - 'summary' => '获取头条指定直播流的推流信息', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteLiveStreamWatermark', + 'description' => '删除⽔印模板', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamWatermark', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ModifyLiveMessageAppAudit', + 'description' => '修改直播互动应用鉴权信息', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveMessageAppAudit', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'DescribeLiveAISubtitle', + 'description' => '查询字幕模板', 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveG4SX14', + 'ramAction' => [ + 'action' => 'live:DescribeLiveAISubtitle', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - 'default' => 'cn-shanghai', + [ + 'apiName' => 'QueryLiveDomainMultiStreamList', + 'description' => '查询双流灾备在线记录', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:QueryLiveDomainMultiStreamList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-10-10T20:00:00Z'."\n", + ], + [ + 'apiName' => 'DescribeCasterProgram', + 'description' => '查询导播台节目单', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterProgram', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间需大于起始时间,时间跨度不得大于10小时,StartTime和EndTime都不填则默认查询当前一小时的数据;获日期格式按照ISO8601表示法,并使用UTC时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2017-10-10T21:00:00Z'."\n", + ], + [ + 'apiName' => 'AddStudioLayout', + 'description' => '添加虚拟演播厅布局', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddStudioLayout', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - 'name' => 'Domain', - 'in' => 'query', - 'schema' => [ - 'description' => '推流域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + ], + [ + 'apiName' => 'RestartLivePullToPush', + 'description' => '重启拉流转推任务', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:RestartLivePullToPush', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Stream', - 'in' => 'query', - 'schema' => [ - 'description' => '推流名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveStream****', + ], + [ + 'apiName' => 'DescribeLiveDomainPushBpsData', + 'description' => '查询推流域名推流网络带宽监控数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainPushBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'App', - 'in' => 'query', - 'schema' => [ - 'description' => '推流所属应用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'liveApp****', + ], + [ + 'apiName' => 'AddLiveDomainMapping', + 'description' => '添加播流域名和推流域名的映射关系', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveDomainMapping', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'description' => '响应状态描述。', - 'type' => 'string', - 'example' => 'OK'."\n", - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '16A96B9A-F203-4EC5-8E43-CB92E68F****', - ], - 'Content' => [ - 'description' => '推流信息详情。', - 'type' => 'array', - 'items' => [ - 'description' => '推流信息详情。', - 'type' => 'object', - 'properties' => [ - 'Domain' => [ - 'description' => '推流域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'StreamName' => [ - 'description' => '推流名称。', - 'type' => 'string', - 'example' => 'liveStream****', - ], - 'App' => [ - 'description' => '推流所属应用名称。', - 'type' => 'string', - 'example' => 'liveApp****'."\n", - ], - 'Fps' => [ - 'description' => '帧率。', - 'type' => 'number', - 'format' => 'float', - 'example' => '74.4', - ], - 'Flr' => [ - 'description' => '丢帧数。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'Timestamp' => [ - 'description' => '时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1624358970', - ], - 'Bitrate' => [ - 'description' => '码率,单位为比特每秒(bit/s)。', - 'type' => 'number', - 'format' => 'float', - 'example' => '261587', - ], - 'BwDiff' => [ - 'description' => '码率差值。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'CdnName' => [ - 'description' => 'Cdn名称。', - 'type' => 'string', - 'example' => 'ali', - ], - ], - ], - ], - ], + [ + 'apiName' => 'ModifyLiveMessageAppDisable', + 'description' => '修改直播互动应用禁用信息', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveMessageAppDisable', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Description\\": \\"OK\\\\n\\",\\n \\"RequestId\\": \\"16A96B9A-F203-4EC5-8E43-CB92E68F****\\",\\n \\"Content\\": [\\n {\\n \\"Domain\\": \\"example.com\\",\\n \\"StreamName\\": \\"liveStream****\\",\\n \\"App\\": \\"liveApp****\\\\n\\",\\n \\"Fps\\": 74.4,\\n \\"Flr\\": 0,\\n \\"Timestamp\\": 1624358970,\\n \\"Bitrate\\": 261587,\\n \\"BwDiff\\": 0,\\n \\"CdnName\\": \\"ali\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => '头条推流查询接口', - 'description' => '调用接口查询头条指定直播流的推流信息。'."\n" - .'## QPS限制'."\n" - .'本接口的单用户QPS限制为100次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见[QPS限制](~~343507~~)。', - ], - 'DescribeRtcCloudTranscode' => [ - 'summary' => '查询云端转码任务。', - 'path' => '', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'StopLiveMPUTask', + 'description' => '停止混流转推任务(新)', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:StopLiveMPUTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', + [ + 'apiName' => 'DescribeLiveDelayedStreamingUsage', + 'description' => '查询延播时长数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDelayedStreamingUsage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], ], - 'tenantRelevance' => 'tenant', ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用 ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。', - 'type' => 'string', - 'required' => true, - 'example' => '********-7074-****-9ef5-85c19a4*****', + [ + 'apiName' => 'ListMessage', + 'description' => '查询消息列表(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListMessage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '云端转码任务ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。', - 'type' => 'string', - 'required' => true, - 'example' => '******73-8501-****-8ac1-72295a******', + ], + [ + 'apiName' => 'DescribeLiveRecordNotifyRecords', + 'description' => '查询直播录制回调记录', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveRecordNotifyRecords', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回内容。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], - 'TaskInfo' => [ - 'description' => '云端转码任务详情信息。', - 'type' => 'object', - 'properties' => [ - 'AppId' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'example' => '********-7074-****-9ef5-85c19a4*****', - ], - 'ChannelId' => [ - 'description' => '频道ID。', - 'type' => 'string', - 'example' => 'myChannel', - ], - 'TaskId' => [ - 'description' => '云端转码任务ID。', - 'type' => 'string', - 'example' => '******73-8501-****-8ac1-72295a******', - ], - 'Status' => [ - 'description' => '云端转码任务状态:'."\n" - ."\n" - .'- STARTING'."\n" - .'- RUNNING'."\n" - .'- RECOVERING'."\n" - .'- STOPPED', - 'type' => 'string', - 'example' => 'RUNNING', - ], - 'InputParam' => [ - 'description' => '订阅输入相关参数。', - 'type' => 'object', - 'properties' => [ - 'SingleSubUserParam' => [ - 'description' => '单流订阅输入参数。', - 'type' => 'object', - 'properties' => [ - 'UserId' => [ - 'description' => '订阅的用户ID。', - 'type' => 'string', - 'example' => 'userA', - ], - 'StreamType' => [ - 'description' => '订阅用户的媒体类型。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - 'SourceType' => [ - 'description' => '订阅的视频输入流类型。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '0', - ], - ], - ], - ], - ], - 'OutputParams' => [ - 'description' => '转码输出相关参数。', - 'type' => 'array', - 'items' => [ - 'description' => '转码输出参数。', - 'type' => 'object', - 'properties' => [ - 'ChannelId' => [ - 'description' => '转码流转推到的频道ID。', - 'type' => 'string', - 'example' => 'myChannel', - ], - 'UserId' => [ - 'description' => '转码流转推到频道的用户ID。', - 'type' => 'string', - 'example' => 'userA_360p', - ], - 'UserToken' => [ - 'description' => '转码流转推到频道所需的用户Token。', - 'type' => 'string', - 'example' => 'eyJhcHBpZCI********', - ], - 'TranscodeTemplate' => [ - 'description' => '转码模板名。', - 'type' => 'string', - 'example' => 'lhd', - ], - ], - ], - ], - 'MaxIdleTime' => [ - 'description' => '空闲超时时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '600', - ], - ], - ], - ], + [ + 'apiName' => 'UpdateLivePullToPush', + 'description' => '更新拉流转推任务', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateLivePullToPush', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter%s', - 'errorMessage' => '%s.', + [ + 'apiName' => 'GetCustomTemplate', + 'description' => '获取自定义合流模板', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:GetCustomTemplate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'MissingParameter%s', - 'errorMessage' => '%s.', + ], + ], + [ + 'apiName' => 'ModifyLiveMessageUserInfo', + 'description' => '修改用户信息', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:ModifyLiveMessageUserInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => '%s.', + ], + ], + [ + 'apiName' => 'DeleteLiveAppSnapshotConfig', + 'description' => '删除直播截图配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAppSnapshotConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s.', + ], + [ + 'apiName' => 'AddLiveAppSnapshotConfig', + 'description' => '添加直播截图配置', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveAppSnapshotConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - [ - 'errorCode' => 'NotFound%s', - 'errorMessage' => '%s.', + ], + [ + 'apiName' => 'DescribeLiveDomainPushTrafficData', + 'description' => '查询推流域名推流流量监控数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainPushTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', + ], + [ + 'apiName' => 'ListMessageApp', + 'description' => '查询互动消息应用列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'StopLivePullToPush', + 'description' => '停止拉流转推任务', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopLivePullToPush', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TaskInfo\\": {\\n \\"AppId\\": \\"********-7074-****-9ef5-85c19a4*****\\",\\n \\"ChannelId\\": \\"myChannel\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\",\\n \\"Status\\": \\"RUNNING\\",\\n \\"InputParam\\": {\\n \\"SingleSubUserParam\\": {\\n \\"UserId\\": \\"userA\\",\\n \\"StreamType\\": 0,\\n \\"SourceType\\": 0\\n }\\n },\\n \\"OutputParams\\": [\\n {\\n \\"ChannelId\\": \\"myChannel\\",\\n \\"UserId\\": \\"userA_360p\\",\\n \\"UserToken\\": \\"eyJhcHBpZCI********\\",\\n \\"TranscodeTemplate\\": \\"lhd\\"\\n }\\n ],\\n \\"MaxIdleTime\\": 600\\n }\\n}","type":"json"}]', - 'title' => '查询云端转码任务', - ], - 'StartRtcCloudTranscode' => [ - 'summary' => '创建云端转码任务。', - 'path' => '', - 'methods' => [ - 'post', + [ + 'apiName' => 'DescribeLiveAudioAuditConfig', + 'description' => '查询直播语音审核配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveAudioAuditConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'https', + [ + 'apiName' => 'DeleteCasterEpisodeGroup', + 'description' => '删除导播台节目列表', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteCasterEpisodeGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DescribeCasterComponents', + 'description' => '查询导播台组件列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeCasterComponents', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'PublishLiveStagingConfigToProduction', + 'description' => '将灰度配置转为生产配置', 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', + 'ramAction' => [ + 'action' => 'live:PublishLiveStagingConfigToProduction', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], - 'tenantRelevance' => 'tenant', ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '频道所属的应用 ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。', - 'type' => 'string', - 'required' => true, - 'example' => '********-7074-****-9ef5-85c19a4*****', + [ + 'apiName' => 'StopLiveStreamMonitor', + 'description' => '停止监播', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopLiveStreamMonitor', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ChannelId', - 'in' => 'query', - 'schema' => [ - 'description' => '待转码用户所属的频道 ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'myChannel', + ], + [ + 'apiName' => 'DescribeLiveLazyPullStreamConfig', + 'description' => '查询触发拉流配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveLazyPullStreamConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'InputParam', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '订阅输入相关参数。', - 'type' => 'object', - 'properties' => [ - 'SingleSubUserParam' => [ - 'description' => '单流订阅输入参数。', - 'type' => 'object', - 'properties' => [ - 'UserId' => [ - 'description' => '订阅的用户ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'userA', - ], - 'StreamType' => [ - 'description' => '订阅用户的媒体类型。取值:'."\n" - ."\n" - .'- 0(默认值):原始流,包含音频与视频流。'."\n" - .'- 1:仅音频流。(暂不支持,设置无效)'."\n" - .'- 2:仅视频流。(暂不支持,设置无效)', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '0', - ], - 'SourceType' => [ - 'description' => '订阅的视频输入流类型,仅订阅媒体类型包含视频流有效。取值:'."\n" - ."\n" - .'- 0(默认值):摄像头。'."\n" - .'- 1:屏幕共享。(暂不支持,设置无效)', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '0', - ], - ], - 'required' => true, - ], - ], - 'required' => true, + ], + [ + 'apiName' => 'DescribeLiveStreamBitRateData', + 'description' => '查询RTMP协议直播流的帧率和码率', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveStreamBitRateData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'OutputParams', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '转码输出相关参数。', - 'type' => 'array', - 'items' => [ - 'description' => '转码输出参数。', - 'type' => 'object', - 'properties' => [ - 'ChannelId' => [ - 'description' => '转码流转推到的频道ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。(暂不支持转推到不同的频道,设置无效)', - 'type' => 'string', - 'required' => true, - 'example' => 'myChannel', - ], - 'UserId' => [ - 'description' => '转码流转推到频道的用户ID,需保证与频道内其它用户ID不同。', - 'type' => 'string', - 'required' => true, - 'example' => 'userA_360p', - ], - 'UserToken' => [ - 'description' => '转码流转推到频道所需的用户Token,详见[Token鉴权](https://help.aliyun.com/zh/live/token-based-authentication)。', - 'type' => 'string', - 'required' => true, - 'example' => 'eyJhcHBpZCI********', - ], - 'TranscodeTemplate' => [ - 'description' => '转码模板名。取值:'."\n" - ."\n" - .'- alimcopy'."\n" - .'- lld'."\n" - .'- lsd'."\n" - .'- lhd'."\n" - .'- lud', - 'type' => 'string', - 'required' => true, - 'example' => 'lhd', - ], - ], - 'required' => false, - ], - 'required' => true, + ], + [ + 'apiName' => 'ListMuteGroupUser', + 'description' => '查询被禁言的消息组成员(旧版)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:ListMuteGroupUser', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'MaxIdleTime', - 'in' => 'query', - 'schema' => [ - 'description' => '空闲超时时间,当任务处于空闲状态(订阅不到指定主播流)的时长超过一定时间会自动停止。'."\n" - .'单位为秒,范围须在[10,14400]内,即最大 4 小时,默认为 300 秒。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '600', + ], + [ + 'apiName' => 'DeleteRtcMPUEventSub', + 'description' => '删除混流转推事件订阅', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteRtcMPUEventSub', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回内容。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], - 'TaskId' => [ - 'description' => '云端转码任务ID。', - 'type' => 'string', - 'example' => '******73-8501-****-8ac1-72295a******', - ], - ], + [ + 'apiName' => 'AddLiveSnapshotNotifyConfig', + 'description' => '添加截图回调配置', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveSnapshotNotifyConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter%s', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'MissingParameter%s', - 'errorMessage' => '%s.', - ], - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => '%s.', + [ + 'apiName' => 'DescribeLiveDomainMonitoringUsageData', + 'description' => '获取域名广目监播用量', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainMonitoringUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s.', + ], + [ + 'apiName' => 'DescribeLiveVerifyContent', + 'description' => '查询校验归属权内容', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveVerifyContent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - [ - 'errorCode' => 'NotFound%s', - 'errorMessage' => '%s.', + ], + [ + 'apiName' => 'DescribeLiveDomainMultiStreamConfig', + 'description' => '查询双流灾备配置状态', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainMultiStreamConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', + ], + [ + 'apiName' => 'StartEdgeTranscodeJob', + 'description' => '启动边缘转码任务', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StartEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\",\\n \\"TaskId\\": \\"******73-8501-****-8ac1-72295a******\\"\\n}","type":"json"}]', - 'title' => '创建云端转码任务', - 'description' => '## 服务接入点'."\n" - .'本接口可用的服务接入点包括:'."\n" - ."\n" - .' |地域名称 |地域ID | 公网接入地址 |'."\n" - .' | --- | --- | --- |'."\n" - .' | 新加坡 | ap-southeast-1 | live.ap-southeast-1.aliyuncs.com |', - ], - 'StopRtcCloudTranscode' => [ - 'summary' => '停止云端转码任务。', - 'path' => '', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', + [ + 'apiName' => 'AddLiveStreamWatermark', + 'description' => '添加⽔印模板', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddLiveStreamWatermark', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateLivePullToPush', + 'description' => '创建拉流转推任务', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLivePullToPush', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREliveK6LRQR', + [ + 'apiName' => 'ListEdgeTranscodeJob', + 'description' => '查询边缘转码任务列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'live:ListEdgeTranscodeJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ], ], - 'tenantRelevance' => 'tenant', ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'query', - 'schema' => [ - 'description' => '应用 ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。', - 'type' => 'string', - 'required' => true, - 'example' => '********-7074-****-9ef5-85c19a4*****', + [ + 'apiName' => 'DeleteLiveAppRecordConfig', + 'description' => '解除录制配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'live:DeleteLiveAppRecordConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '云端转码任务ID。由大小写字母、数字、下划线、短划线(-)组成,最大 64 字符。', - 'type' => 'string', - 'required' => true, - 'example' => '******73-8501-****-8ac1-72295a******', + ], + [ + 'apiName' => 'AddCasterEpisodeGroupContent', + 'description' => '添加导播台节目列表', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:AddCasterEpisodeGroupContent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回内容。', - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '******3B-0E1A-586A-AC29-742247******', - ], - ], + [ + 'apiName' => 'DescribeRTSNativeSDKFirstFrameDelay', + 'description' => '查询首帧延时', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeRTSNativeSDKFirstFrameDelay', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter%s', - 'errorMessage' => '%s.', + [ + 'apiName' => 'SetCasterSceneConfig', + 'description' => '全量设置导播台场景配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:SetCasterSceneConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], - [ - 'errorCode' => 'MissingParameter%s', - 'errorMessage' => '%s.', + ], + ], + [ + 'apiName' => 'StopCaster', + 'description' => '停止导播台', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:StopCaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => '%s.', + ], + ], + [ + 'apiName' => 'CreateLiveMessageApp', + 'description' => '创建互动消息应用', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateLiveMessageApp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'Forbidden', - 'errorMessage' => '%s.', + ], + [ + 'apiName' => 'CreateCaster', + 'description' => '创建导播台', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:CreateCaster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], ], ], - [ - [ - 'errorCode' => 'NotFound%s', - 'errorMessage' => '%s.', + ], + [ + 'apiName' => 'UpdateRtsLiveStreamTranscode', + 'description' => '更新RTS自定义转码配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:UpdateRtsLiveStreamTranscode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], ], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => '%s.', + ], + [ + 'apiName' => 'DescribeLiveDomainStreamTranscodeData', + 'description' => '查询域名转码用量数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'live:DescribeLiveDomainStreamTranscodeData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'StartRtcCloudRecording', + 'description' => '启动Rtc云端录制任务', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'live:StartRtcCloudRecording', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"******3B-0E1A-586A-AC29-742247******\\"\\n}","type":"json"}]', - 'title' => '停止云端转码任务', - ], - ], - 'endpoints' => [ - [ - 'regionId' => 'cn-qingdao', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-5', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-2-pop', - 'endpoint' => 'live.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing-finance-pop', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing-gov-1', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-beijing-nu16-b01', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-edge-1', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-fujian', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-haidian-cm12-c01', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou-bj-b01', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou-internal-prod-1', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou-internal-test-1', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou-internal-test-2', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou-internal-test-3', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou-test-306', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hongkong-finance-pop', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-huhehaote-nebula-1', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-north-2-gov-1', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-qingdao-nebula', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai-et15-b01', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai-et2-b01', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai-inner', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai-internal-test-1', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen-inner', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen-st4-d01', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen-su18-b01', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-wuhan', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-yushanfang', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhangbei', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhangbei-na61-b01', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhangjiakou-na62-a01', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhengzhou-nebula-1', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'eu-west-1-oxs', - 'endpoint' => 'live.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'rus-west-1-pop', - 'endpoint' => 'live.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'me-central-1', - 'endpoint' => 'live.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'live.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'live.eu-central-1.aliyuncs.com', + [ + 'apiName' => 'DeleteLiveStreamMerge', + 'description' => '删除在线流合流', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'live:DeleteLiveStreamMerge', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Live', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + ], + 'resourceTypes' => [ + ['validationType' => 'always', 'resourceType' => 'Domain', 'arn' => 'acs:live:*:{#accountId}:domain/{#DomainName}'], + ['validationType' => 'always', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:caster/{#CasterId}'], + ['validationType' => 'always', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#DomainName}'], + ['validationType' => 'always', 'resourceType' => 'Caster', 'arn' => 'acs:live:*:{#accountId}:*'], + ['validationType' => 'always', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/{#AppId}'], + ['validationType' => 'always', 'resourceType' => 'MixStream', 'arn' => 'acs:live:*:{#accountId}:mixstream/{#MixStreamId}'], + ['validationType' => 'always', 'resourceType' => 'Domain', 'arn' => 'acs:live::{#accountId}:domain/{#DomainName}'], + ['validationType' => 'always', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#domainId}'], + ['validationType' => 'always', 'resourceType' => 'Rtc', 'arn' => 'acs:live:*:{#accountId}:rtc/{#AppId}'], + ['validationType' => 'always', 'resourceType' => 'Domain', 'arn' => 'acs:cdn:*:{#accountId}:domain/{#Action}'], + ['validationType' => 'always', 'resourceType' => 'Rtc', 'arn' => 'acs:live::{#accountId}:rtc/*'], ], ], ]; -- cgit v1.2.3